我正在使用ggplot2绘制大量数据帧的光谱数据。我想将图形限制在400到900 nm之间的波长范围内。我知道如何使用scale_x_continuous()或xlim()设置x轴限制。问题是,我完成后,y轴不会自动调整以读取显示的最小/最大值。我不想手动设置它,因为我的循环处理的每个数据帧都具有不同的范围。
如果我的数据帧列表为summary,则以下代码将给我一个未调整坐标轴的图形列表:
这给我带来了:未进行轴调整的图表 如果我像这样调整x轴为400-900:
如果我的数据帧列表为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]]
这给我带来了:未进行轴调整的图表 如果我像这样调整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轴的比例对于显示的数据来说太大了: x轴正确但y轴错误的图
如何自动调整y轴到适当的最小/最大值,但仅在400-900纳米范围内的x轴上?