superset集成echarts,自定义图表开发-程序员宅基地

技术标签: python  superset  linux  js  

环境

系统:centos7
python版本:3.7.6
superset版本:0.30
echarts版本:4.2.0以上

说明

因为一开始使用pip安装方法)直接安装的时候,进入安装路径下没有src目录。又是一开始接触superset,所以就用源码安装了。

源码安装方法

搭建Anaconda虚拟环境

  1. 首先下载安装文件Anaconda3-2019.10-Linux-x86_64.sh
    进入官网地址:https://www.anaconda.com/distribution/#download-section,选择对应版本下载。
  2. 安装anaconda软件sh Anaconda3-2019.10-Linux-x86_64.sh
    安装过程中需要输入yes和回车。
  3. 配置conda环境变量。
vim /etc/profile
# 添加如下几行,具体路径根据实际情况调整
export CONDA_HOME=/root/anaconda3
export PATH=$CONDA_HOME/bin:$PATH
# source 刚刚修改的文件
source /etc/profile
  1. 修改Anaconda的镜像文件
    安装Anaconda用户的家目录(需要注意的是用户的家目录,而不是CONDA_HOME目录,所以这里是/root下)下创建.condarc文件,并添加如下内容
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
show_channel_urls: true

也可以通过如下命令修改:

# 第一次运行下面的命令时,会自动在用户的家目录下创建 `.condarc` 文件
conda config
# 查看源
conda config --show-sources
# 修改源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes
  1. 在系统中添加如下依赖:
yum upgrade python-setuptools
yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel
  1. 为了避免不同版本python之前相互冲突,创建python的虚拟环境(因为之前conda环境变量已配好,所以可以直接使用如下命令)。
conda create -n superset python=3.7
# 删除的时候可以使用下面的命令
# conda remove -n superset --all
  1. 进入虚拟环境环境,使用 source activate superset,(退出时使用source deactivate superset即可)

源码安装superset

  1. 首先从github上clone源码,github代码地址:https://github.com/apache/incubator-superset.git
  2. 下载好之后切换到你所需要安装的分支,我这里选择的是0.30
  3. 利用SFTP工具将代码复制到服务器某个目录下,我选择的是/root/anaconda3/envs/superset目录
  4. 之后按照如下命令输入即可
# 进入到源码的assets目录下
cd /root/anaconda3/envs/superset/incubator-superset/superset/assets

# 进行依赖的下载安装,因为过程中可能会报权限不足的错误,所以添加参数 --unsafe-perm=true --allow-root
npm install --unsafe-perm=true --allow-root -d

# 依赖下载完成之后修改如下配置文件
vim node_modules/webpack/lib/WebpackOptionsDefaulter.js
# 将文件中maxEntrypointSize的值(250000)修改为50000000,maxAssetSize的值(250000)修改为30000000
# 修改为如下所示
# this.set("performance.maxAssetSize", 30000000);
# this.set("performance.maxEntrypointSize", 50000000);

# 安装 core-js@2 依赖
npm install core-js@2

# 然后就可以编译了
npm run build

# 返回上一级目录
cd ..
# 前端编译完后,将incubator-superset-0.28.1/superset/static/目录下的assets链接文件删掉
rm -rf static/assets
# 将整个assets文件夹移动到incubator-superset-0.28.1/superset/static/目录下
cp -r assets/ static/

# 进入源码的根目录
cd /root/anaconda3/envs/superset/incubator-superset/

# 安装 requirements.txt 中的依赖(使用国内的源,不然会很慢)。过程可能会比较长,而且有的依赖可能会卡住,所以那个依赖可以手动安装
pip install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple -r requirements.txt

# 安装numpy模块
pip install numpy -U

# 现在就可以直接安装了
python setup.py install

# 查看安装是否成功,出现下面的版本号,就安装成功了
superset version

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Superset 0.30.0rc13
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1. 安装完成之后就可以进行如下配置使用了
# 创建一个admin用户,用户名为superset,并设置密码等参数
fabmanager create-admin --app superset
# 初始化数据库
superset db upgrade
# 加载一些使用的示例
superset load_examples
# 创建默认的角色和初始化权限
superset init
# 启动superset的web server
superset runserver
# 但是superset某个版本以后就不支持上面的命令了,0.30就不支持。所以运行如下命令:
superset run -p 端口号 -h ip地址

