带有 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 种树类型的条形图。
我正在尝试在 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 种树类型的条形图。