Skip to content

Commit

Permalink
增加 datazoom 选项
Browse files Browse the repository at this point in the history
  • Loading branch information
chenjiandongx committed Jul 21, 2017
1 parent da2b4a6 commit bda0a24
Show file tree
Hide file tree
Showing 10 changed files with 336 additions and 249 deletions.
40 changes: 40 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,17 @@ xyAxis:直角坐标系中的 x、y 轴(Line、Bar、Scatter、EffectScatter)
设置成 0 强制显示所有标签
设置为 1,表示『隔一个标签显示一个标签』,如果值为 2,表示隔两个标签显示一个标签,以此推


dataZoom:dataZoom 组件 用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。(Line、Bar、Scatter、EffectScatter)

* is_datazoom_show -> bool
是否使用区域缩放组件,默认为 False
* datazoom_type -> str
区域缩放组件类型,默认为'slider',有'slider', 'inside'可选
* datazoom_range -> list
区域缩放的范围,默认为[50, 100]


legend:图例组件。图例组件展现了不同系列的标记(symbol),颜色和名字。可以通过点击图例控制哪些系列不显示。

* is_legend_show -> bool
Expand Down Expand Up @@ -172,7 +183,9 @@ label:图形上的文本标签,可用于说明图形的一些数据信息,
* value:数据项值
* percent:数据的百分比(主要用于饼图)


lineStyle:带线图形的线的风格选项(Line、Polar、Radar、Graph、Parallel)

* line_width -> int
线的宽度,默认为 1
* line_opacity -> float
Expand Down Expand Up @@ -211,6 +224,7 @@ bar.add("商家B", attr, v2, is_stack=True)
bar.render()
```
![bar-0](https://github.com/chenjiandongx/pyecharts/blob/master/images/bar-0.gif)
**Tip:** 全局配置项要在最后一个 ```add()``` 上设置,否侧设置会被冲刷掉。

```python
from pyecharts import Bar
Expand All @@ -237,6 +251,32 @@ bar.render()
```
![bar-2](https://github.com/chenjiandongx/pyecharts/blob/master/images/bar-2.png)

dataZoom 效果,'slider' 类型
```python
import random

attr = ["{}".format(i) for i in range(30)]
v1 = [random.randint(1, 30) for _ in range(30)]
bar = Bar("Bar - datazoom - slider 示例")
bar.add("", attr, v1, is_label_show=True, is_datazoom_show=True)
bar.show_config()
bar.render()
```
![bar-4](https://github.com/chenjiandongx/pyecharts/blob/master/images/bar-4.gif)

'inside' 类型
```python
attr = ["{}".format(i) for i in range(30)]
v1 = [random.randint(1, 30) for _ in range(30)]
bar = Bar("Bar - datazoom - inside 示例")
bar.add("", attr, v1, is_datazoom_show=True, datazoom_type='inside', datazoom_range=[10, 25])
bar.show_config()
bar.render()
```
![bar-5](https://github.com/chenjiandongx/pyecharts/blob/master/images/bar-5.gif)

**Tip:** datazoom 适合所有平面直角坐标系图形,也就是(Line、Bar、Scatter、EffectScatter)


## EffectScatter(带有涟漪特效动画的散点图)
EffectScatter.add() 方法签名
Expand Down
12 changes: 12 additions & 0 deletions example.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,18 @@ bar.render()
![example-8](https://github.com/chenjiandongx/pyecharts/blob/master/images/example-8.png)


加个 datazoom
```python
bar = Bar("柱状图示例")
bar.add("蒸发量", attr, v1, mark_line=["average"], mark_point=["max", "min"])
bar.add("降水量", attr, v2, mark_line=["average"], mark_point=["max", "min"],
is_datazoom_show=True, datazoom_range=[50, 80])
bar.show_config()
bar.render()
```
![example-8-1](https://github.com/chenjiandongx/pyecharts/blob/master/images/example-8-1.gif)


各类电影中"好片"所占的比例
```python
from pyecharts import Pie
Expand Down
Binary file added images/bar-4.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/bar-5.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/example-8-1.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions pyecharts/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ def add(self, angle_data=None,
boundary_gap=None,
center=None,
clockwise=None,
datazoom_type=None,
datazoom_range=None,
edge_length=None,
effect_brushtype=None,
effect_period=None,
Expand All @@ -89,6 +91,7 @@ def add(self, angle_data=None,
is_axisline_show=None,
is_calculable=None,
is_convert=None,
is_datazoom_show=None,
is_emphasis=None,
is_fill=None,
is_focusnode=None,
Expand Down Expand Up @@ -216,6 +219,8 @@ def _legend_visualmap_colorlst(self, is_visualmap=False, **kwargs):
self._option.update(visualMap=chart['visual_map'])
self._option.get('legend').update(chart['legend'])
self._option.update(color=chart['color'])
if kwargs.get('is_datazoom_show', None) is True:
self._option.update(dataZoom=chart['datazoom'])

def render(self, path="render.html"):
""" 渲染数据项,生成 html 文件
Expand Down
31 changes: 31 additions & 0 deletions pyecharts/option.py
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,37 @@ def effect(effect_brushtype="stroke",
return _effect


@collectfuncs
def datazoom(is_datazoom_show=False,
datazoom_type='slider',
datazoom_range=None,
**kwargs):
"""
:param is_datazoom_show:
是否使用区域缩放组件
:param datazoom_type:
区域缩放组件类型,默认为'slider',有'slider', 'inside'可选
:param datazoom_range:
区域缩放的范围
:param kwargs:
:return:
"""
_min, _max = 50, 100
if datazoom_range:
if len(datazoom_range) == 2:
_min, _max = datazoom_range
if datazoom_type not in ("slider", "inside"):
datazoom_type = "slider"
_datazoom = {
"show": is_datazoom_show,
"type": datazoom_type,
"start": _min,
"end": _max,
}
return [_datazoom]


def get_all_options(**kwargs):
""" 返回所有配置项
Expand Down
Loading

0 comments on commit bda0a24

Please sign in to comment.