首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在ggplot中添加标签以进行汇总统计

在ggplot中添加标签以进行汇总统计
EN

Stack Overflow用户
提问于 2018-08-15 06:21:44
回答 1查看 538关注 0票数 1

大约18个月前,this helpful exchange出现了,它的代码展示了如何生成中位数和四分位数范围的曲线图。代码如下:

代码语言:javascript
复制
ggplot(data = diamonds) +
geom_pointrange(mapping = aes(x = cut, y = depth),
              stat = "summary",
              fun.ymin = function(z) {quantile(z,0.25)},
              fun.ymax = function(z) {quantile(z,0.75)},
              fun.y = median)

生成此图:

我想知道的是如何为中位数和IQ范围添加标签,以及如何格式化条形图(颜色、alpha等)。我尝试将绘图作为对象调用,以查看其中是否有可用于调用格式函数的对象,但在r Studio IDE中查看它时并不明显。

这是可行的吗?我知道我可以做一个盒子图,但那必须包括最小/最大。我想制作只有均值/中位数和智商的箱形图。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-15 08:08:26

您可以像更改任何ggplot图层一样更改格式,请参阅docs for Vertical intervals: lines,crossbars & errorbars在这种情况下。下面是一个这样的例子:

代码语言:javascript
复制
library(ggplot2)
ggplot(data = diamonds) +
  geom_pointrange(mapping = aes(x = cut, y = depth),
                  stat = "summary",
                  fun.ymin = function(z) {quantile(z,0.25)},
                  fun.ymax = function(z) {quantile(z,0.75)},
                  fun.y = median,
                  size = 4,             # <- adjusts size
                  colour = "red",       # <- adjusts colour
                  alpha = .3)           # <- adjusts transparency

如果你想单独控制点和线的格式,你需要按照@camille的建议进行操作,并在geom_pointrange()绘制单个图形对象时对数据进行预处理,这样点和线就是同一个。

我建议这样做:

代码语言:javascript
复制
library(dplyr)
library(ggplot2)

diamonds %>% 
  group_by(cut) %>% 
  summarise(median = median(depth),
            lq = quantile(depth, 0.25),
            uq = quantile(depth, 0.75)) %>% 

  ggplot(aes(cut, median)) +
  geom_linerange(aes(ymin=lq, ymax=uq), size = 4, colour = "blue", alpha = .4) +
  geom_point(size = 10, colour = "red", alpha = .8)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51850522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档