下钻图生成 highcharts-column-drilldown
功能
使用python生成下钻图
来源:https://www.highcharts.com.cn/demo/highcharts/column-drilldown
下钻层数由具体的输入决定,理论上可以无限下钻,不过下钻的层数越深也就意味着需要计算的时间越久
目前支持的计算方法只有count和sum
核心思路
对highcharts里面的代码进行分解,发现核心就是JSON而已,那么要构建这样的JS代码其实就是把数据填入合适的位置即可
到series
之前都只是一些配置的参数,这些可以原封不动的照搬,Series
是一个list
,里面存放的是dict
,dict
有三对键值,分别对应名字、值、下钻目标
{
"name": null,
"y": null,
"drilldown": null
}
再往下看,是drilldown
字段,也就是上面代码里的drilldown,这个drilldown
是个字典,第一个字段是series
,每个drilldown的目标对在这个键值对里搜索,不过这个series
里面的结构与上面的不同
{
"name": null,
"id": null,
"data": []
}
drilldown
的值对应的是这个里面的id
,data
里存放的则是我们上面说的结构,这里的data
约等于第一次出现的series
理顺一下
只有第一层是在最外层的series
中的,里层的全在drilldown
中,drilldown
中下钻的依旧在drilldown
中找,直接把下钻列的值作为name
值,数据上模拟下钻,递归生成,由于可能会存在重复值的出现,所以id
要保持唯一性,这里一个最简单的方法就是在递归途中把上一步的id加到这一步当中,每次生成的id在当前列是唯一的,那么加上上一层的唯一id,此id在整体上必然唯一
源码地址:GitHub
欢迎关注知乎账号:菠萝盖饭