我实际上在一个图中绘制了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),以便在单个数据文件的图例框中只显示一次? 任何帮助将不胜感激。
答案 0 :(得分:1)
这是一个快速修复
....
label_name = None
if fname == filelist[0]: label_name = 'Reference'
plt.plot(t,y,'maroon', linewidth=1.2,label=label_name)
....
图例项目与标签相关联,如果您在标签中放置None
,则应将其空白。
在您的代码的上下文中
将pandas导入为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()