如何在R中绘制条形图?

时间:2013-12-06 22:37:16

标签: r

我的数据框如下:

 reason_code num_stayed num_disconnected
       1         60                2
       2        113                3
       3        212                2
       4        451                6
.....

我基本上想要绘制条形图来比较每个reason_code,剩下多少和剩下多少?我想并排展示这些。 那是在同一个情节中。每个原因代码有两个条。一个酒吧(说)红色另一个绿色。

如何在R中绘制它们?

2 个答案:

答案 0 :(得分:5)

您可以使用beside中的barplot参数来完成此操作。这是一个非常简单的例子:

example <- data.frame(reason_code=c(1,2,3,4),
                      num_stayed=c(60,113,212,451),
                      num_dx=c(2,3,2,6))

barplot(height=t(as.matrix(example[c("num_stayed","num_dx")])),beside=TRUE)

请注意,我必须转置它以使条形图正确解释它。另请参阅Cross-Validated的答案。

答案 1 :(得分:1)

以下是使用ggplot

的解决方案
require(ggplot2)
data = data.frame(reason_code = c(1,2,3,4),
                  num_stayed = c(60,113,212,451),
                  num_disconnected = c(2,3,2,6))

data = rbind(data.frame(type = "num_stayed", val = data$num_stayed, reason_code = data$reason_code), 
             data.frame(type = "num_disconnected", val = data$num_disconnected, reason_code = data$reason_code))


ggplot(data, aes(y=val, x=reason_code, fill=type)) + geom_bar(stat="identity", position="dodge")

ggplot