散布矩阵中的多个数据

时间:2014-01-15 07:45:35

标签: python pandas scatter-plot

是否可以向pandas.tools.plotting.scatter_matrix添加多个数据并为每组数据指定颜色?

我希望显示散点图,其中包含一组数据的数据点,例如,绿色,另一组红色表示相同的散布矩阵。同样适用于对角线上的密度图。 我知道这可以通过使用matplotlib的scatter函数来实现,但这并没有给我一个散点矩阵。

大熊猫的文件很清楚。

2 个答案:

答案 0 :(得分:14)

简短的答案是确定散点图中每个点的颜色,将其作用于数组并将其作为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 Dataset

答案 1 :(得分: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')