按列值對散點圖著色
在Python 中,Matplotlib 庫提供了多種自訂散點圖美觀的方法。一項常見任務是根據特定列中的值指派顏色。
Seaborn 整合
解決方案是利用基於 Matplotlib 建構的 Seaborn 函式庫。 Seaborn 提供 sns.relplot 和 sns.FacetGrid 等進階函數,讓您可以輕鬆地將散佈圖對應到特定列。透過指定hue參數,您可以根據包含類別標籤的第三列對點進行著色。
<code class="python">import seaborn as sns sns.relplot(data=df, x='Weight (kg)', y='Height (cm)', hue='Gender')</code>
直接使用Matplotlib
或者,您可以直接使用Matplotlib plt.scatter 函數來建立散佈圖並手動指定顏色。這需要建立一個自訂顏色字典,將類別標籤對應到顏色。
<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>
透過呼叫此函數,可以產生依指定類別列著色的散佈圖:
<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中文網其他相關文章!