You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整曲线数据范围使X值适配15-30区间?

如何调整曲线数据范围使X值适配15-30区间?

嘿,我懂你要的是什么!你不是要调整画布大小(figsize确实解决不了这个问题),而是要把曲线的实际数据范围从原来的34.5-37.5左右,线性映射到15-30这个目标区间对吧?这其实是个数据缩放的问题,很容易解决,我给你一步步说:

首先核心思路是线性归一化映射——把原始X数据的区间,按比例拉伸/压缩到你想要的15-30区间,公式很简单:
新X值 = (原始X值 - 原X最小值) / (原X最大值 - 原X最小值) * (目标X最大值 - 目标X最小值) + 目标X最小值

接下来直接修改你的代码就行,我把关键步骤加进去了:

import numpy as np
import matplotlib.pyplot as plt
import scipy

# 原始数据
x5=[34.5,35.5,34.5,34.5,36.5,37.2, 37.5,36.5,36,37.5]
y5=[11,12.6,11,10,11,12,12.6,11,10,10.5]
t5=np.linspace(0, len(x5), num=len(x5), endpoint=True)

# 三次插值部分不变
f11 = scipy.interpolate.interp1d(t5,x5, kind='cubic')
f12 = scipy.interpolate.interp1d(t5,y5, kind='cubic')
tnew5 = np.linspace(0, len(x5), num=100000, endpoint=True)
x_interp = f11(tnew5)
y_interp = f12(tnew5)

# 关键:对X数据进行缩放,适配15-30区间
# 1. 计算原始X数据的极值
x_original_min = np.min(x5)
x_original_max = np.max(x5)
# 2. 定义目标区间
target_x_min = 15
target_x_max = 30
# 3. 线性映射到目标区间
x_scaled = (x_interp - x_original_min) / (x_original_max - x_original_min) * (target_x_max - target_x_min) + target_x_min

# 绘图
plt.plot(x_scaled, y_interp, label='适配后曲线')
plt.xlim(target_x_min, target_x_max)  # 确保X轴只显示目标区间
plt.ylabel('Y值')
plt.xlabel('X值(15-30区间)')
plt.legend()
plt.grid(alpha=0.3)
plt.show()

这样修改后,你的曲线形状完全不变,但X轴的数值会精准落在15-30之间,完全不用碰figsize。如果你之后想调整Y轴的范围,用同样的方法处理y_interp就行,逻辑是一样的~

备注:内容来源于stack exchange,提问作者Azil559

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 03:15:29