R 如何根据数据帧在任何给定时间的最大值设置最大y轴限制?
我对R及其功能还比较陌生,所以我会尽力解释我的问题。我正在用每周流行病学数据绘制一个足够简单的线形图。据我所知,我的代码目前下载数据,并以允许添加新数据的方式对其进行操作(即,我可以在几个月内运行代码,它会添加我错过的几个星期)。我目前的最高病例率是1460,因此当我绘制图表时,我可以手动将限制设置为1500或2000,这很好。然而,如果我在两个月后回来,案件率现在是330,那么我的代码仍然将最大值设置为2000,这不是很像样(或者,尽管希望不是这样,但比率会增加到3300)。理想情况下,我不希望每次都手动更改限制 我确实找到了一个类似的问题和答案,但我没有完全理解日志方面的内容 我这里的问题是,我是否可以将最大y值编码为四舍五入,比如说,最接近当时数据集最大值的500?例如,如果最高速率为645,则y限制将设置为1000R 如何根据数据帧在任何给定时间的最大值设置最大y轴限制?,r,ggplot2,axis,R,Ggplot2,Axis,我对R及其功能还比较陌生,所以我会尽力解释我的问题。我正在用每周流行病学数据绘制一个足够简单的线形图。据我所知,我的代码目前下载数据,并以允许添加新数据的方式对其进行操作(即,我可以在几个月内运行代码,它会添加我错过的几个星期)。我目前的最高病例率是1460,因此当我绘制图表时,我可以手动将限制设置为1500或2000,这很好。然而,如果我在两个月后回来,案件率现在是330,那么我的代码仍然将最大值设置为2000,这不是很像样(或者,尽管希望不是这样,但比率会增加到3300)。理想情况下,我不希
Region_Case_Graph <-ggplot(data = Region_Weekly_Cases_Long,
aes(x = date, y = Weekly_Cases, color = Local_Authority)) +
geom_line() +
geom_point() +
xlab("Date\n") + ylab("Weekly Cases\n") +
scale_x_date(date_breaks = "1 month",
date_labels = "%d-%b-%y") +
theme(axis.text.x = element_text(size = 10, angle = 90, vjust = 0.25)) +
labs(color = "Local Authority\n") +
theme(panel.background = element_rect(fill = "white"),
panel.grid.major = element_line(size = 0.5, colour = "lightgrey")) +
scale_y_continuous(limits = c(0,2000)) +
ggtitle("Weekly Cases in each Local Authority, 07/20 to Present\n")
Region\u Case\u Graph此函数:
round.choose <- function(x, roundTo, dir = 1) {
if(dir == 1) { ##ROUND UP
x + (roundTo - x %% roundTo)
} else {
if(dir == 0) { ##ROUND DOWN
x - (x %% roundTo)
}
}
}
round.choose您可以使用dput(地区\每周\案例\长时间)
提供数据吗?请阅读。感谢您的及时回复。那密码真是太棒了!我将确保保存此函数。虽然我很惊讶这样的函数没有内置到特定的包中。太棒了,很乐意帮忙:)
df <- data.frame(x = c(0,1,2,3,4,5),
y = c(100, 150, 200, 250, 300, 350))
ggplot(data = df, aes(x = x, y = y)) +
geom_point() +
scale_y_continuous(limits = c(0, round.choose(max(df$y), 500, 1)))