前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >66-R可视化10-自由的在ggplot上添加文本(柱状图加计数)

66-R可视化10-自由的在ggplot上添加文本(柱状图加计数)

作者头像
北野茶缸子
发布2021-12-17 10:57:47
11.2K1
发布2021-12-17 10:57:47
举报
文章被收录于专栏:北野茶缸子的专栏

前言

先前提到了60-R可视化-8-用ggsignif做统计分析绘图 (qq.com)这个包。

当时挖了一个坑:

那么问题来了,我的字体该加到哪里呢?

基本的ggplot 就够了

比如你可以将内容以captain 的形式加在图片的侧方。

ggstatsplot 就是个很好的例子:

subtitle, captain 都是很不错的选择。

参考下面就行了:57-R可视化-6-ggplot2基石三部曲最终之进阶为菜鸟 (qq.com)

我非要加在图片里

代码语言:javascript
复制
p <- ggplot(iris) + geom_point(aes(Sepal.Length, Sepal.Width))
# Solution 1 
p + geom_text(x=3, y=30, label="Scatter plot") 
# Solution 2 
p + annotate(geom="text", x=3, y=30, label="Scatter plot")

自动给图像添加文本标记

主要设置映射图层:geom_label() 和geom_text()

R语言之可视化(20)之geom_label()和geom_text() - 云+社区 - 腾讯云 (tencent.com)[1]

可以参考下面的效果和上面的链接中的教程,这里我就不再赘述了。

代码语言:javascript
复制

p <- ggplot(mtcars, aes(wt, mpg, label = rownames(mtcars)))
p + geom_text(check_overlap = T)
代码语言:javascript
复制
> p <- ggplot(mtcars, aes(wt, mpg, label = rownames(mtcars)))
> p + geom_label()

为柱状图添加计数标记

个人感觉,比较常见的场景是:画好了柱状图,希望在柱状图上标记出相应的数字。当然先给你们展示一下效果啦:

在画图前,先提一个技巧。65-R茶话会14-柱状图用col还是bar,你可以省一点空间 (qq.com)

下面简单的对数据框操作一下:

代码语言:javascript
复制
iris2 <- iris
iris2$group <- sample(c("a","b","c"), 150, replace = T)
head(iris2)

ggplot(iris2) + geom_bar(aes(Species, fill = group), 
                         position = "dodge")

iris2_count <- iris2 %>% 
  group_by(Species, group) %>%
  summarise(count = n())
iris2_count

对转换后的数据框作图:

代码语言:javascript
复制
ggplot(iris2_count, aes(Species, count, fill = group)) + 
  geom_col(position = "dodge") +  
  geom_text(aes(label = count), position = position_dodge(0.9), vjust = -0.8)

这里有个知识点,我们需要在全局指定分组,因为geom_text 图形映射不会受到fill 属性干扰,所以我直接全局指定了分组;你也可以单独对其指定label 映射。并且需要按照col 也使用dodge 的位置。

如果不指定分组或dodge:

代码语言:javascript
复制
ggplot(iris2_count, aes(Species, count, fill = group)) + 
  geom_col(position = "dodge") +  
  geom_text(aes(label = count), position = position_dodge(0.9), vjust = -0.8)

耍个酷

你们想不想画出来下面的这张图呢?

或者这张?

买冰淇淋给我,我就考虑一下。挑个时间,教你们一下吧。

参考资料

[1]R语言之可视化(20)之geom_label()和geom_text() - 云+社区 - 腾讯云 (tencent.com): https://cloud.tencent.com/developer/article/1394482

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

本文分享自 北野茶缸子 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 基本的ggplot 就够了
  • 我非要加在图片里
  • 自动给图像添加文本标记
  • 为柱状图添加计数标记
  • 耍个酷
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档