0

我发现这个非常酷的情节(matplotlib 可视化)来制作人口金字塔。我想更改颜色的条件。而不是男性/女性,我想让整个条带颜色相同,这种颜色取决于我在性别上写的标签。所以,一些整条是蓝色的,其余的是紫色的。

但我不明白颜色是如何生成的。

我想象删除 df[group_col].unique() 中的 .unique() 会起作用,但是当我切换标签时它不会绘制任何东西。

import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns

# Read data
df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/email_campaign_funnel.csv")

# Draw Plot
plt.figure(figsize=(13,10), dpi= 80)
group_col = 'Gender'
order_of_bars = df.Stage.unique()[::-1]
colors = [plt.cm.Spectral(i/float(len(df[group_col].unique())-1)) for i in range(len(df[group_col].unique()))]

for c, group in zip(colors, df[group_col].unique()):
    sns.barplot(x='Users', y='Stage', data=df.loc[df[group_col]==group, :], order=order_of_bars, color=c, label=group)

# Decorations    
plt.xlabel("$Users$")
plt.ylabel("Stage of Purchase")
plt.yticks(fontsize=12)
plt.title("Population Pyramid of the Marketing Funnel", fontsize=22)
plt.legend()
plt.show()

金字塔图

知道怎么做吗?

4

0 回答 0