我正在尝试更改海洋双对图中仅某些标记的大小。
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')
我尝试添加plot_kws={"s": 3}
,但这会更改所有点的大小。干杯!
答案 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()