增加海洋配对图中某些标记的标记大小

时间:2020-05-27 21:32:24

标签: python matplotlib seaborn

我正在尝试更改海洋双对图中仅某些标记的大小。

df = pd.DataFrame({'num_legs': [2, 4, 8, 0],
                   'num_wings': [2, 0, 0, 0],
                   'num_specimen_seen': [10, 2, 1, 8]},
                  index=['falcon', 'dog', 'spider', 'fish'])

更漂亮:

        num_legs  num_wings  num_specimen_seen  class
falcon         2          2                 10      1
dog            4          0                  2      2
spider         8          0                  1      3
fish           0          0                  8      4

例如,我想增加class = 4的所有样本的大小。 怎么用seaborn pairplot完成?

到目前为止我所拥有的:

sns.pairplot(data=df,diag_kind='hist',hue='class')

enter image description here

我尝试添加plot_kws={"s": 3},但这会更改所有点的大小。干杯!

1 个答案:

答案 0 :(得分:1)

在检查了pairplot的构建方式之后,可以遍历各个轴并更改每个第4组散点的大小:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd

N = 100
classes = np.random.randint(1, 5, N)
df = pd.DataFrame({'num_legs': 2 * classes  % 8,
                   'num_wings': (classes == 1) * 2,
                   'num_specimen_seen': np.random.randint(1,20,N),
                   'class': classes})
g = sns.pairplot(data=df,diag_kind='hist',hue='class')

for ax in np.ravel(g.axes):
    if len(ax.collections) == 4:
        ax.collections[3].set_sizes([100])
g.fig.legends[0].legendHandles[3].set_sizes([100])

plt.show()

example plot