带有 plotly 的堆积条形图

Stacked bar chart with plotly

我正在尝试在 Python 中使用 plotly 构建堆积条形图。

我的目标是为哥本哈根的每个城区制作一个酒吧,那里堆放着不同的树木类型。我能够 运行 我的代码直到第 10 棵树,之后我得到一个 IndexError:

single positional indexer is out-of-bounds

当我只为 10 棵或更少的树做这件事时,一切看起来都很好。

我的代码如下所示

    ## df is a dataframe where each row is a tree type
    ## and each column a city district

    x = df.columns ## district names
    trees = df.index ## tree names

    for i in range(0,len(trees)):
        if i == 0:
            fig = go.Figure(go.Bar(x=x, y=df.iloc[:,i].values, name = trees[i]))
        else:
            fig.add_trace(go.Bar(x=x, y=df.iloc[:,i].values, name = trees[i]))

    fig.update_layout(barmode='stack')
    fig.show()

我似乎无法弄清楚错误是什么..

乍一看,您似乎混淆了列和行。如果 Kaupmannahöfn 只有 9 个区,但你有 10 种或更多的树类型,那么你可能应该使用 y=df.iloc[i,:] 来按区绘制树的数量。但可以肯定的是,请提供数据框的尺寸,select 来自数据框的几行和前 9 种树类型的条形图。