带有可变标记尺寸的散点图(seaborn)

ali*_*va7 4 visualization data-visualization matplotlib seaborn

我正在使用seaborn pairplot绘制我的数据点的不同维度的散点图.但是,我希望数据点的标记具有与数据点的一个维度相对应的大小.我有以下代码:

markersize = 1000* my_dataframe['dim_size'] / sum(my_dataframe['dim_size'])

sns.set_context("notebook", font_scale=1.5, rc={'figure.figsize': [11, 8]})
sns.set_style("darkgrid", {"axes.facecolor": ".9"})

kws = dict(s=markersize, linewidth=.5, edgecolor="w")

sbax = sns.pairplot(my_dataframe, hue='dim_hue' x_vars=['dim_1', 'dim_2'], y_vars=['dim_3', 'dim_4'], size=5, plot_kws=kws)

axes = sbax.axes
for a in axes.flatten():
    a.set_ylim([0,1])
    a.set_xlim([0,1])
Run Code Online (Sandbox Code Playgroud)

如果我这样做print(kws),我在字典中看到尺寸都是不同的,从40到2000不等.但是,图上的标记都是一样的.有没有办法实现我想要的?

顺便说一句,lmplot如果我设置参数,这非常有效scatter_kws={"s": markersize}.

谢谢!

mwa*_*kom 7

import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset("iris")

size = 100 * (iris.petal_length / iris.petal_length.max())
g = sns.PairGrid(iris, vars=["sepal_length", "sepal_width"], size=5)
g.map(plt.scatter, s=size)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 非常感谢.这解决了我的问题的一半,因为如果我将`hue ='species'`设置为`PairGrid`初始化,它就不起作用.如何设置同时具有色调和不同的标记? (2认同)