【发布时间】:2021-09-10 17:03:10
【问题描述】:
我在 Python 中使用 matplotlib,希望使用相同的绘图,但有几个不同的轴,它们都是第一个的函数,但不线性依赖于第一个 y 值。
作为示例,让我们假设一个显示简单线 y=x 的图。 现在我有一个随机函数,比如 f(y)=5y^2 + 2。
我的理想输出图现在应该还是一条线,但是等距刻度不应该是 y=1, 2, 3, 4,而是 f(y)=7, 22, 47, 82,这样我就可以叠加具有 2 个不同轴的两个图。
这是否可能,因为刻度之间的距离不均匀,也不能用对数图表示?因此,我只想在每个刻度值上放置一个函数,而不更改图形或刻度的位置。
在图形程序中,这很简单,只需使用相同的绘图并手动重写每个刻度。
https://drive.google.com/file/d/1fp2vrFvlz-9xdJPmqdQjyMQK7gzPX24G/view?usp=sharing
提前感谢您!示例代码并没有真正的帮助,因为它只是标准的 matplotlib 代码,但缺少最重要的缩放部分。 我知道我可以使用 yticks 手动设置刻度,但这并不能解决缩放问题,并且所有刻度会显得非常接近。
plt.plot(["time_max_axis"], ["position_max_axis"])
plt.xlabel("Time (ms)")
plt.ylabel("Max position (mm)")
plt.ylim(0, z0_mm)
plt.show()
plt.plot(["time_max_axis"], ["frequency_axis"])
plt.xlabel("Oscillation frequency (kHz)")
plt.ylabel("Max position (mm)")
plt.ylim(fion_kHz, fion_kHz * (1 + (f_shift4 + f_shift6) / 100))
plt.show()
【问题讨论】:
-
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
-
据我了解,使用幽灵轴可以轻松完成。但我需要知道您的预期输出到底是什么样的。上传您想要的情节的图片(或图片链接)。
-
作为新会员,无法上传图片,理解起来比较复杂。我改写了原来的问题!
-
您可以发布图片链接。我看了你的编辑,还是不明白。我无法想象应该如何放置轴。每个刻度值的功能?它应该是什么意思?此外,请提供您的尝试。
-
我会回答这个问题,但请记住,SO 不是免费编码服务的网站。你必须先尝试解决它。分享您的尝试,展示您的努力,让社区帮助您解决实际问题。您在问题中分享的那段代码与您的问题完全无关。
标签: python matplotlib