Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pyecharts 全面重构计划 #892

Closed
chenjiandongx opened this issue Jan 15, 2019 · 27 comments
Closed

pyecharts 全面重构计划 #892

chenjiandongx opened this issue Jan 15, 2019 · 27 comments
Assignees

Comments

@chenjiandongx
Copy link
Member

chenjiandongx commented Jan 15, 2019

API 重构

add() 接口拆分,现在的 add() 接口做了太多的事情了。

  1. 对于有 XY 轴的图表,拆分为 add_xaixs()/add_yaxis() 方法。
  2. 新增 set_series_opts 方法,用于一次性设置所有 series 配置项。
  3. 新增 set_base_opts 方法,用于设置 base 配置项,如 dataZoom, legend, tooltip, toolbox 等。

以上的拆分仍能保持接口的简洁性。

图表重构

废除 Overlap 组合图表,改为 chart.overlap() 方法,仅部分图表实现了该方法。

插件机制重构

废除现有的插件机制,仅支持两种情况

  1. online 模式,使用 pyecharts 官方提供的 assets host,或者部署自己的 remote host。
  2. local 模式,使用自己本地开启的文件服务提供 assets host,会提供一键启动的脚本,方便部署。

理由

  1. 现在的 pyecharts 插件机制分散,管理/升级并没有想象中的方便,而且分开为 jupyter/local render 两种情况,这就导致了两个要分开管理,虽然我们的 pip 包可以同时 update 这两种情况引用的 assets,但是由于存在缓存等因素,并不能保证每次都到正确的更新。
  2. pyecharts 不用再依赖这些包,依赖包和 pyecharts 包版本的管理也是一个容易出问题的地方。
  3. 减少维护工作,线上热更新。

代码风格重构

  1. 停止对 Python2.7 版本的支持,仅支持 Python3.5+,是时候全面拥抱 Python3 了
  2. 所有代码使用 TypeHint,增加可读性
  3. 所有配置项均 OOP,使用 attrs 重写配置项类。
  4. 废除 add() 中那堆长得令人发指的参数项列表。

可期待的新特性

  1. 对 components 的支持,可以使用 pyecharts 制作简单的报表。
  2. 支持更加原生的 javascript 配置项,方便用户自己定制

兼容性

本次重构基本上不会考虑任何兼容性的问题,这是一个全新版本的 pyecharts。不想再为它打补丁来容忍糟糕的接口设计,是时候重生了。

时间进度

鉴于现在本人的手头上的事情比较多,本次重构本身又需要大量的时间,所以会慢慢推进的,进度肯定快不了,不过它终将会到来!

@erikgqp8645
Copy link

我觉得这是一个非常棒的可视化库,希望越来越好,非常期待新版本的到来,加油。

@lofty77
Copy link

lofty77 commented Jan 24, 2019

great!

@sjk7524068
Copy link

建议增加一个类似于echarts中数据select的功能,使数据初始化时可选择是否显示数据

@wutengyue
Copy link

wutengyue commented Mar 24, 2019

jupyterlab的适配,不在重构计划中吗? @chenjiandongx

@lyhue1991
Copy link

very good job!加油!!!

@xrui94
Copy link

xrui94 commented Apr 10, 2019

有绘制直方图的功能吗?不是柱状图,因为我是做数字图像处理的,需要用到直方图来统计图像的信息,matplotlib太慢了!

@chenjiandongx
Copy link
Member Author

@SciRui 这种直方图吗

image

@chfw
Copy link
Member

chfw commented Apr 10, 2019

histogram <--

@xrui94
Copy link

xrui94 commented Apr 10, 2019

谢谢回复!已经在您的网站上找到解决办法,目前正在用Qt加载保存出来的网页!
这样能在程序运行完毕,立刻看到结果。!其实,我蛮希望,pyecharts的借口能够做成matplotlib里面的那样,然后能和numpy 深度融合!,,,您如果有需要我帮忙的地方,可以说!我是做GIS遥感应用的,很希望把遥感图像本身及其统计信息可视化,要是能有一些个性化的设置就更好了,目前在做一个项目,以后也打算放到github上,目前还很乱!

