data = {'name': ['A', 'B', 'C', 'D'],
'score': [-9.5, -8.3, -8.1, -7.0],
'color': [4, 3, 2, 1]}
df = pd.DataFrame(data)
我的資料在像上面這樣的資料框中,我正在將它繪制到像下面這樣的 seaborn swarmplot 中。這些點是根據它們的分數繪制的,并且根據它在 3 條虛線之間的分布情況,我想對這些點進行不同的著色。我使用 df 的 'color' 列根據與顏色和字典對應的 'score' 值所在的位置分配一個鍵。
colors = {1:'pink', 2:'orange', 3:'red', 4:'green'}
然后我用下面的代碼創建 swarmplot 并將顏色字典映射到我的 df 的顏色列。
ax = sns.swarmplot(data=df, y='score', s=10, c=df['color'].map(colors))
當我這樣做時,我不會產生任何錯誤,但沒有應用任何顏色,并且點保持默認的藍色(下圖,左圖)。那么,如何根據我的列為 seaborn swarmplot 中的點分配顏色df['color']?
最后一點:當我嘗試使用palette=df['color'].map(colors)而不是 時c=df['color'].map(colors),圖表只會將所有內容更改為我colors字典中的最后一種顏色(下圖,右圖)

編輯:感謝您的建議@Trenton McKinney。在顏色正確映射方面有些成功,但是當我為 x包含“名稱”列(它實際上是標題)時,如下所示,我的點繪制成散點圖而不是群圖。但是,如果我嘗試x='Title'從引數中洗掉,則會出現錯誤。
ax = sns.swarmplot(data=data, x='Title', y='score', s=10, hue='color', palette=colors)

uj5u.com熱心網友回復:
- 根據
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/362634.html標籤:Python 熊猫 matplotlib 海生
上一篇:優化X軸,以便更好地識別距離
