R小姐:克利夫兰点图(Cleveland dot plot)

作者: 鲨瓜 | 来源:发表于2018-11-16 18:00 被阅读2次

上一篇文章中我们了解了条形图的R小姐实现过程,利用条形图我们展示不同类别数据之间的数量关系。

对于类别较小的数据我们当然可以这做,那么当类别较多时又该怎么办呢?

1

入门

本期所用数据

image
library(gcookbook)
library(ggplot2)
library(dplyr)
#入门
#取出数据框前20行,3个对应列
tophit <- tophitters2001[1:20,c('name','lg','avg')]

ggplot(tophit,aes(x=avg,y=name)) +
  #设置点的形状、大小、填充色
  geom_point(shape=21,size=3,fill='red') +
  #默认主题背景灰色,网格白色
  theme_gray()
image
ggplot(tophit,aes(x=avg,y=name)) +
  #设置点的形状、大小、填充色
  geom_point(shape=21,size=3,fill='red') +
  #自定义主题背景白色,网格灰色
  theme_bw()
image

2

进阶

#进阶
#reorder函数将name按照avg的大小重新排列
ggplot(tophit,aes(x=reorder(name,avg),y=avg)) +
  ##设置点的形状、大小、填充色
  geom_point(shape=21,size=3,fill='#00CED1',colour='#00CED1') +
  #设置X轴的名称
  xlab(label = 'Name') +
  #设置Y轴的名称
  ylab(label = 'Avg') +
  #自定义主题
  theme_bw() +
  #更改主题元素:文本倾斜60°角,hjust的取值范围0-1,大家自己尝试一下
  theme(axis.text.x = element_text(angle = 60,hjust = 1),
        #删除Y轴的主刻度线
        panel.grid.major.y = element_blank(),
        #删除Y轴的次刻度线
        panel.grid.minor.y = element_blank(),
        #设置X轴主刻度线的颜色和类型
        panel.grid.major.x = element_line(colour = 'orange',linetype = 'dashed')) +
  #设置线段到数据点出结束
  geom_segment(aes(xend=name),yend=0,colour='#00CED1')
image

3

精通

#精通
#利用order函数先对lg排序,再对avg排序
nameorder <- tophit$name[order(tophit$lg,tophit$avg)]
#将toptip数据中的name变量按照上面的排序规则转换为因子
tophit$name <- factor(tophit$name,levels = nameorder)
#利用lg变量对数据分组
ggplot(tophit,aes(x=avg,y=name,colour=lg)) +
  #设置线段到数据点出结束,和颜色
  geom_segment(aes(yend=name),xend=0,colour='grey60') +
  #设置点的大小
  geom_point(size=3) +
  #设置点的填充色
  scale_colour_manual(values = c('lightblue','pink')) +
  #设置主题
  theme_bw() +
  #删除Y轴主刻度线
  theme(panel.grid.major.y = element_blank(),
        #设置图例的位置,两参数范围均为0-1
        legend.position = c(0.9,0.55))
image

本期的重点是主题参数的调节,在下绘制了一份简略的思维导图,望笑纳。

image

下期再见。

你可能还想看

等你很久啦,长按加入古同社区

image

相关文章

  • R小姐:克利夫兰点图(Cleveland dot plot)

    上一篇文章中我们了解了条形图的R小姐实现过程,利用条形图我们展示不同类别数据之间的数量关系。 对于类别较小的数据我...

  • day63

    CLEVELAND CAVALIERS克利夫兰骑士队 reliever[rɪˈliːvər] 救济者 weakne...

  • ggpubr包系列学习教程(五)

    使用ggdotchart函数绘制Cleveland点图 加载所需R包 基本用法: Usage 常用参数 Argum...

  • R语言作图——Dot plot

    原创:黄小仙 今年注定是特别的一年,今天也是一个特别的大年初一,小仙同学长这么大第一次在大年初一这天干点正事。今天...

  • R语言作图——Violin plot with dot

    原创:黄小仙 小提琴图之前已经画过了,不过最近小仙又看到一种貌美的画法,决定复刻一下。文献中看到的图如下: Ste...

  • 学习小组Day4笔记--LA

    R语言 1.下载R和Rstudio 2.R语言的基本操作 1画图 plot是图,rnorm是正态分布的函数plot...

  • Life is Meals 1月7日

    Ruth Cleveland 露丝.克利夫兰 1906年的今天,格罗弗.克利夫兰总统13岁的女儿鲁斯死于白喉病,4...

  • 《学习小组Day4笔记--万万》

    R和R Studio的安装和外观改变 用R做最简单的图 plot是R中的基本画图工具,直接plot(x),x为一个...

  • 博物馆数字化实施

    场馆:克利夫兰艺术博物馆(Cleveland Museum of Art, CMA) 地点:一号展区 特点:融艺术...

  • R实战| 雷达图(Radar Chart)

    R实战| 雷达图(Radar Chart) 雷达图(radar chart),又称蜘蛛网图(spider plot...

网友评论

    本文标题:R小姐:克利夫兰点图(Cleveland dot plot)

    本文链接:https://www.haomeiwen.com/subject/autvfqtx.html