Не могу правильно настроить цикл и создать легенду
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
for i in np.arange(11, 15):
fname = f'C:/Users/79529/Desktop/Nastya/KE-{i}.uxd'
x = np.loadtxt(fname, usecols = 0)
y = np.loadtxt(fname, usecols = 1)
for k in np.arange(0, 6000, 1500):
plt.plot(x, y + k)
ax.legend()
plt.show()
Добрый день! В этом цикле я создаю 4 графика и хочу, чтобы они не накладывались друг на друга. Для этого я хотел, чтоб каждый последовательный график располагался выше предыдущего. Но у меня получается так, что графики накладываются друг на друга, как мне правильно сделать цикл? Еще вопрос: Как мне указать легенду. Допустим: 1 график назвать хочу альфа железо, второй гамма железо и т.д.
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Поменял код на вообще другой, сразу не заметил, что у вас ещё один цикл и вообще другая логика отрисовки, чем я думал:
import numpy as np
import matplotlib.pyplot as plt
names = ['альфа железо', 'бетта железо', 'гамма железо', 'дельта железо']
fig, ax = plt.subplots(1, 4, figsize=(16, 4), sharey=True)
for ai, i in enumerate(np.arange(11, 15)):
fname = f'C:/Users/79529/Desktop/Nastya/KE-{i}.uxd'
x = np.loadtxt(fname, usecols = 0)
y = np.loadtxt(fname, usecols = 1)
ax[ai].set_title(names[ai])
for k in np.arange(0, 6000, 1500):
ax[ai].plot(x, y + k)
plt.show()
Данные у меня, конечно, искусственные, ваших данных у меня нет. Но примерно получается такое:
А, вы вроде вертикально хотели, тогда поменять одну строчку:
fig, ax = plt.subplots(4, 1, figsize=(4, 16), sharex=True)

