增加海生成对地块中某些标记的标记大小

2024-06-16 14:39:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是想改变一个海生空地上一些标记的大小

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的所有样本的大小。 这怎么能用这片海出生的空地做到呢

到目前为止,我所拥有的:

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

enter image description here

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


Tags: 标记dfnumclassspiderpdfalconseen
1条回答
网友
1楼 · 发布于 2024-06-16 14:39:03

在检查了pairplot是如何建立的之后,可以通过轴进行迭代,并更改每个第四组散射点的大小:

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

相关问题 更多 >