将上传的数据框格式化为堆积的条形图

时间:2019-05-07 22:49:13

标签: python pandas numpy dataframe plot

image of the dataframe我想从python数据框中绘制音乐剧演员的演员表种族。
我包括了数据框的图片。有关框架的其他知识,“ AFRAM” =非裔美国人,“ ASIAM” =亚裔美国人,“ CAU” =高加索人,“ LAT” =拉丁美洲人,“ OTH” =其他。

我已经成功打印了一个图,但是,它没有正确显示数据。我尝试使用其他在网上找到的方法,例如透视图以及我更成功的groupby,还尝试了一个for循环。我希望每个节目都在x轴和y轴上绘制。

# first plot I have used
df = pd.read_csv(io.BytesIO(uploaded['allTheaterDataV2.csv']))

df.groupby(['AFRAM', 'ASIAM', 'CAU', 'LAT', 'OTH',]).size().unstack(fill_value =0).plot(kind='bar', stacked=True)
pivot_df.loc[:,['AFRAM', 'ASIAM', 'CAU', 'LAT','OTH']].plot.bar(stacked=True, color=colors, figsize=(10,7))

# the second method I have tried but was unsucessful
allshows = df['AFRAM', 'ASIAM', 'CAU', 'LAT','OTH']
margin_bottom = np.zeros(len(df['ID']
#colors = ["#006D2C", "#31A354","#74C476"]

for num, month in enumerate(allshows):
    values = list(df[df['AFRAM', 'ASIAM', 'CAU', 'LAT','OTH'] == month].loc[:, 'Value'])

    df[df['AFRAM', 'ASIAM', 'CAU', 'LAT','OTH'] == month].plot.bar(x='Year',y='Value', ax=ax, stacked=True, 
                                    bottom = margin_bottom, color=colors[num], label=month)
    margin_bottom += values

plt.show()

我希望看到每个演出名称('ID')都绘制在x轴和y轴上,以显示演员表中的人数(少数群体)。这意味着传说将保留种族。我知道我没有在代码中包含此内容,但是我不确定如何按季节对展示进行分组,而不是按一个地块的当前情况进行分组。我也有难以读取的数据,并且尝试了许多方法来调整大小而没有结果。 this is what I got when I used the groupby method

this is what the dataframe looks like

0 个答案:

没有答案