Skip to content

Commit

Permalink
Merge pull request pyecharts#117 from pyexcel/master
Browse files Browse the repository at this point in the history
Update user defined map
  • Loading branch information
chenjiandongx authored Aug 20, 2017
2 parents b83fc4b + 5c7e131 commit a953c1a
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 34 deletions.
70 changes: 36 additions & 34 deletions docs/zh-cn/user-customize-map.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,59 +12,61 @@

![customize-map-1](https://github.com/chenjiandongx/pyecharts/blob/master/images/customize-map-1.png)

所有地图均要下载成 JS 格式。
所有地图均要下载成 JS 格式。请注意,地图名称千万要把beijing变成中文的城市名称


## 如何添加
下面就以广东地图为例,说明如何自行添加地图。
## 如何手动添加(0.1.9.7+)
下面就以太原地图为例,说明如何自行添加地图。

### 保存地图文件
我已经下载了广东地图的 JS 文件,文件名为 guangdong.js。将 guangdong.js 保存在项目安装目录下的 templates/js/echarts 文件夹中。Windows 下一般为 Lib/site-packages/pyecharts/templates/js/echarts
我已经下载了太原地图的 JS 文件,文件名为 taiyuan_detailed.js。将其保存在项目安装目录下的 templates/js/echarts 文件夹中。Windows 下一般为 Lib/site-packages/pyecharts/templates/js/echarts

### 修改代码
打开 templates 文件夹下的 base.html 文件,新增一行 ```<script type="text/javascript " src="js/guangdong.js "></script>```
然后呢,在你的代码里需要加下面的两行

![customize-map-2](https://github.com/chenjiandongx/pyecharts/blob/master/images/customize-map-2.png)
```
import pyecharts.constants as constants
constants.CITY_NAME_PINYIN_MAP['太原'] = 'taiyuan_detail'
```

请注意格式:关键词是“太原”,对应的文件名是“taiyuan_detail", 并且不加'js'后缀。下面是所有的代码

在 Map 类的 add() 中,设置 mapType='广东' 即可。如下
```python
from pyecharts import Map
import pyecharts.constants as constants

constants.CITY_NAME_PINYIN_MAP['太原']='taiyuan_detailed'

value = [20, 190, 253, 77, 65]
attr = ['汕头市', '汕尾市', '揭阳市', '阳江市', '肇庆市']
map = Map("广东地图示例", width=1200, height=600)
map.add("", attr, value, maptype='广东', is_visualmap=True, visual_text_color='#000')
map.show_config()
value = [20]
attr = ['小店区']
map = Map("太原地图示例", width=1200, height=600)
map.add("", attr, value, maptype='太原', is_visualmap=True, visual_text_color='#000')
map.render()
```

如果只是使用 render() 生成 .html 文件的话到这里就可以了。还想要在 jupyter notebook 上展示地图的话,还需要下面一个步骤。
打开项目根目录下的 template.py,找到 _mapindex 变量,新增 ```"广东": "guangdong"```,格式为 ```省份中文: "省份英文"。

```python
_mapindex = {
"广东": "guangdong",
}
```
$ jupyter nbextensions install [python lib dir]/site-packages/pyecharts/templates/js/echarts
...
Copying: .../echarts/taiyuan_detailed.js -> /.../jupyter/nbextensions/echarts/taiyuan_detailed.js
...
To initialize this nbextension in the browser every time the notebook (or other app) loads:
jupyter nbextension enable <the entry point>
```

然后查看 jupyter-notebook 的所有路径。下面是 mac os 的例子:
你可以选择性的执行下面的语句。如果你已经装了0.1.9.7在你现在的python环境,就可以跳过

```
$ jupyter --paths
config:
/Users/jaska/.jupyter
/Users/jaska/github/data-analysis-env/bin/../etc/jupyter
/usr/local/etc/jupyter
/etc/jupyter
data:
/Users/jaska/Library/Jupyter <--- user directory
/Users/jaska/github/data-analysis-env/bin/../share/jupyter
/usr/local/share/jupyter
/usr/share/jupyter
runtime:
/Users/jaska/Library/Jupyter/runtime
jupyter nbextension enable echarts/main
```

你需要做的就是把 guangdong.js 拷贝到 /Users/jaska/Library/Jupyter/nbextensions/echarts/.
然后,让我们检查以下是否已经装上了。请先运行Jupyter notebook,再打开这个链接:http://localhost:8889/nbextensions/echarts/taiyuan_details.js。
如果能下载到,那就祝贺你,成功了。否则,请检查你的步骤。

![customize-map-2](https://github.com/chenjiandongx/pyecharts/blob/master/images/customize-map-2.png)

## 如何把手动加的地图变成自动的

现在也能在 jupyter notebook 上展示你所属要的地图了
如果用户期望pyecharts支持自己的地图,请发请求然后再发来改动
Binary file modified images/customize-map-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit a953c1a

Please sign in to comment.