Несколько данных в матрице рассеяния

Можно ли добавить несколько данных в pandas.tools.plotting.scatter_matrix и назначение цвета для каждой группы данных?

Я хотел бы показать графики рассеяния с точками данных для одной группы данных, скажем, зеленым, а другую группу - красным в той же матрице рассеяния. То же самое относится и к графикам плотности по диагонали. Я знаю, что это возможно с помощью Matplotlib scatter функция, но это не дает мне матрицу рассеяния.

Документация панд это мама на это.

1 ответ

Короткий ответ - определить цвет каждой точки на диаграмме рассеяния, распределить ее в массив и передать как 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

Для меня этот ответ не сработал... Но с этим небольшим исправлением у меня все прошло хорошо!

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')
Другие вопросы по тегам