我试图制作条形图以供发布,我试图在课程实施之前和之后显示在我们医院执行的手术类型的变化,&#34; BR&#34;和&#34; AR&#34;分别。操作类型是&#34; Open&#34;,&#34; Laparoscopic&#34;和&#34; Robotic&#34;。我想要&#34; BR&#34;价值来自&#34; AR&#34;我的条形图上的值,但我似乎无法弄清楚如何让R按顺序读取它们(我对R和编码很新:()。我的数据框命名为df < / p>
bin type cases_per_month
1 Open BR 18.35
2 Open AR 15.50
3 Laparoscopic BR 4.25
4 Laparoscopic AR 1.95
5 Robotic BR 0.10
6 Robotic AR 1.15
ggplot(data=df, aes(x=bin, y=cases_per_month)) + geom_bar(stat="identity")
data <- tapply(df$cases_per_month, list(df$type, df$bin), sum)
barplot(data, beside=T, col=c("black", "grey"),
main="Average Cases per Month,BR and AR: Ventral",
xlab="Case Type", ylab="Average Cases per Month")
legend(locator(1), rownames(data), fill=c("black","grey"))
因为R读取&#34; BR&#34;和&#34; AR&#34;作为原子矢量,我试过的大多数命令都不允许我按照我想要的方式重新排序
这就是我现在所得到的。我也希望我的y轴达到20,但我只需要google,我确定
答案 0 :(得分:3)
来吧。你只需要这个。
data <- data[2:1, ]
您的图是由barplot
包中的graphics
函数而不是ggplot2
包创建的。 ggplot
行在您的脚本中没用。
对于y axis
问题,请使用ylim
参数。
barplot(data,beside=T,col=c("black","grey"),
main="Average Cases per Month,BR and AR: Ventral",
xlab="Case Type",ylab="Average Cases per Month", ylim=c(0,20))
答案 1 :(得分:0)
这个有点棘手。这是我的解决方案:
# Load ggplot
library(ggplot2)
# Create data frame
bin <- c('Open', 'Open', 'Laparoscopic', 'Laparoscopic', 'Robotic', 'Robotic')
type <- c('BR', 'AR', 'BR', 'AR', 'BR', 'AR')
cases.per.month <- c(18.35, 15.5, 4.25, 1.95, .1, 1.15)
df <- data.frame(bin, type, cases.per.month)
# Reorder levels
df$type <- factor(df$type, c('BR', 'AR'))
# Plot BR and AR types side-by-side
ggplot(df, aes(x = bin, y = cases.per.month, fill = type)) + geom_bar(stat = 'identity', position = 'dodge')
另外,欢迎来到R!