【问题标题】:ggplot2 stacked bar graph in which every value is a group/colorggplot2堆积条形图,其中每个值都是一个组/颜色
【发布时间】:2015-12-08 10:58:52
【问题描述】:

这是我的第一篇文章,我是编码新手,如果我的文章不干净或我没有找到足够的答案,我深表歉意。

我正在尝试使用 ggplot2 绘制堆积条形图,并且快到了。这是我到目前为止所拥有的。我有一个包含 2 列(长度和计数)的数据集。我已将它附加到这篇文章中。我读了它并把它画成这样:

example <- read.delim("example.txt", sep",")
ggplot(data=example, aes(x=Length, y=Count, fill=Count))+geom_bar(stat="identity")

这给我的图表是 Fig1A

然而,我正在寻找的是“计数”列中的每个值都有自己的颜色。它应该看起来像 Fig1B(Excel 示例):

我尝试按照在 Excel 中绘制它的方式(图 1C)绘制它,但无法使用 ggplot2 复制这种绘图,我无法让我的 data.frame 适合这种布局。

Example file (example.txt

谢谢

【问题讨论】:

  • 欢迎您! Here 是帮助您发布可重现示例的帖子。
  • 不要发布数据链接。链接中断。
  • 谢谢!我会确保在下一篇文章中记住这一点。

标签: r ggplot2


【解决方案1】:

尝试使用列数作为一个因素,而不是列本身。

ggplot(data=example, aes(x=Length, y=Count, fill=factor(Count)))+geom_bar(stat="identity")

返回

ggplot 自动选择渐变色标,但您可以使用不同的调色板或手动颜色列表为每个因素更改它。例如,您可以通过调用为数据集中的每个级别选择随机颜色:

colors <- sample(colours(),length(levels(factor(example$Count))))

并将其添加到您的情节中

+ scale_fill_manual(values = colors) 

这给出了类似的东西:

或者,您可以选择遵循 R 的内置颜色代码。尝试运行

colours()

您将获得可用颜色的完整列表。您可以根据需要手动选择多个元素,也可以选择前 n 个元素,其中 n 等于您的关卡数量

colors <- colours()[seq(1,length(levels(factor(example$Count))),by=1)]

并遵循上述程序。这始终给出这个图表:

【讨论】:

  • 谢谢!这就是我想要的。
  • 没问题,您可以使用答案旁边的勾号表示已解决。欢迎来到本站!
  • 当然可以!如果我可以添加一个问题:现在我正在尝试使用类似于您发布的第二张图片的颜色方案,我使用了您分配随机颜色的代码。但是,这意味着每个新数据文件看起来都不同,我希望有一个一致的配色方案。如何设置特定的配色方案,以添加尽可能多的颜色?
  • 我已经编辑了我的答案以包含您的要求
猜你喜欢
  • 2020-10-10
  • 2019-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-20
  • 1970-01-01
  • 1970-01-01
  • 2019-10-02
相关资源
最近更新 更多