【问题标题】:How can I control the error bar colors to be the same as geom_point colors?如何控制误差条颜色与 geom_point 颜色相同?
【发布时间】:2023-01-12 18:39:14
【问题描述】:

我想在 ggplot 中绘制一个点图,我使用 geom_point 函数来完成它。为了给点上色,我使用色阶将它们填充为红色或蓝色。但是,现在我正在使用 geom_errorbar 函数将误差线添加到我的点图中,似乎我无法提供我在 geom_points 中使用的颜色。也就是说,我只能给他们一种颜色,默认是黑色。有什么办法可以控制误差线的颜色吗?

假设我们有以下数据框:

df <- data.frame (Xvalue=c(1.2, 1.3, 2.1, 2.4, 2.7),
                 Yvalue=c(12, 15, 17, 24, 27),
                 Kind=c('A', 'B', 'A', 'B', 'B'),
                 Ymax=c(13, 16, 19, 26, 29),
                 Ymin=c(11, 14, 15, 22, 25))
df$Kind = factor(df$Kind)

现在我想用误差线画图:

myplot <- ggplot (df, aes(Xvalue, Yvalue, fill=Kind)) + 
  geom_point( shape=21, size= 4, alpha= 0.7)+
  geom_errorbar(aes(ymin=Ymin, ymax=Ymax,  width=0.08))
myplot

这会产生一个带有黑色误差线的图。我怎样才能确保这与点的颜色相同?

奖励问题:这是你通常如何在你的点中制作两种颜色,我的意思是将“级别”放在 ggplot 函数中作为填充?对于不需要使用 Shape=21(圆的外圆周为黑色)的地方,您是否有另一种方法?

奖励问题 2:绘制两种点通常更容易,当它们在 1 个数据帧中时,还是将数据帧分开更好?例如,我可以为类型 A 使用一个较小的数据框,为数据框 B 使用另一个数据框。这会让生活更轻松吗?我问的原因是,当我尝试绘制多个级别时(例如一次是“种类”,另一个是“原始国家/地区”),绘制不同颜色和大小的点非常混乱。

【问题讨论】:

    标签: r ggplot2 plot colors errorbar


    【解决方案1】:

    您应该像这样将 color aes 添加到您的 geom_errorbar (请注意:您可以将 show.legend FALSE 添加到您的 geom_errorbar 因此您的图例元素中没有行):

    library(ggplot2)
    myplot <- ggplot (df, aes(Xvalue, Yvalue, fill=Kind)) + 
      geom_point( shape=21, size= 4, alpha= 0.7)+
      geom_errorbar(aes(ymin=Ymin, ymax=Ymax, width=0.08, color = Kind), show.legend = FALSE)
    myplot
    

    创建于 2023-01-12 reprex v2.0.2

    如果您想要错误栏落后于您的观点,只需按顺序交换命令即可。

    【讨论】:

    • 哇,谢谢,那太快了。我也可以定制吗?例如让它给它以下值:pointcolors = c("#f70000", "#1e28e6")。
    • 嗨@Reza,是的,当然!您可以添加:scale_color_manual(values = c("#f70000", "#1e28e6"))
    猜你喜欢
    • 1970-01-01
    • 2016-12-06
    • 2023-03-29
    • 2018-10-24
    • 2012-07-13
    • 1970-01-01
    • 2020-01-25
    • 2018-11-01
    • 2010-09-09
    相关资源
    最近更新 更多