我的数据框如下:
reason_code num_stayed num_disconnected
1 60 2
2 113 3
3 212 2
4 451 6
.....
我基本上想要绘制条形图来比较每个reason_code,剩下多少和剩下多少?我想并排展示这些。 那是在同一个情节中。每个原因代码有两个条。一个酒吧(说)红色另一个绿色。
如何在R中绘制它们?
答案 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")