因为我之前在别的虚拟环境中安装过别的版本的superset,所以第一步就报了个错:alembic.util.exc.CommandError: Can't locate revision identified by '4a5a7be6c05a',这个是因为superset默认使用的是SQLite数据库,默认路径是/root/.superset,所以这里直接删除这个数据库(rm -rf /root/.superset),再重新运行上面的命令即可。

  1. 打开浏览器输入刚刚设置的ip地址和端口号就可以访问了。

集成echarts中的漏斗图echarts_funnel

因为网上的教程基本都是0.28的,而0.30的superset目录结构又做了大改动,所以这一步真是走的一言难尽。一开始直接用 pip install superset 安装的,superset的目录下居然没有src,我就直接从源码中copy了src放到superset的对应目录下,不知道是我操作有问题还是这样做就是错的,没有集成成功(我也没有时间去试验了,如果有人这样安装成功了,麻烦留言告诉我一声,谢谢),所以索性就直接源码安装。皇天不负有心人,源码安装之后慢慢的就摸索出来了。虽然摸索出来了,有的步骤到底为什么这样做,还是不理解。等后面在慢慢了解吧。废话说了这么多,下面开始进入正题吧。
下面以漏斗图echarts_funnel为例,介绍如何在superset中集成echarts图表

修改viz.py文件

修改viz.py文件,文件路径为:/root/anaconda3/envs/superset/lib/python3.7/site-packages/superset-0.30.0rc13-py3.7.egg/sup

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39800434/article/details/103808139

智能推荐

如何为应用选择最佳的FPGA(上)_fpga封装-程序员宅基地

文章浏览阅读1k次。另一方面,更高端的“重磅”FPGA价格非常昂贵。但这些FPGA的目标应用领域是那些用户愿意为昂贵的FPGA付费的应用,因为他们拥有尖端的技术和能力。例如,这些FPGA应用于顶级军用雷达、下一代无线技术、先进的数字信号处理、数据中心加速等。对于这些细分市场,成本并不是一个重大的交易破坏者。相反,他们对保持技术实力和能力的前沿感兴趣,领先于竞争对手或对手。..._fpga封装

solidity 字符串拼凑_solidity中的字符串-程序员宅基地

文章浏览阅读964次。自从我开始撰写博客以来,感觉已经很久了,直到现在它一直致力于撰写有关统计数据的文章。我不是特别喜欢这个monody,它很快就会变得枯燥乏味。此外,这个博客从一开始就是为了探究两个不同的领域,经过这么长时间的专注于其中一个,我一直感觉到写另一个的冲动。所以,今天我给你一篇关于使用Solidity语言编写以太坊区块链编程的帖子。我不会遵循这样做的任何计划:我的目标只是写下我学习这门语言的障碍和我在日常..._solidity string length

SSM健身俱乐部网站 毕业设计 附源码25623-程序员宅基地

文章浏览阅读122次。健身俱乐部网站解决了传统管理方式所带来的人力、物力和时间上的虚耗和交流深度的限定,这让交流的过程更快捷、准确、便利,同时完成健身俱乐部网站的基本功能:用户注册管理、健身教练管理、健身课程管理、商品信息、失物招领管理。

堆外内存与堆内内存详解_堆外内存和堆内存有什么区别-程序员宅基地

文章浏览阅读3.2w次,点赞17次,收藏84次。堆外内存一直是Java业务开发人员难以企及的隐藏领域,究竟他是干什么的,以及如何更好的使用呢?那就请跟着我进入这个世界吧。一、什么是堆外内存1、堆内内存(on-heap memory)回顾堆外内存和堆内内存是相对的二个概念,其中堆内内存是我们平常工作中接触比较多的,我们在jvm参数中只要使用-Xms,-Xmx等参数就可以设置堆的大小和最大值,理解jvm的堆还需要知道下面这个公式:堆内内存 = 新生..._堆外内存和堆内存有什么区别

Layuiadmin+Echarts全国地图数据分布_layui用echarts显示中国地图-程序员宅基地

