Несколько данных в матрице рассеяния
Можно ли добавить несколько данных в 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')
Для меня этот ответ не сработал... Но с этим небольшим исправлением у меня все прошло хорошо!
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')