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

解决温度-比容函数曲线两端倾斜趋势无法显示的绘图问题

解决温度-比容曲线倾斜分布的可视化问题

你的核心问题在于x轴数据跨度极大(0.001量级 vs 14-16量级),普通绘图会压缩小值区间;而使用brokenaxes时,错误调用了全局的plt.plot,没有用断点轴对象的plot方法,导致数据没有映射到对应的分段轴上。

方案1:正确使用brokenaxes断点轴

修正后的代码会将数据分别绘制到两个分段x轴上,两端的趋势都能清晰展示:

from brokenaxes import brokenaxes
import matplotlib.pyplot as plt

y = [10, 20, 30, 40, 45.806, 45.806, 50, 60, 70]
x = [0.00100034, 0.00100184, 0.00100441, 0.00100789, 0.00101027, 14.67, 14.867, 15.335, 15.801]

# 创建断点x轴,指定两个区间,缩小小值区间范围聚焦细节
bax = brokenaxes(xlims=((0.001, 0.00102), (14, 16)), hspace=0.1)
# 使用bax.plot而非plt.plot,将数据绑定到断点轴
bax.plot(x, y, marker='o')

# 添加标签和标题
bax.set_xlabel('比容')
bax.set_ylabel('温度')
bax.set_title('温度-比容曲线')

plt.show()

关键修正点:

  • 用bax.plot()替代plt.plot(),确保数据被正确绘制到分段轴上
  • 缩小小值区间的x范围(从0.001到0.00102),更聚焦小x值的变化细节
  • 添加标记点(marker='o'),更清晰展示每个数据点的位置

方案2:拆分两个子图分别展示

如果断点轴的样式不符合需求,可以将数据拆分为两组,绘制两个子图分别展示小x和大x区间的趋势:

import matplotlib.pyplot as plt

y = [10, 20, 30, 40, 45.806, 45.806, 50, 60, 70]
x = [0.00100034, 0.00100184, 0.00100441, 0.00100789, 0.00101027, 14.67, 14.867, 15.335, 15.801]

# 拆分数据:前5个是小x值,后4个是大x值
x_small, y_small = x[:5], y[:5]
x_large, y_large = x[5:], y[5:]

# 创建2个子图,横向排列
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 4))

# 绘制小x区间
ax1.plot(x_small, y_small, marker='o', color='blue')
ax1.set_title('小比容区间')
ax1.set_xlabel('比容')
ax1.set_ylabel('温度')
ax1.grid(True, alpha=0.3)

# 绘制大x区间
ax2.plot(x_large, y_large, marker='s', color='orange')
ax2.set_title('大比容区间')
ax2.set_xlabel('比容')
ax2.grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

优势:

  • 两个区间的变化趋势都能独立清晰展示,没有轴刻度的干扰
  • 可以分别对每个子图做细节优化(比如添加网格、调整刻度密度)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 14:30:56