Добавление легенд в График, созданный с использованием Matplotlib и Numpy (несколько графиков из текстового файла) - PullRequest
0 голосов
/ 01 февраля 2020

Мне очень помогли, когда я задал вопрос раньше, поэтому я подумал, что снова прыгну, чтобы получить помощь, вот мой код:

import numpy as np
import matplotlib.pyplot as plt
import os
os.chdir("C:\Users\Chloe\Desktop")
data=np.loadtxt("tree_rings.txt")
for column in data.T[1:]:
    plt.plot(data[:,0],column)
plt.title("Growth of Tree Rings Over Time")
plt.xlabel("Year")
plt.ylabel("Size of Tree Rings (mm)")
plt.show()

Как мне go о добавлении легенд для каждой строки на графике, есть 3 строки (образец 1, образец 2 и образец 3), я в основном не понимаю, как указать, какая строка соответствует какому набору данных. Данные представлены в 4 столбцах, первый - это год, который соответствует оси x, поэтому он не отображается, а 2-й, 3-й и 4-й столбцы представлены в виде линий на графике. Я действительно новичок в python, поэтому спасибо заранее :))

1 Ответ

0 голосов
/ 01 февраля 2020

У ваших данных есть имена столбцов? Если это так, вы можете использовать np.genfromtxt() следующим образом:

data = np.genfromtxt('tree_rings.csv',delimiter=',',names=True)

Чтобы ответить на ваш вопрос, вы бы использовали label и plt.legend() следующим образом:

fields = [field for field in data.dtype.fields.keys() if 'Width' in field]
for field in fields:
    plt.plot(data['Year'],data[field],label=field)
#                                     ^^^^^
plt.title("Growth of Tree Rings Over Time")
plt.xlabel("Year")
plt.ylabel("Size of Tree Rings (mm)")
plt.legend()
plt.show()

Результат: enter image description here

...