我想使用ggplot2和geom_bar创建一个堆积图。
这是我的源数据:
Rank F1 F2 F3
1 500 250 50
2 400 100 30
3 300 155 100
4 200 90 10
我想要一个堆叠图表,其中x是排名,y是F1,F2,F3中的值。
# Getting Source Data
sample.data <- read.csv('sample.data.csv')
# Plot Chart
c <- ggplot(sample.data, aes(x = sample.data$Rank, y = sample.data$F1))
c + geom_bar(stat = "identity")
这是我所能得到的。我不确定如何堆叠其余的字段值。
也许我的data.frame格式不正确?
你说 :
也许我的data.frame格式不正确?
是的,这是真的。您的数据为宽格式,您需要以长格式输入。一般而言,长格式更适合于变量比较。
reshape2
例如,使用以下命令执行此操作melt
:
dat.m <- melt(dat,id.vars = "Rank") ## just melt(dat) should work
然后您得到了您的barplot:
ggplot(dat.m, aes(x = Rank, y = value,fill=variable)) +
geom_bar(stat='identity')
但是,使用lattice
和barchart
智能公式符号,你不需要重塑你的数据,只是这样做:
barchart(F1+F2+F3~Rank,data=dat)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句