如何在R语言中截断Y轴,只显示指定区间的曲线?
保留指定Y轴区间的曲线部分
要实现只显示Y轴0-20和30-40区间的曲线,核心思路是把不在这两个区间的Y值替换为NA——R的绘图函数遇到NA会自动跳过这部分,不会绘制。具体操作如下:
步骤1:处理数据,替换超出区间的Y值
先定义需要保留的Y范围,再对矩阵mj的每一行做过滤处理:
mj = matrix(c(1:63),9) m = seq(1,21,3) # 定义过滤函数:仅保留指定区间内的Y值,其余设为NA filter_y <- function(y) { y[!(y >= 0 & y <= 20 | y >= 30 & y <= 40)] <- NA return(y) } # 对mj的每一行应用过滤函数,转置后恢复原矩阵结构 mj_filtered <- t(apply(mj, 1, filter_y))
步骤2:用处理后的数据绘图
基于过滤后的矩阵绘图,超出目标区间的曲线部分会被自动截断:
# 绘制第一行曲线,设置Y轴范围覆盖目标区间 plot(m, mj_filtered[1,], type="l", ylim=c(0,40)) # 循环绘制剩余行 for(i in 2:7){ lines(m, mj_filtered[i,], type="l") }
这样生成的图就只会保留0-20和30-40区间内的曲线段,其余超出区域的部分不会显示。
内容的提问来源于stack exchange,提问作者user20536224
相关产品推荐
相关产品推荐

