基于R ggplot2中的子集在循环中创建动态Ymax
我试图创建单独的时间序列图,其中对于每个图,y轴的范围从零到每个子集中的最大值。子集从对应于TCE浓度(在y轴上)的唯一井ID列表中指定。很遗憾,我无法共享我正在使用的数据,但如果有人能帮我解决问题,我将不胜感激 这是我的代码:基于R ggplot2中的子集在循环中创建动态Ymax,r,ggplot2,formatting,tidyverse,scale,R,Ggplot2,Formatting,Tidyverse,Scale,我试图创建单独的时间序列图,其中对于每个图,y轴的范围从零到每个子集中的最大值。子集从对应于TCE浓度(在y轴上)的唯一井ID列表中指定。很遗憾,我无法共享我正在使用的数据,但如果有人能帮我解决问题,我将不胜感激 这是我的代码: require(ggplot2) tce.charts <- function(lba, na.rm = TRUE) { well_list <- unique(lba$well_id) for (i in seq_along(well
require(ggplot2)
tce.charts <- function(lba, na.rm = TRUE) {
well_list <- unique(lba$well_id)
for (i in seq_along(well_list)) {
plot <- ggplot(subset(lba, lba$well_id == well_list[i]),
aes(x = sample_date, y = tce)) + theme_classic() +
geom_line(color = 'red3', size = 0.5) +
geom_point(color = 'red3', size = 0.75) +
scale_x_date(date_labels = "%m/%d/%y", breaks = '3 months') +
ylim(0, max(lba$tce)) +
labs(title = paste(well_list[i]), subtitle = 'Historical TCE Concentrations',
x = 'Sample Collection Date',
y = 'TCE Concentration (µg/L)') +
theme(plot.title = element_text(size=14, hjust=0.5, face="bold"),
plot.subtitle = element_text(size=12, hjust=0.5),
axis.title.x = element_text(size=10, face="bold"),
axis.text.x = element_text(size=8, angle=45, hjust=1, color="black"),
axis.text.y = element_text(size=8, color="black"),
axis.title.y = element_text(size=10, face="bold"))
ggsave(plot = last_plot(),
file= paste(wd, '/Trend Chart Outputs/', well_list[i], ".pdf", sep = ''),
width = 6.5, height = 4.5, units = 'in', dpi = 300)
}
}
tce.charts(lba)
require(ggplot2)
tce.charts还没有仔细查看,但是如果您想在默认情况下使用数据的范围,ylim
可以将NA
作为其参数之一。所以我会尝试ylim(0,NA)+
而不是ylim(0,max(lba$tce))+
。这就像一个魔咒。哇,答案这么简单,简直让人发疯。非常感谢你!了解这种感觉。很高兴它有帮助。我们还没有仔细查看,但是如果您想在默认情况下使用数据的范围,ylim
可以将NA
作为其参数之一。所以我会尝试ylim(0,NA)+
而不是ylim(0,max(lba$tce))+
。这就像一个魔咒。哇,答案这么简单,简直让人发疯。非常感谢你!了解这种感觉。很高兴它有帮助