在 matplotlib 中,pyplot.text 在应用 twinx 时消失。怎么会出现?
In matplotlib, pyplot.text disappears when applying twinx. How can it appear?
plt.text(x, y, text) 在我使用单个 y 轴时有效,但在我应用 twinx 时它消失了。可以修复吗?
fig, ax = plt.figure(figsize=(8,6))
text = "E_rms(test) = {:7.3f}/nE_maxres = {:7.3f}".format(rmse,maxres)
plt.text(0,0,text)
plt.xlabel('data')
ax.set_ylable('PE(eV)')
ax.tick_params(axis='y', labelcolor='b')
if Ltwinx:
ax2 = ax.twinx()
ax2.set_ylabel("Difference(eV)")
ax2.set_tick_params(axis='y', labelcolor='g')
p1 = ax.scatter(range(y), y, c='r', label='true')
p2 = ax.scatter(range(y), h, c='b', label='hypothesis')
if Ltwinx:
p3, = ax2.plot(range(y), diff, c='g', label='difference')
plt.legend([p1,p2],['true value', 'hypothesis'],loc=(0.0, 0.1))
else:
p3, = plt.plot(range(y), diff, c='g', label='difference')
plt.legend([p1,p2,p3],['true value', 'hypothesis', 'difference'],loc=(0.0, 0.1))
plt.show()
此代码是从完整代码中提取的,下面是具有两个 y 轴(第一个图)和一个 y 轴的图,其中文本在 twinx 中消失(第一个图)。注意 y 轴刻度因 "diff" 的值而不同,尽管 p1、p2 数字在两个图中相同。
我误会了manual for matplotlib.pyplot.text。
要使用诸如 (0,0) 到 (1,1) 之类的轴坐标而不考虑 y 值,我应该添加关键字 "transform=ax.transAxes"。所以
plt.text(0,0,text, transform=ax.transAxes)
正在工作。
plt.text(x, y, text) 在我使用单个 y 轴时有效,但在我应用 twinx 时它消失了。可以修复吗?
fig, ax = plt.figure(figsize=(8,6))
text = "E_rms(test) = {:7.3f}/nE_maxres = {:7.3f}".format(rmse,maxres)
plt.text(0,0,text)
plt.xlabel('data')
ax.set_ylable('PE(eV)')
ax.tick_params(axis='y', labelcolor='b')
if Ltwinx:
ax2 = ax.twinx()
ax2.set_ylabel("Difference(eV)")
ax2.set_tick_params(axis='y', labelcolor='g')
p1 = ax.scatter(range(y), y, c='r', label='true')
p2 = ax.scatter(range(y), h, c='b', label='hypothesis')
if Ltwinx:
p3, = ax2.plot(range(y), diff, c='g', label='difference')
plt.legend([p1,p2],['true value', 'hypothesis'],loc=(0.0, 0.1))
else:
p3, = plt.plot(range(y), diff, c='g', label='difference')
plt.legend([p1,p2,p3],['true value', 'hypothesis', 'difference'],loc=(0.0, 0.1))
plt.show()
此代码是从完整代码中提取的,下面是具有两个 y 轴(第一个图)和一个 y 轴的图,其中文本在 twinx 中消失(第一个图)。注意 y 轴刻度因 "diff" 的值而不同,尽管 p1、p2 数字在两个图中相同。
我误会了manual for matplotlib.pyplot.text。 要使用诸如 (0,0) 到 (1,1) 之类的轴坐标而不考虑 y 值,我应该添加关键字 "transform=ax.transAxes"。所以
plt.text(0,0,text, transform=ax.transAxes)
正在工作。