此地古同R语言

R小姐:让条形图再详细一点

2018-11-10  本文已影响0人  鲨瓜

条形图是生活中最普遍使用的一种可视化图表,用来表示不同分组变量之间的数量关系。

比方说:为了比较双十一期间各个地区的购买力,我们可以以地区作为横坐标,每个地区对应的总消费金额作为纵坐标。

根据条形图的高低可以比较各个地区的消费水平。好吧,这些小学就学过。

那么如何用R语言实现这个过程呢

1

计数还是直接画

#条形图有两种绘制方式
#当只传递一个参数时,对传入的参数进行计数处理
#个数作为条形的高度
ggplot(cabbage_exp,aes(x=Date)) +
  #默认 stat = 'bin'
  geom_bar(fill='lightblue',colour='orange')
image
#传入两个参数,Y 作为条形的高度
ggplot(cabbage_exp,aes(x=Date,y=Weight,fill=Cultivar)) +
  #必须加 stat = 'identity'
  geom_bar(stat = 'identity') +
  #设置每个条形的颜色
  scale_fill_manual(values = c('lightblue','pink'))
image

2

堆叠还是左右

ggplot(cabbage_exp,aes(x=Date,y=Weight,fill=Cultivar)) +
  #将堆叠图更改为相邻的条形,position_dodge2()默认间隔为0.1
  geom_bar(stat = 'identity',position = position_dodge2(),colour='red') +
  scale_fill_manual(values = c('lightblue','pink'))
image
ggplot(cabbage_exp,aes(x=Date,y=Weight,fill=Cultivar)) +
  geom_bar(stat = 'identity',position = position_dodge2(),colour='red') +
  scale_fill_manual(values = c('lightblue','pink')) +
  #添加文本
  ##注意此时的position与上方保持一致来使文本与条形对齐
  geom_text(aes(label=Weight),vjust=1.5,
            position = position_dodge2(0.9))
image
#paste函数可以将字符串拼接在一起
label_y <- paste(cabbage_exp$Weight,'kg')

ggplot(cabbage_exp,aes(x=Date,y=Weight,fill=Cultivar)) +
  geom_bar(stat = 'identity',position = position_dodge2(),colour='red') +
  scale_fill_manual(values = c('lightblue','pink')) +
  #添加文本内容,并调色
  #注意此时的position与上方保持一致来使文本与条形对齐
  geom_text(aes(label=label_y),vjust=-0.7,colour='blue',
            position = position_dodge2(0.9)) +
  #调整 Y 轴的范围
  ylim(0,max(cabbage_exp$Weight)*1.2)
image

3

钻石还是好

#钻石数据以价格分类
ggplot(diamonds, aes(price, fill = cut)) +
  #绘制直方图
  geom_histogram(position="dodge2")
image
ggplot(diamonds, aes(price, colour = cut)) +
  #使用频率多边形更适合
  geom_freqpoly()
image

仍旧是最最基础的绘制,再高级一点的涉及到各种函数的运用,大家加油。

下期再见。

你可能还想看

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

image
上一篇 下一篇

猜你喜欢

热点阅读