文章浏览阅读3k次。Layuiadmin+Echarts全国地图数据分布*样式要引用layui的css jsHtml代码 <div class="layui-col-sm8"> <div class="layui-row layui-col-space15"> <div class="layui-col-sm12"> <div cla_layui用echarts显示中国地图

vim命令与参数的详细解析_cmd里vim是什么命令-程序员宅基地

文章浏览阅读320次。w 将所有输入的命令追加到文件-W 将所有输入的命令写入到文件 -S 加载第一个文件后执行文件 --cmd 加载任何 vimrc 文件前执行 _cmd里vim是什么命令

随便推点

【Unity3d】3d角色换装实现原理及步骤_unity角色换装逻辑-程序员宅基地

文章浏览阅读1.9k次。http://www.cnblogs.com/dosomething/archive/2012/04/15/2450526.html1、角色模型制作  unity3d支持Skin动画 但是不支持Physique动画 会发现Physique动画在unity里严重变形   因此在模型的骨骼动画的制作上面 要用Skin   当然也可以做成Physique 然后用插件转_unity角色换装逻辑

error: no default toolchain configured_no 'defaultdestination' configured-程序员宅基地

文章浏览阅读7.6k次。当我们在windows上通过msi方式安装过rust之后,运行rustc或者cargo命令行命令时,出现如题所示的错误。stackoverflow上有一个issue,说过这个问题。最后的解决办法是通过rustup命令再次安装一次rust,并且指定stable为默认的rust工具链。我认为不用重新安装一次,如果系统中已经安装过rust,那么可以通过rustup相关命令link指定安装目录即可。D:\..._no 'defaultdestination' configured

Android OpenGL ES 开发指南:帧缓冲-程序员宅基地

文章浏览阅读447次。当我们进行图形渲染时,渲染结果会被存储在帧缓冲中,然后可以被用于后续的处理,例如屏幕显示、纹理贴图等。帧缓冲可以看作是一个图像缓冲区,可以暂时保存渲染结果。通过使用帧缓冲,我们可以实现各种高级图形效果和后期处理操作,为应用程序带来更丰富的视觉体验。最后,我们可以通过恢复默认帧缓冲,使用帧缓冲中的渲染结果进行后续处理,如绘制到屏幕上或生成纹理等。接着,我们将纹理附件绑定到帧缓冲的颜色附件上,指定附件的格式和大小。下面是一个简单的示例代码,演示了如何在Android上使用OpenGL ES创建和使用帧缓冲。

weixin087社区养老服务+ssm-程序员宅基地

文章浏览阅读861次,点赞15次,收藏18次。目录摘要Abstract目录第1章绪论1.1研究背景1.2设计原则1.3研究内容第2章关键技术简介2.1微信Web开发者工具2.2微信小程序API接口2.3 MYSQL数据库2.4 Java简介第3章系统分析3.1可行性分析3.1.1技术可行性3.1.2经济可行性3.1.3操作可行性3.1.4法律可行性3.2系统性能分析3.3系统功能分析3.4系统流程分析3.4.1登录流程3.4.2添加信息流程3.4.3注册流程3.4.4。

Analytic Normals 3D代码解析_vec2 ibox( in vec3 ro, in vec3 rd, in vec3 rad ) v-程序员宅基地

文章浏览阅读231次。Analytic Normals 3D代码解析作者:iq,网址:https://www.shadertoy.com/view/XttSz2标签:3d, noise, normals, analytical, numerical总共一个部分:Image照相机设置这个比较常见,就是简单的照相机旋转和矩阵获取// camera animfloat an = 0.1*iTime;vec3 ro = 3.0*vec3( cos(an), 0.8, sin(an) );vec3 ta = vec3(_vec2 ibox( in vec3 ro, in vec3 rd, in vec3 rad ) vec2 ibox( in vec3 ro, in v

得物 H5容器 野指针疑难问题排查 & 解决_野指针出现时如何定位-程序员宅基地

文章浏览阅读1.1k次。得物 iOS 4.9.x 版本 上线后,一些带有横向滚动内容的h5页面,有一个webkit 相关crash增加较快。通过Crash堆栈判断是UIScrollview执行滚动动画过程中内存野指针导致的崩溃。_野指针出现时如何定位

推荐文章

热门文章

相关标签