我是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,这两个命令都运行正常,所以它显然只是我的一个问题!
我希望有人可以告诉我两种语法之间的区别,以及为什么有人在另一种语法没有的情况下有效?
谢谢!
答案 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
上添加,就像在投影仪上放置透明表一样,以显示箱图。