簡體   English   中英

如何更改 regplot() 的點大小,seaborn 的散點圖函數 (python)

[英]How to change the point size for regplot(), seaborn's scatter plot function (python)

我希望能夠在這樣繪圖時設置點大小:

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

大家知道怎么做嗎?

為此,您可以像這樣為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})

小點

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

大分

您甚至可以動態調整點的大小以表示第三維。 此代碼使用與 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']})

您可能可以想象如何以編程方式操作大小列表/數組,從而為您提供大量傳達額外信息的能力。

在此處輸入圖片說明

我想補充 mburke05 的答案,似乎可以將類似數組的數據傳遞到scatter_kws. 例如,如果您希望tips 數據集中的size屬性來確定一個點的大小,您可以這樣寫:

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

但是,您必須在數據框中顯式查找該屬性(如上所述); 您不能像設置xy那樣簡單地使用列名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM