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

时间:2016-04-28 17:25:35

标签: python seaborn

我希望能够在绘制时设置点大小:

sns.regplot(y=[1,3,4,2,5], x=[range(5)], data=df,
            marker='o', color='red')
plt.show()
你知道怎么样?

3 个答案:

答案 0 :(得分:13)

要执行此操作,您可以像regplot() arg那样提供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

答案 1 :(得分:2)

我想补充一下mburke05的答案,似乎可以将类似数组的数据传递到scatter_kws.例如,如果你想要提示数据集中的size属性来确定一个点的大小你可写:

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

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

答案 2 :(得分:2)

您甚至可以使点动态调整大小以表示第三维。此代码使用与OP相同的数据,但将其包装在DataFrame中(因为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