gpt4 book ai didi

python - 散点矩阵的 Pandas 图例

转载 作者:太空狗 更新时间:2023-10-30 01:05:34 25 4
gpt4 key购买 nike

我有一个包含 3 个类和 n 个特征的数据点的 pandas 数据框。

以下代码生成一个散点矩阵,其对角线为直方图,包含数据帧中的 4 个特征。

colums = ['n1','n2','n3','n4']
grr = pd.scatter_matrix(
dataframe[columns], c=y_train, figsize=(15,15), label=['B','N','O'], marker='.',
hist_kwds={'bins':20}, s=10, alpha=.8, cmap='brg')
plt.legend()
plt.show()

像这样:

Scatter matrix of this dataframe

我遇到的问题是 plt.legend() 似乎不起作用,它根本没有显示任何图例(或者它是第二行第一列中几乎看不见的微小“le8”... )

我想要的是一个单一的图例,它只显示哪种颜色属于哪个类别。

我已经尝试了所有建议的问题,但没有一个有解决方案。我还尝试将标签放在图例函数参数中,如下所示:

plt.legend(label=['B','N','O'], loc=1)

但是没有用..

我做错了什么?

最佳答案

pandas scatter_matrix 是几个 matplotlib scatter 图的包装器。参数被传递给 scatter 函数。但是,散点图通常用于颜色图而不是带有离散标记点的图例,因此没有可用于自动创建图例的参数。

恐怕您必须手动创建图例。为此,您可以使用 matplotlib 的 plot 函数(使用空数据)从散点图中创建点,并将它们作为句柄添加到图例中。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.subplot.right"] = 0.8

v= np.random.rayleigh(size=(30,5))
v[:,4] = np.random.randint(1,4,size=30)/3.
dataframe= pd.DataFrame(v, columns=['n1','n2','n3','n4',"c"])

columns = ['n1','n2','n3','n4']
grr = pd.scatter_matrix(
dataframe[columns], c=dataframe["c"], figsize=(7,5), label=['B','N','O'], marker='.',
hist_kwds={'bins':20}, s=10, alpha=.8, cmap='brg')

handles = [plt.plot([],[],color=plt.cm.brg(i/2.), ls="", marker=".", \
markersize=np.sqrt(10))[0] for i in range(3)]
labels=["Label A", "Label B", "Label C"]
plt.legend(handles, labels, loc=(1.02,0))
plt.show()

enter image description here

关于python - 散点矩阵的 Pandas 图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43801637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com