前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R-ggplot2 基础图表绘制-柱形图

R-ggplot2 基础图表绘制-柱形图

作者头像
DataCharm
发布2021-02-22 15:30:24
7250
发布2021-02-22 15:30:24
举报
文章被收录于专栏:数据 学术 商业 新闻

本期推文我们开始介绍基础柱形图(条形图)的绘制推文,其目的就是让大家希望大家可以一步步打好基础,为以后绘制更加复杂、更加精美的可视化设计作品做准备。本期主要涉及的知识点如下:

  • geom_histogram()绘制直方统计图
  • geom_bar()绘制柱形图
  • grid包添加图片美化

geom_histogram()绘制直方统计图

直方统计图用于统计数据的分布范围,横轴为绑定变量区间分隔的取值范围,纵轴则表示变量在不同变量区间上的频数。首先我们对数据进行预览,如下(部分):

这里我们不再比较ggplot2的默认主题的好坏了,直接给出美化后的代码(当然借助了我非常喜欢的hrbrthemes主题包):

代码语言:javascript
复制
flipper_hist <- ggplot(data = data,aes(x = flipper_length_mm))+
  geom_histogram(aes(fill=species),binwidth = 4,position = "identity")+
  scale_fill_manual(values = c('#FF8C03',"#A034F1","#0F8B8B"))+
  guides(fill = guide_legend(nrow = 1,title = ""))+
  labs(
       title = "Base Charts in R Exercise 02: <span style='color:#D20F26'>Bar Charts</span>",
       subtitle = "processed bar charts with geom_histogram()",
       caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") +
  theme_ipsum(base_family = "Roboto Condensed")+
  theme(
        plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",
                             size = 20, margin = margin(t = 1, b = 12)),
        plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
        plot.caption = element_markdown(face = 'bold',size = 12),
        #legend.position = c(.1, .1), 
        legend.position = "top",
        legend.direction = "horizontal", 
        #legend.justification = "right",
        legend.key.width = unit(1.5, "lines"), 
        legend.key.height = unit(1, "lines"),
  )

可视化结果如下:

当然,我们还可以通过更改如下代码,更换主题:

代码语言:javascript
复制
theme_ft_rc() +

可视化如下:

这里注意下:好多小伙伴私信我说“使用hrbrthemes包主题时显示字体不存在等字样”,我这里设置的如下:

代码语言:javascript
复制
theme_ipsum(base_family = "Roboto Condensed")

Roboto Condensed 为我电脑里的字体,这样就可以使用了。

大家可以认真学习下theme() 中设置的属性,这可是设置精美可视化作品的关键。

geom_bar()绘制柱形图

若想使用geom_bar()绘制统计频数的直方图,可以添加scale_x_binned() 加以限制辅助。还以以上数据为例,绘图代码如下:

代码语言:javascript
复制
flipper_hist3 <- ggplot(data = data,aes(x = flipper_length_mm))+
  geom_bar(aes(fill=species),alpha=.8,colour="black")+
  scale_fill_manual(values = c('#FF8C03',"#A034F1","#0F8B8B"))+
  scale_x_binned()+
  guides(fill = guide_legend(nrow = 1,title = ""))+
  labs(
       title = "Base Charts in R Exercise 02: <span style='color:#D20F26'>Bar Charts</span>",
       subtitle = "processed bar charts with geom_bar()",
       caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") +
  theme_ft_rc() +
  theme(
        plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",
                             size = 22, margin = margin(t = 1, b = 12)),
        plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
        plot.caption = element_markdown(face = 'bold',size = 12),
        #legend.position = c(.1, .1), 
        legend.position = "top",
        legend.direction = "horizontal", 
        legend.key.width = unit(1.5, "lines"), 
        legend.key.height = unit(1, "lines")
  )

可视化结果如下:

当然通过更改:

代码语言:javascript
复制
theme_ipsum(base_family = "Roboto Condensed")

就可获得如下可视化效果:

grid包添加图片美化

添加与绘制图表主题、颜色等元素相关的图片,可以使你的可视化作品增色不少,在ggplot2中添加图片则十分简单。这里我们选择了与主题相符的图片,用于提升绘图结果的美观性。

添加图片的方式较为固定,大家直接记住即可:

代码语言:javascript
复制
library(png)
library(grid)
img_file <- "lter_penguins.png"
img <- png::readPNG(img_file)
i1 <- grid::rasterGrob(img, interpolate = T)

接下来使用ggplot2的annotation_custom() 方法设置具体位置即可:

代码语言:javascript
复制
flipper_hist_img <- flipper_hist +
    annotation_custom(i1, ymin = 45, ymax = 60, xmin = 220, xmax = 235)

可视化结果如下:

当然还有以下效果:

总结

以上就是R-ggplot2关于基础柱形图的绘制推文教程,太具体的原理性这里也没做过多介绍,感兴趣的可以自行查阅相关资料。接下来还有Python版本的哦!

练习数据获取

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DataCharm 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • geom_histogram()绘制直方统计图
  • geom_bar()绘制柱形图
  • grid包添加图片美化
  • 总结
  • 练习数据获取
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档