我对 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,两个命令都工作正常,所以这显然只是我的问题!
我希望有人能告诉我这两种语法之间的区别,以及为什么一种可以工作而另一种却不能?
谢谢!
最佳答案
思考 ggplot2
构造的一种方法图形是将投影仪和分层(因为每个几何体都是一个层)几何体视为透明片。
ggplot()
打开投影仪,但不为任何图层(透明胶片)设置默认值
ggplot(data = <some.data.frame>)
将打开投影仪并设置
some.data.frame
作为即将到来的图层的默认数据源。
ggplot(data = <some.data.frame>, mapping = aes())
会打开
投影仪并设置每个图层的默认数据集和美观度。
此时,尚未创建或绘制任何图层(几何图形)。在 ggplot
调用...
允许传递其他参数,但是它们会被忽略。这就是为什么你的
ggplot(database, aes(x = SampleType, Y = Length), geom_boxplot())
没有错误,也没有产生预期的结果。
代码块
ggplot(database, aes(x = SampleType, y = Length)) +
geom_boxplot()
将打开项目,设置默认数据集为database
和默认的美学。然后我们添加图层geom_boxplot
,就像将透明片放置在高射投影仪上一样,以显示箱线图。
关于r - ggplot 不绘制箱线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43562932/