superset二次开发之旅__如何添加echarts图表之韦恩图

本文详细介绍了如何在Superset BI工具中添加ECharts的韦恩图图表类型,包括前端重写和后端调整步骤,适用于希望扩展Superset图表功能的用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

superset是airbnb开源的一款BI产品,支持多种数据库连接,拥有丰富的图表类型,其部署方便,制作看板迅速,是小企业自助BI的不错选择。但是,里面的图表类型虽然多,很多常见的图表依然没有,最近遇到一个需求:添加echarts到superset图表类型。以下是研究过程。
下面以添加echarts 韦恩图为例,展示如何添加superset新图表类型:
echarts官网演示链接:echarts韦恩图官网演示链接

1. 重写前端

1.1 新增venn_diagram.js文件
  • 在以下目录新建文件venn_diagram.js
cd /superset/static/assets/visualizations
touch venn_diagram.js
  • 将一下内容替换到venn_diagram.js
import echarts from 'echarts';

function echartsFunnelVis(slice, payload) {
  const { data = [] } = payload;
  const div = d3.select(slice.selector);
  const divId = slice.selector + '-main'
  var html = `<div id="${divId}" style="width: ${slice.width()}px;
    height: ${slice.height()}px;"></div>`;
  div.html(html); // reset
  var myChart = echarts.init(document.getElementById(divId));
  option = {
    tooltip : {
        trigger: 'item',
        formatter: "{b}: {c}"
    },
    toolbox: {
        show : true,
        feature : {
            dataView : {show: true, readOnly: false},
            restore : {show: true},
            saveAsImage : {show: true}
        }
    },
    calculable : false,
    series : [
        {
            name:'韦恩图',
            type:'venn',
            itemStyle: {
                normal: {
                    label: {
                        show: true,
                        textStyle: {
                            fontFamily: 'Arial, Verdana, sans-serif',
                            fontSize: 16,
                            fontStyle: 'italic',
                            fontWeight: 'bolder'
                        }
                    },
                    labelLine: {
                        show: false,
                        length: 10,
                        lineStyle: {
                            // color: 各异,
                            width: 1,
                            type: 'solid'
                        }
                    }
                },
                emphasis: {
                    color: '#cc99cc',
                    borderWidth: 3,
                    borderColor: '#996699'
                }
            },
            # 此处数据由后台准备,传入到payload的data里面
            data: data
        }
    ]
};
  myChart.setOption(option);
}
module.exports = echartsFunnelVis;
  • 解释 option= 来源于echarts官网案例,可以直接copy粘贴,由于superset的图表类型已经提供标题,所以删除标题配置信息。
  • 根据分析发现,只需要后台准备data数据即可,data的数据格式为一个字典列表
            data:[
                {value:60, name:'访问'},
                {value:50, name:'咨询'},
                {value:20, name:'公共'}
            ]
1.2 更新main.js
  • main.js目录为:/superset/static/assets/visualizations
    在这里插入图片描述

在这里插入图片描述

1.3 添加可视化类型
  • 目录superset/assets/javascripts/explore/stores/vistypes.js

在这里插入图片描述

1.4 在superset中导入echarts
  • superset中导入echarts的方式:
    1、 superset/static/assets/package.json中添加如下代码:
    在这里插入图片描述

2、命令行:cd superset/static/assets/

npm run dev-fast

3、superset/templates/superset/basic.html中导入js的文件,(js文件可以自己编译得到,也可以直接官网下载)
https://pic2.zhimg.com/80/v2-b5c9833ec1d085c173327d463a01c222_hd.jpg

前端完毕!


2. 后端部分

待续

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值