-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
V1.0.0 版本正式发布啦!!! #1033
Comments
牛逼 |
我在文档里面没有看到K线图,请问还支持吗?如果支持的话怎么调用呢? @chenjiandongx |
看到啦,多谢多谢。 |
1.X 的文档里,没有提到需要自行下载 echarts countries pypkg |
@ZhangNewbie 因为不需要 |
请问1.0.0版本是否像0.5.11支持对_option的编辑?目前只在文档中看到get_options函数? |
@suxiao818 @qianxuliang 有问题 提新 ISSUE ,请不要在 release issue 下面提问 |
有没有新的案例,我想看看现在版本的应用案例 |
很多函数都变了,有新的代码案例吗?我想看看 |
有两个问题: |
@RayYeung1989 提问请开新的 issue |
@chenjiandongx 您好,我目前使用pyecharts v1.5.1在绘制直角坐标系图的时候,移动光标放到图例上时,并不能像v0.5版本似的自动显示出数据标签了,请问为什么呢? |
请问使用pyecharts v1.6.0画横向的柱状图,y轴的标签太长显示不完全,试了两种方法, 一: 想调整Y轴的位置向右边移动一点,设置AxisOpts配置里的grid_index参数不行, offset也不行标签没有跟着移动,但是margin我已经设置为0 了,很多配置说明没有举例所以理解可能有误,我还试过另一个方法,利用LabelOpts配置的formatter回调函数将标签换行,formatter=JsCode(js_formatter),把换行函数写在js_formatter=“”“ ”“”里的,但这样也不行没画出来 |
What's New in pyecharts V1
pyecharts 经过了半年的沉寂后,终于发布了新版本啦!新版本号将从 v1.0.0 开始,这是一个全新的,向下不兼容的 pyecharts 版本。不过如果开发者以前接触过 pyecharts 的话,新版本对于你们来说也是会很容易上手的。新版本修复 N 个 0.5.x 版本留下来的 bug。
1. 全面拥抱 Python3 和 TypeHint
pyecharts v1 停止对 Python2.7,3.4~3.5 版本的支持和维护,仅支持 Python3.6+。如果还不知道什么是 TypeHint 的同学,劝你尽早入坑,官方入坑指南 typing — Support for type hints。
在编程界,早已流传着 动态一时爽,重构火葬场 这样的真知灼见,动态语言类型检查已经成为了一种趋势,Javascript 已经有了 Typescript,Python 也在力推 TypeHint,虽然 Python 的 TypeHint 实际上对于程序的运行并没有任何影响......,但它配合 IDE 和 mypy,或者 pyright 这样的工具可以在开发阶段趁早发现问题。
2. 弃用插件机制
pyecharts v1 废除原有的插件机制,包括 地图包插件 和 主题插件,插件的本质是提供 pyecharts 运行所需要的静态资源文件(基本都是 .js 文件),所以现在开放了两种模式提供静态资源文件。
弃用插件的理由
3. 更加轻量级
新本的 pyecharts 只依赖了两个第三库,jinja2 和 prettytable。这意味着 pyecharts 总体的体积将变小,安装更加轻松,也可以很方便的进行离线安装,配合上面讲的 local 模式。
4. 支持原生 JavaScript
0.5.X 的版本,对原生 JavaScript 的支持还很局限,v1 版本彻底打通了任督二脉,支持传入任意的 JavaScript 的代码,任意的配置项回调函数。
5. 支持 JupyterLab
对 JupyterLab 的支持一直是很多开发者关心的功能,毕竟 JupyterLab 号称是下一代的 Notebook。pyecharts v1 开始支持在 JupyterLab 中渲染图表啦!
Jupyter Notebook
Jupyter Lab
6. 代码风格重构
所有配置项均 OOP,在新版本的 pyecharts 中,一切皆 Options。配置项种类更多,可操作性更强,可以画出更丰富的图表,pyecharts 官方画廊 pyecharts/pyecharts-gallery。
0.5.X 版本写法
v1 版本写法,支持链式调用,导包方式也发生了变化,所以不要再问为什么旧版的代码运行不了啦!因为两个版本根本就完全不兼容,当成一个新库来学的话会好很多。
v1 版本不仅支持 Opts 配置项作为参数传入,同时也支持原生 dict 类型,也就意味着自己可以随意扩展 pyecharts(如果你对 Echarts 有一定了解的话),而不用修改 pyecharts 源码。
具体参考 pyecharts/options 包。
7. 支持 selenium/phantomjs 渲染图片
pyecharts v1 提供两种模式渲染图片,selenium 和 phantomjs,分别需要安装 snapshot-selenium 和 snapshot-phantomjs。
8. 新增更多的图表类型
新增了图表类型和组件类型
旭日图
百度地图
很酷吧,你可以在 Notebook 环境中使用百度地图,指哪打哪,妈妈再也不用担心我地图不够用啦。
组件类型
9. 更加完善的文档和示例
经开发团队决定,0.5.x 版本将不再进行维护,问题依旧可以提,但基本不会解决。0.5.x 版本代码位于 05x 分支,文档位于 https://05x-docs.pyecharts.org。v1 版本文档位于 https://pyecharts.org。新版文档中提供了更加丰富的示例,帮助开发者更容易入手 pyecharts。
总结
此次的重构主要原因是我发现 pyecharts 以前的设计实在是太糟糕了,导致后来版本的更新一直都是在为这糟糕设计打补丁。在某一个夜深人静的夜晚,我下定了决心,他妈的,看不下去了,老子要重构,不要拦着我。在重构之前,正好那段时间在写 Golang,所以就写了一个 go-echarts,对 Golang 开发感兴趣的开发者也可以关注一下。后来觉得 go-echarts 的接口设计还不错,所以就搬到新版的 pyecharts 中来。新接口更加清晰,语义化。
在重构的过程中也产生了很多的思考,如何把接口设计得简单易用又有可扩展性,这个其实是有矛盾的地方在的,简单易用意味着要尽量封装实现细节,而可扩展性可定制性又意味着要尽量暴露底层接口,参数要灵活,但也不能直接就
*args, **kwargs
,真心觉得,Python 这个传参方式被过度使用了,很多库为了追求方便,形参都是直接写的foo(*args, **kwargs)
,不仔细去阅读具体实现逻辑你根本不知道它需要传什么,然后传的值是什么类型.... 我个人的观点是,Keyword only+TypeHint 是最好的实践,别懒,多写几行代码,不然以后看起来连自己都懵。敲黑板
参与贡献
期待能有更多的开发者参与到 pyecharts 的开发中来,我们会保证尽快 Reivew PR 并且及时回复。但提交 PR 请确保
我们也非常欢迎开发者能为 pyecharts 提供更多的示例,共同来完善文档,文档项目位于 pyecharts/website
感谢陪伴 pyecharts 一路走来的每个人,我相信 pyecharts 为很多的 python 开发者提供了方便的绘图方式,我希望有提出问题的人,更希望有更多能够一起解决问题的人,如果您真心想参与到开发中来,请及时联系我,邮箱 chenjiandongx@qq.com。
The text was updated successfully, but these errors were encountered: