gpt4 book ai didi

python - Seaborn - 根据 x 名称而不是色调更改条形颜色?

转载 作者:行者123 更新时间:2023-12-05 07:11:48 24 4
gpt4 key购买 nike

例如:

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
sns.set_style('darkgrid')
fig, ax = plt.subplots()

a = pd.DataFrame({'Program': ['A', 'A', 'B', 'B', 'Total', 'Total'],
'Scenario': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
'Duration': [4, 3, 5, 4, 9, 7]})

g = sns.barplot(data=a, x='Scenario', y='Duration',
hue='Program', ci=None)

enter image description here

我希望 x=Xx=Y 有不同的颜色,但每个 hue(A, B, Total ...) 的颜色相同。 (Scenario 可能不止两个)。如何根据 x 名称而不是 hue 更改条形颜色?

最佳答案

我不知道有什么直接的方法可以像使用 sns.barplot 那样设置颜色。这是如何使用 pandas 做到这一点相反:

import pandas as pd    # v 1.1.3
import seaborn as sns # v 0.11.0
sns.set_style('darkgrid')

# Create sample dataset
a = pd.DataFrame({'Program': ['A', 'A', 'B', 'B', 'Total', 'Total'],
'Scenario': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
'Duration': [4, 3, 5, 4, 9, 7]})

# Pivot table and plot data in a bar chart
a_pivot = a.pivot(index='Scenario', columns='Program')
ax = a_pivot.plot.bar(color=[['tab:blue', 'tab:orange']], rot=0,
legend=None, figsize=(8,5))

# Format labels and ticks
ax.set_xlabel('Scenario', labelpad=10, size=14)
ax.set_ylabel('Duration', labelpad=20, size=14)
ax.tick_params(axis='both', labelsize=12)

pd_bar_color

关于python - Seaborn - 根据 x 名称而不是色调更改条形颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60631698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com