绘制条形图以使用ggplot2包比较两组数据?

use*_*810 -2 r bar-chart ggplot2

构建条形图以比较两组数据的最佳方法是什么?

例如数据集:

Number <- c(1,2,3,4)
Yresult <- c(1233,223,2223,4455)
Xresult <- c(1223,334,4421,0)
nyx <- data.frame(Number, Yresult, Xresult)
Run Code Online (Sandbox Code Playgroud)

我想要的是横跨X的数字和彼此相邻的条形,代表各个X和Y值

Jaa*_*aap 6

最好将数据重新整形为长格式.可以做到这一点与例如melt所述的功能reshape2包(替代方案是reshape从基R,meltdata.table(这是一个扩展执行的melt功能reshape2)和gathertidyr).

使用您的数据集:

# load needed libraries
library(reshape2)
library(ggplot2)

# reshape your data into long format
nyxlong <- melt(nyx, id=c("Number"))

# make the plot
ggplot(nyxlong) +
  geom_bar(aes(x = Number, y = value, fill = variable), 
           stat="identity", position = "dodge", width = 0.7) +
  scale_fill_manual("Result\n", values = c("red","blue"), 
                    labels = c(" Yresult", " Xresult")) +
  labs(x="\nNumber",y="Result\n") +
  theme_bw(base_size = 14)
Run Code Online (Sandbox Code Playgroud)

这给出了以下条形图:

在此输入图像描述