r - 在R中绘制分组的条形图

标签 r plot bar-chart

我正在尝试在R中绘制此数据-

column1  column2  column3
1-2       abc       10
1-2       def       15
1-2       ghi       20
2-3       abc       80
2-3       def       95
2-3       ghi       10
3-4       abc       30
3-4       def       55
3-4       ghi       80

x轴将是column1(因此1-2、2-3和3-4将作为x轴出现),并且在y轴上,应为column2的每个元素绘制column3中的值。因此,这本质上将是一个“分组的”条形图。

我无法使用R绘制此分组的条形图。
我正在使用的代码段如下:
dataset <- fetch(rs,n=-1)
plot_var <- table(dataset$percentage, dataset$age)
barplot(plot_var, names.arg,
        main="Title of Graph",
        xlab="Column1", col=c("darkblue","red"),
        legend = rownames(plot_var), beside=TRUE)

如何显示此分组的条形图?
谢谢!

最佳答案

您的问题似乎归结为错误的数据格式。您需要使用正确的行名结构创建矩阵,以创建所需的基础图形图。这是您的解决方案:

#your data...
d <- data.frame(row.names=c("1-2","2-3","3-4"), abc = c(10,80, 30), 
                def = c(15, 95, 55), ghi = c(20, 10, 80))
#but you make a matrix out of it to create bar chart
d <- do.call(rbind, d)
#...and you are sorted
barplot(d, beside = TRUE, ylim=c(0,100), legend.text = rownames(d), 
        args.legend = list(x = "topleft", bty="n"))

但是,有时我喜欢将lattice用于此类任务。这次,您甚至不必制作矩阵,只需将data.frame保留为原始格式即可:
d <- data.frame(column1=rep(c("1-2","2-3","3-4"), each=3), 
                column2=rep(c("abc", "def", "ghi"), 3), 
                column3=c(10, 15, 20, 80, 95, 10, 30, 55, 80))
require(lattice)
barchart(column3 ~ column1, groups=column2, d, auto.key = list(columns = 3))

关于r - 在R中绘制分组的条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13210152/

相关文章:

r - 将带有列表列的 tibble 保存到磁盘

r - 使用 ggplot2 和分组变量创建圆环图

r - Stan 模型后验预测超出可能的数据范围

python - 为什么我用 matplotlib.imshow 绘制的 matplotlib 2D 直方图/热图与我的轴不匹配?

r - 插入符号训练如何确定概率阈值以最大化特异性

r - 保存到文件后,情节被切断

opencv - 绘制相机轨迹

google-visualization - 谷歌图表栏内的额外矩形标签

d3.js - 为什么刷机阻止dc.js barChart toolTips出现?

python - 如何在 matplotlib 中对条形图制作 3d 效果?