本文介紹如何在Python 中創建散點圖使用matplotlib,其中每種顏色代表不同的分類等級。這種方法避免了使用Python的seaborn和ggplot等輔助繪圖套件。
Matplotlib在plt.scatter中提供了c參數,它允許顏色自訂。這是一個例子:
import matplotlib.pyplot as plt
import pandas as pd
# Sample DataFrame
df = pd.DataFrame({'carat': [0.23, 0.21, 0.23],
'price': [326, 326, 327],
'color': ['E', 'E', 'E']})
# Color mapping
colors = {'D': 'tab:blue', 'E': 'tab:orange', 'F': 'tab:green', 'G': 'tab:red', 'H': 'tab:purple', 'I': 'tab:brown', 'J': 'tab:pink'}
# Scatter plot with colors
plt.scatter(df['carat'], df['price'], c=df['color'].map(colors))
plt.show()
map(colors)函數將「菱形」顏色對應到「繪圖」顏色。
雖然本文重點介紹matplotlib ,值得一提的是seaborn也提供了一個便捷的解決方案:
import seaborn as sns
# Scatter plot with colors
sns.lmplot(x='carat', y='price', data=df, hue='color', fit_reg=False)
對於手動方法,您可以使用pandas 按顏色分組並分別繪製每個組:
import matplotlib.pyplot as plt
import pandas as pd
# Sample DataFrame
df = pd.DataFrame({'carat': [0.23, 0.21, 0.23],
'price': [326, 326, 327],
'color': ['E', 'E', 'E']})
# Color mapping
colors = {'D': 'tab:blue', 'E': 'tab:orange', 'F': 'tab:green', 'G': 'tab:red', 'H': 'tab:purple', 'I': 'tab:brown', 'J': 'tab:pink'}
# Group by color and plot
grouped = df.groupby('color')
for key, group in grouped:
group.plot(ax=plt.gca(), kind='scatter', x='carat', y='price', label=key, color=colors[key])
plt.show()
這假設與之前相同的 DataFrame 並在繪圖過程中手動分配顏色。
本文示範如何為使用 matplotlib 在 Python 中進行不同的分類級別,以及使用 seaborn 的其他選項和使用 pandas 的手動方法。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3