#python #bar-chart #percentage #stacked-chart
Вопрос:
У меня есть фрейм данных, который содержит следующую информацию:
Обслуживание | Настроение | Процент |
---|---|---|
Служба поддержки | положительный | 0.15 |
Служба поддержки | отрицательный | 0.85 |
Доставка | положительный | 0.25 |
Доставка | отрицательный | 0.75 |
И я хочу построить многоуровневую полосу для каждой категории отдельно. одна полоса для службы доставки, и отрицательная часть окрашена в красный цвет, а положительная часть-в синий. и еще один бар для обслуживания клиентов и так далее.
Это моя попытка, но она провалилась.
df.groupby('Service').plot(kind='bar',x='percent',stacked=True)
Спасибо
Ответ №1:
Попробуй это :
Код
import seaborn as sns # Simple Example df = pd.DataFrame({'Service' : ['Customer Service','Customer Service', 'Delivery','Delivery'], 'Sentiment' : ['POSITIVE', 'NEGATIVE', 'POSITIVE', 'NEGATIVE'], 'Percentage' : [0.15, 0.85, 0.25, 0.75]}) a = df.loc[df['Sentiment'] == "POSITIVE"]['Percentage'] b = df.loc[df['Sentiment'] == "NEGATIVE"]['Percentage'] s1 = sns.barplot(x = 'Service', y = b, data = df, color = 'blue') s2 = sns.barplot(x = 'Service', y = a, data = df, color = 'red')