【发布时间】:2017-07-13 22:46:58
【问题描述】:
我正在使用 ggplot2 从大量数据帧中绘制一些光谱数据。我想将图表限制为 400 到 900 nm 之间的波长。我知道如何使用 scale_x_continuous() 或 xlim() 设置 x 轴限制。问题是,在我完成此操作后,y 轴不会自动重新调整为显示的最小/最大值。我不想手动设置它,因为我的循环处理的每个数据帧都有不同的范围。
summary 是我的数据框列表,然后这段代码给了我一个绘图列表,没有调整轴:
plotlist <- list()
for(i in 1:length(summary)){
plotlist[[length(plotlist)+1]] <- ggplot(summary[[i]], aes(Wavelength, average)) +
geom_line(aes(color=Sample)) +
geom_linerange(aes(ymin=average-sem, ymax=average+sem, color=Sample), alpha=0.5) +
ylab("Absorbance (AU)") + ggtitle(names(summary)[i]) +
theme_classic()
}
plotlist[[33]]
这给了我: Plot without axis adjustment
如果我像这样将 x 轴调整为 400 - 900:
plotlist <- list()
for(i in 1:length(summary)){
plotlist[[length(plotlist)+1]] <- ggplot(summary[[i]], aes(Wavelength, average)) +
scale_x_continuous(name="Wavelength (nm)", limits=c(400, 900), expand=c(0,0)) +
geom_line(aes(color=Sample), na.rm=TRUE) +
geom_linerange(aes(ymin=average-sem, ymax=average+sem, color=Sample), alpha=0.5, na.rm=TRUE) +
ylab("Absorbance (AU)") + ggtitle(names(summary)[i]) +
theme_classic()
}
plotlist[[33]]
然后我得到这个图,x 轴正确,但是 y 轴的比例现在对于显示的数据来说太大了: Plot with correct x-axis, but wrong y-axis
如何将 y 轴自动调整到适当的最小值/最大值,但只能在 x 轴的 400-900 nm 范围内?
【问题讨论】:
-
编辑:我尝试更改添加比例、几何等的顺序,但这没有区别。