<commit_before>> 地图自定义篇：考虑到项目更好的通用性，以及更好可扩展性，所以决定对地图部分提供自定义模式。适用在 pyecharts v0.1.9.7 以后的版本。

> Echarts 官方地图下载地址 [download-map](http://echarts.baidu.com/download-map.html) 已经暂时关闭

## 如何获得更多地图

自从 0.3.2 开始，[中国各城市地图](https://github.com/pyecharts/echarts-china-cities-js) 和
[世界各国的地图](https://github.com/pyecharts/echarts-countries-js)变成了可选地图。需要这些地图的朋友，可以装 pip 命令行:

```
pip install echarts-china-cities-pypkg
pip install echarts-countries-pypkg
```

## 如何制作自己的地图扩展

你需要做两个 github 项目：一个是 npm 项目，提供所有的 javascript 脚本；另一个是 python 项目，把前一个项目变成可以用 pip 装的 python 包。

### npm 项目

这个项目首先必须是一个 npm 的项目，并已经启动 gh-pages 来提供地图库。如果未启动 gh-pages , 那么
你的 jupyter 用户不能把 ipynb 下载成 html ，因为下载之后地图将无法显示。

需要是这样一个结构：

```
+ your-map-extension-js
  + registry.json
  + your-map-extension-js
     + london.js
     + manchester.js
     + index.js
  + other files
```

在 registry.json 里，需要填写这些项目:
```
{
    "JUPYTER_URL": "/nbextensions/your-map-extension-js",
    "GITHUB_URL": "https://your.github.io/your-map-extension-js/your-map-extensions-js",
    "JUPYTER_ENTRY": "your-map-extension-js/index",
    "JS_FOLDER": "your-map-extensions-js",
    "PINYIN_MAP": {
        "伦敦": "lundun",
        "曼彻斯特": "manqiesite"
    },
    "FILE_MAP": {
        "lundun": "london",
        "manqiesite": "manchester"
    }
}
```

index.js 可以是这样：
```
define(["require", "exports"], function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var version = '1.0.0';
    function load_ipython_extension() {
        console.log("your-map-extension-js " + version + " has been loaded");
    }
    exports.load_ipython_extension = load_ipython_extension;
});

```

### python 项目
<commit_msg>:books: show case how to create a echarts-bla-bla-js package using yehua and echarts-js-mobans so that anyone can make one package<commit_after>> 地图自定义篇：考虑到项目更好的通用性，以及更好可扩展性，所以决定对地图部分提供自定义模式。适用在 pyecharts v0.1.9.7 以后的版本。

> Echarts 官方地图下载地址 [download-map](http://echarts.baidu.com/download-map.html) 已经暂时关闭

## 如何获得更多地图

自从 0.3.2 开始，[中国各城市地图](https://github.com/pyecharts/echarts-china-cities-js) 和
[世界各国的地图](https://github.com/pyecharts/echarts-countries-js)变成了可选地图。需要这些地图的朋友，可以装 pip 命令行:

```
pip install echarts-china-cities-pypkg
pip install echarts-countries-pypkg
```

## 如何制作自己的地图扩展

你需要做两个 github 项目：一个是 npm 项目，提供所有的 javascript 脚本；另一个是 python 项目，把前一个项目变成可以用 pip 装的 python 包。

### npm 项目

这个项目首先必须是一个 npm 的项目，并已经启动 gh-pages 来提供地图库。如果未启动 gh-pages , 那么
你的 jupyter 用户不能把 ipynb 下载成 html ，因为下载之后地图将无法显示。

首先，你需要得到以下的项目：

```
pip install yehua
git clone https://github.com/pyecharts/echarts-js-mobans.git
export YEHUA_FILE=/ABSOLUTE/PATH/TO/echarts-js-mobans/yehua.yml
```

然后你需要移步到你的工作文件夹，以 echarts-united-kingdom-js 为例子运行这个命令

```
$ yh
Yehua will walk you through creating a pyecharts js package.
Press ^C to quit at any time.

project name: echarts-united-kingdom-js
description: UK maps for echarts
license: MIT
author: C.W.
All done!! project echarts-united-kingdom-js is created
```

All is done. Let's see what was the output:

```
pyecharts-host:tmp chfw$ cd echarts-united-kingdom-js/
pyecharts-host:echarts-united-kingdom-js chfw$ ls
echarts-united-kingdom-js	package.json			registry.json
```

现在讲原理。一个 echarts-js 包需要以下的文件结构


```
+ echarts-united-kingdom-js
  + registry.json
  + package.json
  + echarts-united-kingdom-js
     + london.js
     + manchester.js
     + index.js
  + other files
```

在 registry.json 里，需要填写的东西是和 pyecharts 衔接的必要信息。
```
{
    "JUPYTER_URL": "/nbextensions/echarts-united-kingdom-js",
    "GITHUB_URL": "https://your.github.io/echarts-united-kingdom-js/echarts-united-kingdoms-js",
    "JUPYTER_ENTRY": "echarts-united-kingdom-js/index",
    "JS_FOLDER": "echarts-united-kingdoms-js",
    "PINYIN_MAP": {
        "伦敦": "lundun",
        "曼彻斯特": "manqiesite"
    },
    "FILE_MAP": {
        "lundun": "london",
        "manqiesite": "manchester"
    }
}
```

index.js 只为 jupyter notebook 而存在
```
define(["require", "exports"], function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var version = '1.0.0';
    function load_ipython_extension() {
        console.log("echarts-united-kingdom-js " + version + " has been loaded");
    }
    exports.load_ipython_extension = load_ipython_extension;
});

好了，在 echarts-united-kingdom-js 子文件夹里就需要放地图文件了。每放一个呢，请记住更新 PINYI_MAP 和 FILE_MAP。

```

### python 项目

{'fraction_non_alphanumeric': 0.14509536784741145, 'fraction_numerical': 0.004541326067211626, 'mean_word_length': 3.9272930648769573, 'pattern_counts': {'":': 20, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 7, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4863156', 'n_tokens_mistral': 2176, 'n_tokens_neox': 2197, 'n_words': 320}