r - 如何使用 stat ="identity"ggplot 躲避条形图?

标签 r ggplot2

我有一个包含 A 和 B 两列的数据框。我想生成一个条形图,其中 A 和 B 中的值并排(躲避)绘制。我用谷歌搜索并从包 ggplot2 中找到了 ggplot。默认是使用频率生成条形图,但有一个选项 stat="identity"这允许选择一个变量来明确设置条形高度。我可以像这样绘制一列:

d <- data.frame(A=c(1:10), B=c(11:20))
ggplot(data=d, aes(x=1:length(A), y=A))+geom_bar(stat="identity", position="dodge")

如何并排绘制两列?我可以用不同的方式构造我的数据框:将向量 A 和 B 中的值附加到一列中并创建一个指示变量 ind ,然后用它来定义组 aes(group=ind) .这可以用数据框来完成吗d原样,不修改其结构?

最佳答案

您可以使用 melt来自 reshape2包以创建您正在寻找的情节。

library(reshape2)
d$ind <- seq_along(d$A)

d.m <- melt(d, id.var='ind')

ggplot(d.m, aes(x=ind, y=value, fill=variable)) + 
  geom_bar(stat='identity', position='dodge')

一般来说,ggplot当您在单个 data.frame 中提供所有数据时效果最佳。每种几何类型至少有一个 data.frame。

关于r - 如何使用 stat ="identity"ggplot 躲避条形图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14587335/

相关文章:

将数字列名称引用为 R 中的变量

r - 测试两个函数变量是否指向同一个函数?

r - 如何在 geom_dotplot 中使用颜色?

r - 使用 doubleYScale 图更改 y 轴文本大小

R:根据其他列填充和/或复制行

r - 如何仅替换R中列的每一行中 ":"之前的部分

r - ggplot2:geom_point 边界和填充的不同 alpha 值

r - 使用 R 中的 Rayshader 在高度 3D map 上添加颜色

r - 更改绘图 geom_polygon、ggplot 的顺序

r - 优化修剪后的 K 均值以对具有许多异常值的 2D 数据进行聚类?更好的方法?