ggplot没有绘制boxplot

时间:2017-04-22 18:20:12

标签: r ggplot2 boxplot

我是R的新手,对ggplot来说很新,但是我遇到了geom_boxplot()的问题:

我正在尝试绘制序列长度数据的箱线图,以样本类型分隔。序列长度都是整数,样本类型已存储为因子。 命令:

> ggplot(database, aes(x = SampleType, Y = Length), geom_boxplot())

使用适当的X和Y轴绘制空白图形,但根本没有绘图!很明显它知道长度变量的限制(根据我的数据,轴截止是合适的)但是绝对拒绝在图表上放置箱线图!

奇怪的是,命令:

> ggplot(database) + geom_boxplot(aes(x = SampleType, Y = Length))

作品!

我在其他数据集上测试了ggplot,这两个命令都运行正常,所以它显然只是我的一个问题!

我希望有人可以告诉我两种语法之间的区别,以及为什么有人在另一种语法没有的情况下有效?

谢谢!

1 个答案:

答案 0 :(得分:2)

考虑构建ggplot2图形的一种方法是考虑高架投影仪和分层(每个geom是一层)geoms作为透明表。

ggplot()打开投影机,但没有为任何图层设置默认值(透明表)

ggplot(data = <some.data.frame>)会打开投影机并进行设置 some.data.frame作为即将推出的图层的默认数据源。

ggplot(data = <some.data.frame>, mapping = aes())会打开 投影仪并为每一层设置默认数据集和美学。

此时,尚未创建或绘制任何图层(geoms)。在ggplot调用中,...允许传递其他参数,但是会忽略它们。这就是为什么你的

  

ggplot(数据库,aes(x = SampleType,Y = Length),geom_boxplot())

没有错误,也没有产生预期的结果。

代码块

ggplot(database, aes(x = SampleType, y = Length)) +
geom_boxplot()

将打开项目,将默认数据集设置为database和默认美学。然后,我们在图层geom_boxplot上添加,就像在投影仪上放置透明表一样,以显示箱图。