@chfw
Copy link
Member

chfw commented Apr 10, 2019

我对 pyecharts 在地图方面的应用感兴趣。有机会的话,我可以加入么?

@xrui94
Copy link

xrui94 commented Apr 10, 2019

我对 pyecharts 在地图方面的应用感兴趣。有机会的话,我可以加入么?

嗯,可以啊,等我后边规划以下再和您联系!

@perfumescent
Copy link

何时能像你一样优秀

@qianxuliang
Copy link

你好,请问之前版本的教程还有吗?

@Johnzjy
Copy link

Johnzjy commented Apr 12, 2019

Great Job .

@WHYWilliamZ
Copy link

加油加油

@xrui94
Copy link

xrui94 commented Apr 20, 2019

比如,我用PyQT做了个界面,内嵌了加载html网页的控件,因此可以在调用pyerchart绘制完图表后,自动在窗口中显示,我的问题是,如果已经在窗口中显示出来了,我再添加几个按钮,通过按钮能更改图表的颜色,字体等个性化设置吗?还是说,图表一旦绘制出来,就不能更改了?或者说通过重新绘制,重新显示的方式来实现我的需求!?

@chfw
Copy link
Member

chfw commented Apr 20, 2019

你需要提供自己的模版,我们用的是 ”simple_chart.html”,你可以考虑用加了按钮的,不过你得自己做。

@good18
Copy link

good18 commented May 20, 2019

安装后报错啊:
`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)`

@Zhanhao527
Copy link

安装后报错啊:
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, 我也想了解为什么改成这样了

@qifeidemumu
Copy link

当我想用多个不同大小,但是类型一致的x,y轴,折线图绘制在一张图上时,无法实现,只能显示一部分,
image

@linwhitehat
Copy link

关于Map部分的接口没看到设置标签颜色的地方,是取消这个接口了吗?生成png图片后底色变黑色,导致标题和标签的字体看不到了。。。

@linwhitehat
Copy link

关于Map部分的接口没看到设置标签颜色的地方,是取消这个接口了吗?生成png图片后底色变黑色,导致标题和标签的字体看不到了。。。

好像用主题设置为DARK能解决了。

@linwhitehat
Copy link

pyecharts新版真的很美观,只是和旧版不兼容,对不少接口与对应功能还不能都清楚,比如我想修改Map中的图注的话,即不同颜色表示那部分,有接口支持将不同value归类到几个区间,然后不同区间的颜色不同,每个区间的含义可自定义,从而对图中不同颜色的图形进行说明,看到Bar部分可以通过标题的改变来达到,那Map的能支持修改吗?具体接口在教程的哪一篇章?

@adorabler
Copy link

map 和 geo要是能overlap就好了,辛苦了,老大

@michaelguan
Copy link

michaelguan commented Mar 14, 2020

特别好的库,感谢作者的卓越工作。使用0.5版本构建了一个股票数据可视化的页面:https://michaelguan.github.io/ ,可以说相当好看了,看到1.x版本之后特别有冲动要迁移到新版本来,等有空了慢慢迁。

@perfumescent
Copy link

perfumescent commented Mar 17, 2020 via email

@mjb0331
Copy link

mjb0331 commented Jun 8, 2020

多坐标轴的对应关系到底是怎么样子的,看了半天也没看懂。逻辑有些混乱啊
extend_axis和yaxis_index到底是怎么对应的?

@pyecharts pyecharts locked as resolved and limited conversation to collaborators Nov 10, 2023
@pyecharts pyecharts deleted a comment from xlzz520 Nov 10, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
No open projects
V0.6-Release
  
To do
Development

No branches or pull requests