我想在背景图像上绘制一条x轴和y轴为对数刻度的曲线。然而,当我试图这样做时,图像被对数刻度拉伸。我得到this figure
这是我写的代码。
import numpy as np
import matplotlib.pyplot as plt
x = np.random.uniform(low=0, high=10**6, size=(100,))
y = np.random.uniform(low=10**(-14), high=10**(-10), size=(100,))
x.sort()
y.sort()
xm = len(x)
ym = len(y)
img = plt.imread("quiverplot.png")
fig, ax2 = plt.subplots()
plt.plot(x, y)
ax2.set_xscale('log')
ax2.set_yscale('log')
ax1 = ax2.twinx()
img = ax1.imshow(img, zorder=0, extent=[x[0], x[xm-1], y[0], y[ym-1]], aspect='auto')
fig.tight_layout()
plt.show()
谢谢你给予我的任何建议。
1条答案
按热度按时间dvtswwa31#
不要使用
twinx()
,而是使用matplotlib.pyplot.axes()
创建一个新轴。您可以像这样控制框架(背景)、x/y轴和z顺序。如果您像这样更改绘图顺序,将会更简单。