Fra*_*ues 3 python data-visualization matplotlib pandas seaborn
我正在根据目标变量(植物物种)着色的 Iris 数据集从 DataFrame 制作 pd.scatter_matrix() 图。当我运行下面的代码时,我得到一个带有黑色、灰色和白色 (!) 彩色散射点的散射矩阵,这阻碍了可视化。网格似乎也不一致,显然只有靠近轴的图才能获得相应的网格。我想要一个遵循 sns 默认调色板(蓝色、绿色、红色)的漂亮网格和散点矩阵。
为什么 seaborn 绘图样式和 pd.scatter_matrix() 的使用强制执行不同的(可怕的!)调色板,然后是散点图和不一致网格线的默认值?如何解决这些可视化问题?
我已经将 seaborn 更新到了一个相当新的版本(2017 年 7 月的 0.8)。还尝试了非弃用版本的 scatter_matrix plot for pandas pd.plotting.scatter_matrix() 并且没有运气。如果我使用 'ggplot' 样式,则散点图的调色板是正确的,但网格仍然不一致。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
plt.style.use('seaborn')
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data
y = iris.target
df = pd.DataFrame(X, columns = iris.feature_names)
pd.scatter_matrix(df, c=y, figsize = [8,8],
s=80, marker = 'D');
Run Code Online (Sandbox Code Playgroud)
包版本:
熊猫版本:0.20.1
matplotlib 版本:2.0.2
seaborn 版本:0.8.0
我不确定这是否能回答您的问题,但您可以使用配对图。让我知道..
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data
y = iris.target
df = pd.DataFrame(X, columns = iris.feature_names)
pd.plotting.scatter_matrix(df, c=y, figsize = [8,8],
s=80, marker = 'D');
df['y'] = y
sns.pairplot(df,hue='y')
Run Code Online (Sandbox Code Playgroud)
这给了你:
如果你想避免可视化的最后一行,那么:
import seaborn as sns
sns.set(style="ticks", color_codes=True)
iris = sns.load_dataset("iris")
%matplotlib inline
iris = sns.load_dataset("iris")
sns.pairplot(iris, hue="species")
Run Code Online (Sandbox Code Playgroud)