
在Python 中按列值對散點圖著色
R 中ggplot2 的多功能性允許根據列將顏色無縫分配給數據點價值觀。也可以使用 pandas 資料幀和 Matplotlib 在 Python 中複製此功能。
使用Pandas 和Matplotlib
要將顏色對應到Matplotlib 中的值,請考慮以下步驟:
- :定義一個字典,將分類列中的唯一值對應到對應的顏色。這可確保跨資料點的顏色分配保持一致。
-
新增顏色列:在資料框中建立一個新列,為分類列中的每個值分配對應的顏色。
-
繪製散佈圖:使用 matplotlib.pyplot.scatter 中的 c 參數指定顏色欄位作為顏色參數。
這裡有一個範例實作:
1 2 3 4 5 6 7 8 9 | <code class = "python" >def dfScatter(df, xcol= 'Height' , ycol= 'Weight' , catcol= 'Gender' ):
fig, ax = plt.subplots()
categories = np.unique(df[catcol])
colors = np.linspace(0, 1, len(categories))
colordict = dict(zip(categories, colors))
df[ "Color" ] = df[catcol].apply(lambda x: colordict[x])
ax.scatter(df[xcol], df[ycol], c=df.Color)
return fig</code>
|
登入後複製
用法範例
考慮一個包含身高、體重和性別欄位的資料框。要建立根據「性別」列分配顏色的散佈圖:
1 2 3 4 5 | <code class = "python" >df = pd.DataFrame({ 'Height' :np.random.normal(size=10),
'Weight' :np.random.normal(size=10),
'Gender' : [ "Male" , "Male" , "Unknown" , "Male" , "Male" ,
"Female" , "Did not respond" , "Unknown" , "Female" , "Female" ]})
fig = dfScatter(df)</code>
|
登入後複製
這將產生一個散點圖,其中「性別」列決定每個資料點的顏色。
以上是如何根據Python中的列值為散佈圖中的點指定顏色?的詳細內容。更多資訊請關注PHP中文網其他相關文章!