参考自《R Graphics Cookbook》
对连续变量调整其坐标轴的显示范围和和设置其坐标轴显示的间隔,是难以避免的。
因为映射给y轴往往是连续变量,若针对y轴设置坐标轴显示范围,使用scale_y_continuous(limits = c( ,))语法。
library(ggplot2)
#一个箱线图的底图
pg_plot <- ggplot(PlantGrowth, aes(x = group, y = weight)) +
geom_boxplot()
一、使用ylim语法,其是scale_y_continus(limits = c( , ))的简写
#展示底图(ggplot2会默认自动生成一个y轴上的显示范围)
pg_plot
![2689e64d52727b5949354359a2dd0ea1.png](https://i-blog.csdnimg.cn/blog_migrate/94db6b4915c23f412efcf77902a5e399.png)
#设置y轴的显示范围从0到最大值(或其他任何值)
pg_plot +
ylim(0, max(PlantGrowth$weight))
![1f56474d640bf72bbf6a581d34695a79.png](https://i-blog.csdnimg.cn/blog_migrate/7497cdee2371088e25238ccde180eaf8.png)
#注意ylim语法是scale_y_continus(limits = c( , ))的简写, 因此等同于
pg_plot +
scale_y_continuous(limits = c(0, max(PlantGrowth$weight)))
二、想要设置y轴的显示范围,并设置间隔,需要写完整版的scal_y_continuous语法
pg_plot +
scale_y_continuous(limits = c(0, 10), breaks = c(0, 5, 10))
三、坐标轴放大镜
###当设置y轴的显示范围时,部分在此范围外的值无法显示,而且箱线图会根据新的y轴范围内的数据生成新的箱线图,其数据被裁剪,
##如果不想改变箱线图的整体形状(不裁剪数据),并且还想要仅仅展示部分y轴坐标范围,则需要一种坐标变换,起到放大或缩小坐标轴的作用,
#即相当于放大镜或缩小镜的作用(当然缩小图不会裁剪数据,所以没有意义):使用coord_cartesian语法(意思是 坐标_笛卡尔的?)
pg_plot +
coord_cartesian(ylim = c(5, 6.5))
![7efa4fff30dda9efb3430d1356523059.png](https://i-blog.csdnimg.cn/blog_migrate/a1bb3769a67ec45abcae242c42585b35.png)
四、仅调整一个方向的坐标轴范围
##以上的方法都涉及到调整坐标轴显示范围时,要给出坐标轴两个方向的值,
#还有一种仅仅扩大y轴一个方向的显示范围,让另一个方向的显示范围使用默认值。方法:expand_limits语法
pg_plot +
expand_limits(y = 0)
![261bdbe16a488cc5589741ac15b46e49.png](https://i-blog.csdnimg.cn/blog_migrate/b2fd4804e22a145fc0b4e89d3f17181b.png)