ggplot 不绘制箱线图

ggplot not plotting boxplot

我是 R 的新手,也是 ggplot 的新手,但我遇到了 geom_boxplot():

的问题

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

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

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

奇怪的是,命令:

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

有效!

我已经在其他数据集上测试了 ggplot,这两个命令都运行良好,所以这显然只是我的问题!

我希望有人能告诉我这两种语法之间的区别,以及为什么一种语法有效而另一种语法无效?

谢谢!

考虑构建 ggplot2 图形的一种方法是将高架投影仪和分层(因为每个 geom 是一层)geom 视为透明度 sheets。

ggplot() 打开投影仪但不为任何图层设置默认值(透明度 sheet)

ggplot(data = <some.data.frame>) 将打开投影仪并设置 some.data.frame 作为即将到来的图层的默认数据源。

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

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

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

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

代码块

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

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