【问题标题】:overlay 2 point graphs on box plot in R在 R 中的箱形图上覆盖 2 个点图
【发布时间】:2021-05-03 17:11:06
【问题描述】:

我在箱形图上叠加 2 个点图时遇到了一些问题。当我只添加一个点图时,代码似乎运行良好。下面是代码:

ggplot(data1, aes(x= reorder(DMU,order), y = Efficiency)) + 
  geom_boxplot() + 
  geom_point(data = data2, aes(x = dmu, y = eff, color = "eff")) + 
  scale_color_manual("", breaks = c("eff"), values = c("blue")) + 
  geom_point(data = data3, aes(x = DMU, y = eff2, color = "eff2")) + 
  scale_color_manual("", breaks = c("eff2"), values = c("red")) 

我不断收到以下错误: “颜色”的比例已经存在。添加另一个比例尺 'color',它将取代现有的比例。 错误:手动刻度中的值不足。需要 2 个,但只提供了 1 个。

【问题讨论】:

  • 如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。每个 ggplot 只能有一个色阶,因此您不能将 scale_color_manual 两次添加到同一个对象。

标签: r ggplot2 graph


【解决方案1】:

您不能将scale_color_manual() 添加两次。 为冒号构建单个数据框:

df_points <- data.frame(x = c(data2$dmu, data3$DMU), 
                        y = c(data2$eff, data3$eff2), 
                        data = c("data2", "data3")
      )

然后:

ggplot(data1, aes(x = reorder(DMU,order), y = Efficiency)) + 
  geom_boxplot() + 
  geom_point(data = df_points, aes(x = x, y = y, color = data)) + 
  scale_colour_manual(values = c("red", "blue") + 
  theme(legend.position = "none")

没有可用的数据我可能会犯错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多