数据科学与R语言此地古同数据-R语言-图表-决策-Linux-Python

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

2018-11-16  本文已影响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
上一篇 下一篇

猜你喜欢

热点阅读