散点矩阵中的多个数据

10

是否可以将多个数据添加到pandas.tools.plotting.scatter_matrix中,并为每组数据分配一种颜色?

我想在同一个散点矩阵中显示一个数据组的散点图数据点,比方说用绿色表示,另一个数据组的散点是用红色。对于对角线上的密度图,也应该使用相同的方法。我知道可以使用matplotlib的scatter函数实现这个功能,但那不会给我一个散点矩阵。

pandas文档对此没有具体说明。

2个回答

21

简短的回答是确定散点图中每个点的颜色,将其放入数组中,并将其作为 color 参数传递。

示例:

from pandas.tools.plotting import scatter_matrix
import pandas as pd
from sklearn import datasets

iris = datasets.load_iris()
iris_data = pd.DataFrame(data=iris['data'],columns=iris['feature_names'])
iris_data["target"] = iris['target']

color_wheel = {1: "#0392cf", 
               2: "#7bc043", 
               3: "#ee4035"}
colors = iris_data["target"].map(lambda x: color_wheel.get(x + 1))
ax = scatter_matrix(iris_data, color=colors, alpha=0.6, figsize=(15, 15), diagonal='hist')

鸢尾花数据集


这行代码 iris_data["target"] = iris['target'] 是做什么用的? - Thales Carl

1

对我来说,这个答案没有起作用...但是通过这个小修正,它对我很有用!

import pandas as pd
from pandas.plotting import scatter_matrix
from sklearn import datasets

iris = datasets.load_iris()
iris_data = pd.DataFrame(data=iris['data'],columns=iris['feature_names'])
iris_data["target"] = iris['target']

color_wheel = {1: "#0392cf", 
               2: "#7bc043", 
               3: "#ee4035"}
colors = iris_data["target"].map(lambda x: color_wheel.get(x + 1))
ax = scatter_matrix(iris_data, color=colors, alpha=0.6, figsize=(15, 15), diagonal='hist')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接