我有以下数据
Input Rtime Rcost Rsolutions Btime Bcost
1 12 proc. 1 36 614425 40 36
2 15 proc. 1 51 534037 50 51
3 18-proc 5 62 1843820 66 66
4 20-proc 4 68 1645581 104400 73
5 20-proc(l) 4 64 1658509 14400 65
6 21-proc 10 78 3923623 453600 82
我想从此数据创建一个分组的条形图,以便x轴包含
Input
字段(作为组),y轴代表Rtime和Btime字段的对数刻度(两个条形)。我在网上检查的所有解决方案/示例都将相似的数据放入三列布局中。我不知道如何使用生成分组条形图所需的数据。或者,如果有一种方法可以将这些数据转换(手动转换不是一种选择,因为它是一个有很多行的大文件),转换为 R 和 ggplot 兼容的数据格式。
编辑:
使用GNCS解决方案生成的图形
最佳答案
根据要求,还使用 reshape2 的 ggplot2 解决方案:
library(reshape2)
df <- read.table(text = " Input Rtime Rcost Rsolutions Btime Bcost
1 12-proc. 1 36 614425 40 36
2 15-proc. 1 51 534037 50 51
3 18-proc 5 62 1843820 66 66
4 20-proc 4 68 1645581 104400 73
5 20-proc(l) 4 64 1658509 14400 65
6 21-proc 10 78 3923623 453600 82",header = TRUE,sep = "")
dfm <- melt(df[,c('Input','Rtime','Btime')],id.vars = 1)
ggplot(dfm,aes(x = Input,y = value)) +
geom_bar(aes(fill = variable),stat = "identity",position = "dodge") +
scale_y_log10()
请注意此处的样式差异,因为
log(1) = 0
, ggplot2 将其视为零高度的条形图,并且不绘制任何内容,而barplot
则绘制了一些 stub (在我看来,这有点误导)。关于r - 在R中创建多列数据的分组条形图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10212106/