pyecharts 全面重构计划
chenjiandongx opened this issue · comments
API 重构
add() 接口拆分,现在的 add() 接口做了太多的事情了。
- 对于有 XY 轴的图表,拆分为 add_xaixs()/add_yaxis() 方法。
- 新增 set_series_opts 方法,用于一次性设置所有 series 配置项。
- 新增 set_base_opts 方法,用于设置 base 配置项,如 dataZoom, legend, tooltip, toolbox 等。
以上的拆分仍能保持接口的简洁性。
图表重构
废除 Overlap 组合图表,改为 chart.overlap() 方法,仅部分图表实现了该方法。
插件机制重构
废除现有的插件机制,仅支持两种情况
- online 模式,使用 pyecharts 官方提供的 assets host,或者部署自己的 remote host。
- local 模式,使用自己本地开启的文件服务提供 assets host,会提供一键启动的脚本,方便部署。
理由
- 现在的 pyecharts 插件机制分散,管理/升级并没有想象中的方便,而且分开为 jupyter/local render 两种情况,这就导致了两个要分开管理,虽然我们的 pip 包可以同时 update 这两种情况引用的 assets,但是由于存在缓存等因素,并不能保证每次都到正确的更新。
- pyecharts 不用再依赖这些包,依赖包和 pyecharts 包版本的管理也是一个容易出问题的地方。
- 减少维护工作,线上热更新。
代码风格重构
- 停止对 Python2.7 版本的支持,仅支持 Python3.5+,是时候全面拥抱 Python3 了
- 所有代码使用 TypeHint,增加可读性
- 所有配置项均 OOP,使用 attrs 重写配置项类。
- 废除 add() 中那堆长得令人发指的参数项列表。
可期待的新特性
- 对 components 的支持,可以使用 pyecharts 制作简单的报表。
- 支持更加原生的 javascript 配置项,方便用户自己定制
兼容性
本次重构基本上不会考虑任何兼容性的问题,这是一个全新版本的 pyecharts。不想再为它打补丁来容忍糟糕的接口设计,是时候重生了。
时间进度
鉴于现在本人的手头上的事情比较多,本次重构本身又需要大量的时间,所以会慢慢推进的,进度肯定快不了,不过它终将会到来!
我觉得这是一个非常棒的可视化库,希望越来越好,非常期待新版本的到来,加油。
great!
建议增加一个类似于echarts中数据select的功能,使数据初始化时可选择是否显示数据
jupyterlab的适配,不在重构计划中吗? @chenjiandongx
very good job!加油!!!
有绘制直方图的功能吗?不是柱状图,因为我是做数字图像处理的,需要用到直方图来统计图像的信息,matplotlib太慢了!
histogram <--
谢谢回复!已经在您的网站上找到解决办法,目前正在用Qt加载保存出来的网页!
这样能在程序运行完毕,立刻看到结果。!其实,我蛮希望,pyecharts的借口能够做成matplotlib里面的那样,然后能和numpy 深度融合!,,,您如果有需要我帮忙的地方,可以说!我是做GIS遥感应用的,很希望把遥感图像本身及其统计信息可视化,要是能有一些个性化的设置就更好了,目前在做一个项目,以后也打算放到github上,目前还很乱!
我对 pyecharts 在地图方面的应用感兴趣。有机会的话,我可以加入么?
我对 pyecharts 在地图方面的应用感兴趣。有机会的话,我可以加入么?
嗯,可以啊,等我后边规划以下再和您联系!
何时能像你一样优秀
你好,请问之前版本的教程还有吗?
Great Job .
加油加油
比如,我用PyQT做了个界面,内嵌了加载html网页的控件,因此可以在调用pyerchart绘制完图表后,自动在窗口中显示,我的问题是,如果已经在窗口中显示出来了,我再添加几个按钮,通过按钮能更改图表的颜色,字体等个性化设置吗?还是说,图表一旦绘制出来,就不能更改了?或者说通过重新绘制,重新显示的方式来实现我的需求!?
你需要提供自己的模版,我们用的是 ”simple_chart.html”,你可以考虑用加了按钮的,不过你得自己做。
安装后报错啊:
`ImportError Traceback (most recent call last)
in ()
1 import pyecharts
----> 2 from pyecharts import Bar
3
4 bar = Bar("我的第一个图表", "这里是副标题")
5 bar.use_theme('dark') #暗色背景色
ImportError: cannot import name 'Bar' from 'pyecharts' (E:\ProgramData\Anaconda3\lib\site-packages\pyecharts_init_.py)`
安装后报错啊:
ImportError Traceback (most recent call last) in () 1 import pyecharts ----> 2 from pyecharts import Bar 3 4 bar = Bar("我的第一个图表", "这里是副标题") 5 bar.use_theme('dark') #暗色背景色 ImportError: cannot import name 'Bar' from 'pyecharts' (E:\ProgramData\Anaconda3\lib\site-packages\pyecharts_init_.py)
现在写法好像变了,你试试from pyecharts.charts import Bar, 我也想了解为什么改成这样了
关于Map部分的接口没看到设置标签颜色的地方,是取消这个接口了吗?生成png图片后底色变黑色,导致标题和标签的字体看不到了。。。
关于Map部分的接口没看到设置标签颜色的地方,是取消这个接口了吗?生成png图片后底色变黑色,导致标题和标签的字体看不到了。。。
好像用主题设置为DARK能解决了。
pyecharts新版真的很美观,只是和旧版不兼容,对不少接口与对应功能还不能都清楚,比如我想修改Map中的图注的话,即不同颜色表示那部分,有接口支持将不同value归类到几个区间,然后不同区间的颜色不同,每个区间的含义可自定义,从而对图中不同颜色的图形进行说明,看到Bar部分可以通过标题的改变来达到,那Map的能支持修改吗?具体接口在教程的哪一篇章?
map 和 geo要是能overlap就好了,辛苦了,老大
特别好的库,感谢作者的卓越工作。使用0.5版本构建了一个股票数据可视化的页面:https://michaelguan.github.io/ ,可以说相当好看了,看到1.x版本之后特别有冲动要迁移到新版本来,等有空了慢慢迁。
多坐标轴的对应关系到底是怎么样子的,看了半天也没看懂。逻辑有些混乱啊
extend_axis和yaxis_index到底是怎么对应的?