Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在matplotlib中,应用twinx时pyplot.text将消失。怎么会这样?_Python_Matplotlib_Twinx - Fatal编程技术网

Python 在matplotlib中,应用twinx时pyplot.text将消失。怎么会这样?

Python 在matplotlib中,应用twinx时pyplot.text将消失。怎么会这样?,python,matplotlib,twinx,Python,Matplotlib,Twinx,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', labelcol

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两个图中的数字相同

我误解了你的意思。 要使用轴坐标,例如(0,0)到(1,1),而不考虑y值,我应该添加关键字“transform=ax.transAxes”。所以

他正在工作

我误解了你的意思。 要使用轴坐标,例如(0,0)到(1,1),而不考虑y值,我应该添加关键字“transform=ax.transAxes”。所以


他正在工作

您是否尝试过
ax.text(…)
而不是
plt.text
0,0
不是从-945到-920的轴的一部分。你希望在哪里看到文本?@Andrea,看来我也得到了同样的结果。@Ernest,这是因为y轴的值。手册上说()默认值是轴值,因此Ernest是正确的。看起来使用了主y轴(左侧)的y值。您是否尝试过使用
ax.text(…)
而不是
plt.text
0,0
不是从-945到-920的轴的一部分。你希望在哪里看到文本?@Andrea,看来我也得到了同样的结果。@Ernest,这是因为y轴的值。手册上说()默认值是轴值,因此Ernest是正确的。看起来使用了主y轴(左侧)的y值。
plt.text(0,0,text, transform=ax.transAxes)