ITPub博客

首页 > IT职业 > IT生活 > R小姐:克利夫兰点图(Cleveland dot plot)

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

IT生活 作者:greatleaf 时间:2021-09-09 10:15:58 0 删除 编辑

上一篇文章中我们了解了条形图的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



作者:此地古同
链接:https://www.jianshu.com/p/c12205f6c7ce
x


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4236/viewspace-2819323/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-12

  • 博文量
    76
  • 访问量
    610