为什么ggplot中的箱线图需要x轴和y轴?

28

我有一个变量ceroonce,它是2011年每个县的学校数量(整数)。当我用boxplot()绘制它时,只需要ceroonce变量就可以了。然后会检索到一个箱线图,其中y轴是学校数量,x轴是...“因子” ceroonce。但在ggplot中,使用geom_boxplot时,需要我输入x和y轴,但我只想要一个ceroonce的箱线图。我已经尝试将ceroonce作为x和y轴输入。但是,检索到一个奇怪的箱线图,其中y轴是学校数量,但x轴(应该是因子变量)也是学校数量?我认为这是非常基础的统计学问题,但我很困惑。我附上图片,希望这能澄清我的问题。

这是我正在使用的代码:

ggplot(escuelas, aes(x=ceroonce, y=ceroonce))+geom_boxplot()
boxplot(escuelas$ceroonce)
3个回答

29
ggplot(escuelas, aes(x="ceroonce", y=ceroonce))+geom_boxplot()

ggplot会将字符字符串"ceroonce"解释为一个与ceroonce列长度相同的向量,并给出你所要寻找的结果。


23

这里没有花哨的统计学方法。 boxplot 假设您提供了一个向量,因此要在盒形图中显示一个框。而 ggplotgeom_histogram 不会做出这种假设。

如果希望少打一点字,可以这样做:

qplot(y=escuelas$ceroonce, x= 1, geom = "boxplot")

ggplot2会自动创建一个长度与escuelas$ceroonce相等的由1组成的向量。


谢谢!是的,我发现stat_boxplot和geom_boxplot需要x和y参数...而且你不能像boxplot()那样简单地定义x。 - manuelq
2
感谢您的回复。我认为这是ggplot中相当不直观的行为。许多人可能不会对其数据进行分组。 - joaoal

2
这可能适用于你:
ggplot(escuelas, aes(x= "", y=ceroncee)) + geom_boxplot()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接