Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用matplotlib打印图例:错误_Python_Numpy_Matplotlib_Plot_Legend - Fatal编程技术网

Python 使用matplotlib打印图例:错误

Python 使用matplotlib打印图例:错误,python,numpy,matplotlib,plot,legend,Python,Numpy,Matplotlib,Plot,Legend,我正在尝试向matplotlib中的图形添加图例。它不创建图例,而是将所有MyLabel的完整列表放在图例中 我的图表如下所示: 传说被剪掉了,我看不到更多,我想是因为它的大小 这是我的代码: features2 = ["Number of Sides"] features3 = ["Largest Angle"] header2 = ["Label"] data_df = pd.DataFrame.from_csv("AllMixedShapes2.csv") X1 = np.array(

我正在尝试向matplotlib中的图形添加图例。它不创建图例,而是将所有MyLabel的完整列表放在图例中

我的图表如下所示:

传说被剪掉了,我看不到更多,我想是因为它的大小

这是我的代码:

features2 = ["Number of Sides"]
features3 = ["Largest Angle"]
header2 = ["Label"]

data_df = pd.DataFrame.from_csv("AllMixedShapes2.csv")
X1 = np.array(data_df[features2].values)
y1 = np.array(data_df[features3].values)
l = np.array(data_df[header2].values)

plt.scatter(X1[:, 0],y1, c=y, cmap=plt.cm.Paired, label=l)
plt.axis([0, 17, 0, 200])
plt.ylabel("Maximum Angle (Degrees)")
plt.xlabel("Number Of Sides")
plt.title('Original 450 Test Shapes')

plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
plt.show()
AllMixedShapes2.csv如下所示:


我对python和机器学习非常陌生,我尝试过其他示例,但我什么都做不到。

Matplotlib的
label
参数是一个标记整个数据集的字符串,而不是数据集中点的单个标签数组。如果希望传递将聚合为图例的逐点标签数组,最好的选择可能是库。Seaborn为matplotlib提供了一个包装器,以实现更方便的统计可视化

这应该与您希望对数据执行的操作大致相同:

import seaborn
seaborn.lmplot('Number of Sides', 'Largest Angle', hue='Label',
               data=data_df, fit_reg=False)

我建议查看以获取更多想法。

Matplotlib的
label
参数是用于标记整个数据集的单个字符串,而不是数据集中点的单个标签数组。如果希望传递将聚合为图例的逐点标签数组,最好的选择可能是库。Seaborn为matplotlib提供了一个包装器,以实现更方便的统计可视化

这应该与您希望对数据执行的操作大致相同:

import seaborn
seaborn.lmplot('Number of Sides', 'Largest Angle', hue='Label',
               data=data_df, fit_reg=False)

我建议您查看更多的想法。

非常感谢,是否还有添加标题的方法?我在文档中看不到它。Seaborn只是包装了matplotlib,所以您可以直接使用
plt.title(“我的标题”)
非常感谢,还有添加标题的方法吗?我在文档中看不到它。Seaborn只是包装了matplotlib,所以您可以直接使用
plt.title(“我的标题”)