python中利用plt.plot和plt.scatter分别画带有标签的图

plt.scatter能画出来带有注释的图,而plt.plot却没有
#导入包

import pandas as pd
import matplotlib.pyplot as plt
import warnings   #忽略警告
warnings.filterwarnings('ignore')
warnings.simplefilter('ignore') 
#读取数据
data = pd.read_excel('临时.xlsx',sheet_name='Sheet5',header=0)

plt.figure(figsize=(15,10),dpi=400)#设置画布的尺寸
plt.title('Change of prediction accuracy',fontsize=20)#标题,并设定字号大小
plt.xlabel(u'Number of feature ',fontsize=14)#设置x轴,并设定字号大小
plt.ylabel(u'Accuracy',fontsize=14)#设置y轴,并设定字号大小

#color:颜色,linewidth:线宽,linestyle:线条类型,label:图例,marker:数据点的类型
in1 = plt.scatter(data['Feature'],data['LR'],color="gray",linewidth=2,linestyle='-', marker='o')
in2 = plt.scatter(data['Feature'],data['KNN'],color="darkblue",linewidth=2,linestyle='-.', marker='o')
in3 = plt.scatter(data['Feature'],data['SVC(poly)'],color="lime",linewidth=2,linestyle='-.', marker='o')
in4 = plt.scatter(data['Feature'],data['SVC(rbf)'],color="darkgreen",linewidth=2,linestyle='-.', marker='o')
in5 = plt.scatter(data['Feature'],data['GB'],color="darkred",linewidth=2,linestyle='-.', marker='o')
in6 = plt.scatter(data['Feature'],data['RF'],color="goldenrod",linewidth=2,linestyle='-.', marker='o')
in7 = plt.scatter(data['Feature'],data['XGB'],color="red",linewidth=2,linestyle='-.', marker='o')
in8 = plt.scatter(data['Feature'],data['Ensemble'],color="deeppink",linewidth=2,linestyle='-.', marker='o')

#注释标签
plt.legend(handles = [in1,in2,in3,in4,in5,in6,in7,in8],
          labels=['LR','KNN','SVC(poly)','SVC(rbf)','GB','RF','XGB','Ensemble'],
           fontsize='x-large',loc='upper left')
#plt.savefig('8预测准确率_特征_点图.jpg')
plt.show()#显示图像

当只把上文中的plt.scatter换成plt.plot时出现图中标签丢失现象,重新如下编辑

plt.plot(data['Feature'],data['LR'],color="gray",linewidth=2,linestyle='-.', marker='o')
plt.plot(data['Feature'],data['KNN'],color="darkblue",linewidth=2,linestyle='-.', marker='o')
plt.plot(data['Feature'],data['SVC(poly)'],color="lime",linewidth=2,linestyle='-.', marker='o')
plt.plot(data['Feature'],data['SVC(rbf)'],color="darkgreen",linewidth=2,linestyle='-.', marker='o')
plt.plot(data['Feature'],data['GB'],color="darkred",linewidth=2,linestyle='-.', marker='o')
plt.plot(data['Feature'],data['RF'],color="goldenrod",linewidth=2,linestyle='-.', marker='o')
plt.plot(data['Feature'],data['XGB'],color="red",linewidth=2,linestyle='-.', marker='o')
plt.plot(data['Feature'],data['Ensemble'],color="deeppink",linewidth=2,linestyle='-.', marker='o')
#赋予注释标签
plt.legend(['LR','KNN','SVC(poly)','SVC(rbf)','GB','RF','XGB','Ensemble'],
           fontsize='x-large',loc='upper left')
python的jupyter notebook编辑器
plt.pegend中除去handles项

img

解决!

plt.plot时,要给出标签表达式,例如:

plt.plot(data['Feature'],data['LR'],label='LR')
plt.legend(loc='upper left')