Как показать легенду только для одного сюжета
На самом деле я строю 2 набора данных на одном графике, первый набор данных - это всего 1 файл, а второй набор данных содержит 15 файлов.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib notebook
filelist=[]
for i in range (1,16):
filelist.append("/Users/Hrihaan/Desktop/Code/A_B_%s.txt" %i)
data1= pd.read_table('/Users/Hrihaan/Desktop/Code/A_B_0.txt', dtype=float, header=None, sep='\s+').values
for fname in Filelist:
data= pd.read_table(fname, dtype=float, header=None, sep='\s+').values
t=np.arange(1,100,1)
x=data[:,1]
y=data1[:,1]
plt.xlabel('Time Interval (Hours)')
plt.ylabel('Energy')
plt.plot(t,x,'HandleVisibility','off',linewidth=0.40) #thought it would stop the legend option for this plot
plt.plot(t,y,'maroon', linewidth=1.2,label='Reference')
plt.legend()
plt.show()
Но так как другой список файлов содержит 15 файлов, когда я только пытаюсь показать легенду для отдельного файла данных (data1), в окне легенды он появляется 15 раз. Можно ли отключить параметр легенды для списка файлов (15), чтобы в поле легенды одного файла данных он отображался только один раз? Любая помощь будет оценена.
1 ответ
Решение
Это быстрое решение
....
label_name = None
if fname == filelist[0]: label_name = 'Reference'
plt.plot(t,y,'maroon', linewidth=1.2,label=label_name)
....
элементы легенды привязаны к маркировке, если вы поставите None
на этикетке он должен быть пустым.
В контексте вашего кода
импортировать панд как pd импортировать numpy как np
import matplotlib.pyplot as plt
%matplotlib notebook
filelist=[]
for i in range (1,16):
filelist.append("/Users/Hrihaan/Desktop/Code/A_B_%s.txt" %i)
data1= pd.read_table('/Users/Hrihaan/Desktop/Code/A_B_0.txt', dtype=float, header=None, sep='\s+').values
for fname in filelist:
data= pd.read_table(fname, dtype=float, header=None, sep='\s+').values
t=np.arange(1,100,1)
x=data[:,1]
y=data1[:,1]
plt.xlabel('Time Interval (Hours)')
plt.ylabel('Energy')
plt.plot(t,x,'HandleVisibility','off',linewidth=0.40) #thought it would stop the legend option for this plot
label_name = None
if fname == filelist[0]: label_name = 'Reference'
plt.plot(t,y,'maroon', linewidth=1.2,label=label_name)
plt.legend()
plt.show()