如何在ggplot的geom_line()中设置y轴范围为[0,2]
调整ggplot折线图的Y轴范围到[0,2]
数据
> dput(df_ggplot) structure(list(time = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25), prices = c(-0.30006834352587, -0.00555487442073247, 0.258679288900665, 0.439432386185049, 0.216483899258755, -0.07180776590316, -0.244214595104925, -0.014369355833968, -0.130494093735835, -0.0993524071519092, 0.0417262548938068, 0.029683613288831, -0.336259749313202, 0.0432942972908209, 0.198346778977676, -0.0609698937346443, 0.162074965376874, 0.362756477084522, -0.201537845483782, -0.218935082840323, 0.0617031438039988, -0.11493961918202, 0.133697792972297, -0.0614481093677531, -0.311669297606833, -0.30006834352587, 0.0819856942951882, 0.163636220849344, 0.985956325310659, -0.16096684463549, -0.0806455784199295, -0.134650534646189, -0.0674387029421786, 0.0809173564567764, -0.175459007730146, 0.0405360847200064, -0.189403033958823, -0.217194929585943, -0.122518388961322, 0, 0.0953136827739254, 0, 0.25794826085627, -0.366890546975166, -0.0136316982929607, -0.0272726870548112, -0.0682359777640138, -0.0409788500441341, 0.0819297440769776, -0.314673133835946), variable = c("simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "simulated", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data", "data")), row.names = c(NA, -50L), class = "data.frame")
原绘图代码
ggplot(data=df_ggplot,aes(x=time, y=prices, colour=variable))+ geom_line()
修改后的代码(设置Y轴范围为[0,2])
要将Y轴范围固定为0到2,只需在原代码中添加scale_y_continuous()函数并指定limits参数:
ggplot(data=df_ggplot,aes(x=time, y=prices, colour=variable))+ geom_line()+ scale_y_continuous(limits = c(0, 2))
补充说明
- 设置
limits = c(0, 2)后,所有Y值小于0的点会被自动截断,不会在图表中显示。 - 如果希望保留这些点但仍将轴范围设为[0,2],可以添加
oob = scales::squish参数,让超出范围的点被压缩到轴的边界:
ggplot(data=df_ggplot,aes(x=time, y=prices, colour=variable))+ geom_line()+ scale_y_continuous(limits = c(0, 2), oob = scales::squish)
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

