【发布时间】:2012-02-13 15:53:50
【问题描述】:
我有一个包含 3 列的数据框
-
$x-- http://pastebin.com/SGrRUJcA -
$y-- http://pastebin.com/fhn7A1rj -
$z-- http://pastebin.com/VmVvdHEE
我希望用来生成堆叠条形图。所有这些列都包含整数数据。堆叠的条形图应具有沿 x 轴的级别和沿 y 轴的每个级别的数据。然后堆栈应对应于$x、$y 和$z 中的每一个。
更新:我现在有以下内容:
counted <- data.frame(table(myDf$x),variable='x')
counted <- rbind(counted,data.frame(table(myDf$y),variable='y'))
counted <- rbind(counted,data.frame(table(myDf$z),variable='z'))
counted <- counted[counted$Var1!=0,] # to get rid of 0th level??
stackedBp <- ggplot(counted,aes(x=Var1,y=Freq,fill=variable))
stackedBp <- stackedBp+geom_bar(stat='identity')+scale_x_discrete('Levels')+scale_y_continuous('Frequency')
stackedBp
生成:
.
还有两个问题:
x 轴标记不正确。由于某种原因,它是:46、47、53、54、38、40....我怎样才能自然地订购它?
我也想去掉第 0 个标签。
我尝试过使用+scale_x_discrete(breaks = 0:50, labels = 1:50),但这不起作用。
【问题讨论】:
-
尝试以
plyr::count开头 -
@hadley 和
plyr::count,但你不能rbind,因为变量名不同。那是对的吗? x轴上的级别排序如何? -
你不需要 rbind