如何更改regplot()的点大小,seaborn的散点图函数(python)

2024-06-06 14:12:19 发布

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

我想在这样绘制时能够设置点大小:

sns.regplot(y=[1,3,4,2,5], x=[range(5)], data=df,
            marker='o', color='red')
plt.show()

你们知道怎么做吗?


Tags: dfdatashow绘制rangepltredmarker
3条回答

我想补充一下mburke05的回答,它似乎可以将类似数组的数据传递到scatter_kws.中,例如,如果您希望tips数据集中的size属性确定您可以写入的点的大小:

sns.regplot(
    x="total_bill", y="tip", data=tips,
    marker='o', color='red', scatter_kws={'s':tips['size']})

但是,必须在数据帧中显式地查找该属性(如上所述);不能像设置xy时那样简单地使用列名。

为此,您可以将regplot()函数馈送给scatter_kws参数,如下所示:

import seaborn as sns
tips = sns.load_dataset('tips')
sns.regplot(x='total_bill', y='tip', data=tips,
            marker='o', color='red', scatter_kws={'s':2})

small points

sns.regplot(x='total_bill', y='tip', data=tips,
            marker='o', color='red', scatter_kws={'s':20})

big points

您甚至可以动态调整点的大小以表示第三个维度。这段代码使用与OP相同的数据,但是将其包装在一个数据框中(因为seaborn就是为这个设计的),并且还添加了第三个维度z

import seaborn as sns
import pandas as pd

data = pd.DataFrame({
    'x': [x for x in range(5)],
    'y': [1, 3, 4, 2, 5],
    'z': [14, 14, 100, 16, 36]
})
sns.regplot(x='x', y='y', data=data, marker='o', color='red',
    scatter_kws={'s': data['z']})

您可能可以想象,您还可以如何以编程方式操作大小列表/数组,从而为您传递额外信息提供了很大的能力。

enter image description here

相关问题 更多 >