我正在尝试使用Python中的Plotly创建一个既可以分组又可以堆叠的条形图。
玩具示例(不同年份花费和收入):
import pandas as pd
import plotly.graph_objs as go
data = pd.DataFrame(
dict(
year=[2000,2010,2020],
var1=[10,20,15],
var2=[12,8,18],
var3=[10,17,13],
var4=[12,11,20],
)
)
fig = go.Figure(
data = [
go.Bar(x=data['year'], y=data['var1'], offsetgroup=0, name='spent on fruit'),
go.Bar(x=data['year'], y=data['var2'], offsetgroup=0, base=data['var1'], name='spent on toys'),
go.Bar(x=data['year'], y=data['var3'], offsetgroup=1, name='earned from stocks'),
go.Bar(x=data['year'], y=data['var4'], offsetgroup=1, base=data['var3'], name='earned from gambling'),
]
)
fig.show()
起初看起来结果还不错: 但是当我关闭“花在水果上”的选项时,请看接下来发生了什么: “花在玩具上”的轨迹仍然浮动,而不是从0开始。
这能修复吗?或者也许整个
offsetgroup
+ base
方法在这里行不通。但是我能做什么其他的呢?谢谢!
更新:根据这个 Github 问题,堆积、分组条形图正在开发中,所以这可能不再是一个问题。
base
没有被修改。我的 Plotly 知识在这里不够深入,但如果 Plotly 支持某种回调来切换曲线的开关,那么可以根据需要修改base
。 - Jussi Nurminen