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

Matplotlib同画布多图显示异常:如何让三条曲线正常重叠展示?

解决Matplotlib多量级曲线同图显示问题

问题根源

你的三条曲线y值数量级差距极大:

  • y1的数值远小于y2、y3,在线性y轴下会被压缩到几乎与x轴重合,导致看不见
  • y2的数值相对于y3来说过小,在线性轴下看起来近似直线

解决方案

将y轴改为对数刻度,这样不同数量级的数值都能在同一坐标系下清晰显示。只需在代码中添加一行plt.yscale('log')即可。

修改后的完整代码:

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

font = {'family' : 'Sans',
        'weight' : 'normal',
        'size'   : 16}

matplotlib.rc('font', **font)

x = np.arange(20,100,0.1)
p = 6
a = 2

y1 = (((x-p) ** (-p-0.1)) * ((x-a) ** (0.1+a)))/(p-a)
y2 = (((x-p) ** (-p-50)) * ((x-a) ** (50+a)))/(p-a)
y3 = (((x-p) ** (-p-200)) * ((x-a) ** (200+a)))/(p-a)

plt.plot(x, y1, linewidth=2.0, label='q = 0.1')
plt.plot(x, y2, linewidth=2.0, label='q = 50')
plt.plot(x, y3, linewidth=2.0, label='q = 200')
plt.legend()
plt.xlabel("X")
plt.ylabel("Y")
plt.yscale('log')  # 启用对数y轴
plt.show()

额外说明

如果不想用对数轴,也可以考虑使用双y轴分别显示不同量级的曲线,但对数轴是更简洁的方案,能直观展示三条曲线的变化趋势。

内容的提问来源于stack exchange,提问作者sjk05

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:57:09