【问题标题】:Legend in barplot with ggplot2带有 ggplot2 的条形图中的图例
【发布时间】:2015-09-14 08:26:55
【问题描述】:

我在 ggplot2 中有一个带有 12 个条形(非堆叠)的条形图,其中每个偶数条具有一种颜色,奇数条具有另一种颜色,但我不知道如何仅对条的颜色进行图例。即使我可以重塑我的数据,两个只有这两个类别,它们必须从 1 显示到 12。 为了绘图,我创建了一个包含 5 列的数据框,其中第 1 列是 1:12,第 2 列是条的高度,第 3 和第 4 列是标准误差,第 5 列是每个条的颜色。

以及我使用的代码:

per.block.plot<-data.frame(block,means,std.up,std.down,color.block)
performance.per.block.plot<-ggplot(per.block.plot,aes(block,means)) +
     geom_bar(stat="identity",fill=color.block) + xlab("Block number") +
     ylab("Error rate") + ggtitle("Performance per block") + 
     geom_errorbar(aes(ymin=std.down, ymax=std.up),width=.2) + 
     theme_classic() 

提前致谢!

【问题讨论】:

  • 您可以添加您的数据吗?例如,通过复制粘贴 dput(per.block.plot)? 的输出
  • 但通常要创建图例,您需要在 aes 中放置“填充”,无论是在对 ggplot 的一般调用中还是在对 geom_bar 的调用中。
  • 是的,它现在可以工作了!谢谢,真的,最后真的很简单:)
  • 那你能接受@Katrin 的回答吗?将问题标记为已关闭。

标签: r plot ggplot2 legend


【解决方案1】:

正如上面Heroka 所评论的,fill 应该在aes() 中指定,变量... 决定了条形的颜色,如下所示:

performance.per.block.plot<-ggplot(per.block.plot,aes(block,means, fill = ...))

侧面提示:将参数拼写为aes(x = block, y = means) 可以帮助构建您想要的工作脚本;-) 一旦工作,仍然有时间删除这些小助手。

【讨论】:

  • 好的,谢谢!我将来会这样做。不错的提示!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多