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

如何在Matplotlib中对齐双X轴(twiny)使对应数据点重合?

双X轴非线性对齐问题及解决思路

我编写代码绘制两条曲线,希望展示同一y值对应的两个x值(x值间存在非线性关系)。由于描述y的函数可表示为任意一个x的函数,因此需要呈现这两种依赖关系。但当前绘图中的双X轴并未对齐,仅首尾数据点重合,红色点无法对应到蓝色/橙色点的正上方。

import numpy as np
import matplotlib.pyplot as plt

# Energies in keV
# EPKA, Tdam, eff
FeValues = np.array([
    [80, 69, 42],
    [90, 78, 42],
    [100, 86, 42]
])
WValues = np.array([
    [150, 133, 30],
    [200, 177, 29],
    [250, 220, 29]
])

fig = plt.figure()
axPKA = fig.add_subplot()
axPKA.set_xlabel(r"$E_{PKA}$ (keV)")
axPKA.set_ylabel(r"$\overline{\xi}$ (%)")
axTdam = axPKA.twiny()
axTdam.set_xlabel(r"$T_{dam}$ (keV)")

axPKA.plot(FeValues[:, 0], FeValues[:, 2], label="Fe", marker="o")
axPKA.plot(WValues[:, 0], WValues[:, 2], label="W", marker="o")
axTdam.scatter(FeValues[:, 1], FeValues[:, 2], marker=".", color="red")
axTdam.scatter(WValues[:, 1], WValues[:, 2], marker=".", color="red")

axPKA.legend()
fig.tight_layout()
plt.show()

经分析,EPKA与Tdam为非线性关系,且Fe和W的该关系存在差异,常规双X轴对齐方案无法解决此问题。最终决定改用另一图表单独展示EPKA-Tdam的对应关系。

内容的提问来源于stack exchange,提问作者Abel Gutiérrez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 10:53:10