В matplotlib pyplot.text исчезает при применении twinx. Как это может появиться? - PullRequest
1 голос
/ 21 января 2020

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 (1-я цифра) и одной Y-осью, где текст исчез в двойном (1-е число ). Обратите внимание, что масштаб оси y отличается из-за значений «diff», хотя значения p1, p2 одинаковы на обоих рисунках.

plot with twinx plot with single y-axis

1 Ответ

0 голосов
/ 22 января 2020

Я неправильно понял руководство для matplotlib.pyplot.text . Чтобы использовать координаты оси, такие как (0,0) - (1,1), независимо от значений y, я должен добавить ключевое слово «transform = ax.transAxes». Так что

plt.text(0,0,text, transform=ax.transAxes)

работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...