我试图在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()
更新:根据这个Github的问题,堆叠的,分组的酒吧情节正在为未来的情节版本开发,所以这可能不会再是一个问题了。
似乎没有一种方法来创建堆叠和分组的条形图,但有一个变通办法,可以解决您的问题。您将需要创建子组,然后使用Plotly中的堆叠条形图一次绘制一个条形图,用子组1绘制var1
和var2
,用子组2绘制var3
和var4
。
此解决方案为您提供了所需的功能,但更改了条形图的格式和美观。每个条之间将有相等的间距,因为从Plotly的角度来看,这些条是堆叠的(而不是分组的),我无法想出一种方法来消除subgroup1和subgroup2文本,而不同时消除x轴刻度中的年份。任何阴谋专家,请随时插话和完善我的答案!
import pandas as pd
import plotly.graph_objs as go
df = 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()
fig.update_layout(
template="simple_white",
xaxis=dict(title_text="Year"),
yaxis=dict(title_text="Count"),
barmode="stack",
)
groups = ['var1','var2','var3','var4']
colors = ["blue","red","green","purple"]
names = ['spent on fruit','spent on toys','earned from stocks','earned from gambling']
i = 0
for r, n, c in zip(groups, names, colors):
## put var1 and var2 together on the first subgrouped bar
if i <= 1:
fig.add_trace(
go.Bar(x=[df.year, ['subgroup1']*len(df.year)], y=df[r], name=n, marker_color=c),
)
## put var3 and var4 together on the first subgrouped bar
else:
fig.add_trace(
go.Bar(x=[df.year, ['subgroup2']*len(df.year)], y=df[r], name=n, marker_color=c),
)
i+=1
fig.show()
我使用的是Chart.js2.5.0版本,需要知道是否有任何方法可以隐藏分组堆叠条形图中每组的空条?图表数据集中的某些数据值可以为空。 这里是我想要的:组合图表类型(分组和堆叠) 小提琴:https://jsfidle.net/q_sabawoon/atlxlg7x/ 请帮帮忙。
参考Mike Bostick的Stacked to Grouped Bar Chart示例,我正在修改它以处理CSV文件。我已经在这方面工作了几个星期,并且查看了关于堆栈溢出和其他地方的无数示例,我被难住了。 堆叠条形图工作。 堆叠条形图: 在函数中,我想乘以一个与序列或键对应的数字。我当前正在将此函数中的数字1乘以占位符。 和csv文件:
我有以下不同月份的数据 一月:[1,5,3] Feb:[10,5] 三月:[4,8] 四月:[7] 可能:[3,1,5,0,7] 我想生成如下所示的条形图 现在,我有以下代码,我想知道如何生成如上图所示的条形图。 }); 非常感谢。
Highcharts 条形图 以下实例演示了堆叠条形图。 我们在前面的章节已经了解了 Highcharts 基本配置语法。接下来让我们来看下其他的配置。 配置 plotOptions 配置图表堆叠使用 plotOptions.series.stacking,并设置为 "normal"。如果禁用堆叠可设置为 null , "normal" 通过值设置堆叠, "percent" 堆叠则按百分比。 v
我需要一张这样的图表: 我找到了这个示例,但它使用了旧版本的。我尝试使用v2.0,但我不明白。 有人能贴个例子吗?
Highcharts 柱形图 以下实例演示了堆叠组柱形图。 我们在前面的章节已经了解了 Highcharts 基本配置语法。接下来让我们来看下其他的配置。在 drilldown 中添加 series 属性: 配置 drilldown:向下钻取 drilldown 用于向下钻取数据,深入到其中的具体数据。 drilldown: { series: drilldownSeries } 实例