Почему все ярлыки не отображаются должным образом в matplotlib? - PullRequest
1 голос
/ 10 января 2020

Когда я выполняю приведенный ниже код, я вижу, что Demo печатает вверху горизонтально. Demo2 печатает внутри графика с dotted line. Но я не вижу Demo1? Почему Demo1 не печатает и почему Demo идет горизонтально?

import matplotlib.pyplot as plt    
x = [1,2,3,4,5,-1-2]
y = [-1,5, 100, -2, 50, 100]
t = [100, 110, 120, 130, 140, 150]
plt.figure()

ax1 = plt.subplot(3, 1, 1)
plt.title('Demo');
ax1.plot(t,x, 'b.:', label="Demo") # Showing top Horizontal 

ax2 = plt.subplot(3, 1, 2, sharex=ax1)
ax2.plot(t,y, 'b.:', label="Demo1") # Not showing up

ax3 = plt.subplot(3, 1, 3, sharex=ax1)
ax3.plot(t,t, 'b.:', label="Demo2") # This is perfect how I wanted

plt.legend()
plt.show()

1 Ответ

1 голос
/ 10 января 2020

Вместо этого вы можете использовать plt.figlegend(), что даст вам такой вывод

enter image description here

Или позвоните plt.legend() после каждого сюжета, чтобы добавить легенду к каждому субплоту индивидуально,

import matplotlib.pyplot as plt    
x = [1,2,3,4,5,-1-2]
y = [-1,5, 100, -2, 50, 100]
t = [100, 110, 120, 130, 140, 150]
plt.figure()

ax1 = plt.subplot(3, 1, 1)
plt.title('Demo');
ax1.plot(t,x, 'b.:', label="Demo") # Showing top Horizontal 
plt.legend()

ax2 = plt.subplot(3, 1, 2, sharex=ax1)
ax2.plot(t,y, 'b.:', label="Demo1") # Not showing up
plt.legend()

ax3 = plt.subplot(3, 1, 3, sharex=ax1)
ax3.plot(t,t, 'b.:', label="Demo2") # This is perfect how I wanted
plt.legend()
plt.show()

enter image description here

Если это не совсем то, что вы хотите, есть другие методы, описанные в ответы на этот вопрос

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