簡體   English   中英

使用 python 按具有不同 colors 的位置繪制 plot

[英]Drawing plot by positions with different colors using python

我有一個帶有 3 列的 dataframe,我想用它來制作 plot。

df = pd.DataFrame({
    'position': [100,200,220, 300, 400, 500],
    '1': list('xoooox'),
    '2': list('oxxooo')
})

我在下面畫了一個方案(抱歉添加了圖像文件,我很難用文字描述它)

在此處輸入圖像描述

在 plot 中,每個數據的高度無關緊要。 所有條形高度相同

謝謝你。

您可以通過傳遞kind='bar'color=some_array來做到這一點,例如:

df = pd.DataFrame({
    'col1': [100, 200, 300, 400],
    'col2': [13, 7, 11, 17],
    'col3': ['r', 'b', 'g', '0.5'],
})

ax = df.plot(x='col1', y='col2', kind='bar', color=df['col3'])

在此處輸入圖像描述

注意您可以通過調用ax object 上的方法來修改 plot 的樣式。

使用 seaborn 怎么樣:

import seaborn as sns

colors = df.groupby(['1','2']).ngroup().astype('category')

sns.barplot(x=df['position'], y=1, hue=colors, dodge=False)

Output:

在此處輸入圖像描述

或者您可以手動 plot 條形圖,這樣可以正確縮放position

cmap = {
    ('x','o'): 'b',
    ('o','x'): 'r',
    ('o','o'): 'g',
    ('x','x'): 'm'
}

fig, ax = plt.subplots()
for _, row in df.iterrows():
    ax.bar(row['position'], 1, edgecolor=cmap[(row['1'], row[2])],
           facecolor=(0,0,0,0),
           width=10)

Output:

在此處輸入圖像描述

暫無
暫無

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

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