Pyechart

之前介绍了基于javasrcipt的Echarts,而Pyecharts(官网)是Echarts的python代码实现。

1 安装

pip install pyecharts

报错如下,

AttributeError: module 'pyecharts' has no attribute '__version__'

原因是脚本名称是pyecharts.py,名称冲突,修改文件名即可。

WARNING: 2020-7-4安装pyechart,运行下面的绘图代码会报错,

C:\ProgramData\Anaconda3\lib\site-packages\pyecharts\charts\chart.py:14: PendingDeprecationWarning: pyecharts 所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置

原因是默认安装的最新版1.8.1与之前的版本语法冲突。

解决办法:降低到可用的最新版本号,

pip install pyecharts==1.7.1

2 绘制2020年1-4月168个重点城市环境空气排名前20位和后20位城市

安装地图包

pip install echarts-countries-pypkg #世界地图

阿富汗 (Afghanistan)
阿尔巴尼亚 (Albania)
阿尔及利亚 (Algeria)
安道尔 (Andorra)
安哥拉 (Angola)
安圭拉 (Anguilla)
安提瓜和巴布达 (Antigua and Barbuda)
阿根廷 (Argentina)
亚美尼亚 (Armenia)
澳大利亚 (Australia)
奥地利 (Austria)
阿塞拜疆 (Azerbaijan)
巴林 (Bahrain)
孟加拉国 (Bangladesh)
巴巴多斯 (Barbados)
白俄罗斯 (Belarus)
比利时 (Belgium)
伯利兹 (Belize)
贝宁 (Benin)
百慕达群岛 (Bermuda)
不丹 (Bhutan)
玻利维亚 (Bolivia)
波斯尼亚-黑塞哥维那 (Bosnia and Herzegovina)
博茨瓦纳 (Botswana)
巴西 (Brazil)
英属印度洋领地 (British Indian Ocean Territory)
英属维尔京群岛 (British Virgin Islands)
文莱 (Brunei)
保加利亚 (Bulgaria)
布基纳法索 (Burkina Faso)
蒲隆地 (Burundi)
柬埔寨 (Cambodia)
喀麦隆 (Cameroon)
加拿大 (Canada)
佛得角 (Cape Verde)
开曼群岛 (Cayman Islands)
中非共和国 (Central African Republic)
乍得 (Chad)
智利 (Chile)
哥伦比亚 (Colombia)
科摩罗 (Comoros)
刚果-布拉柴维尔 (Congo-Brazzaville)
刚果金 (Congo-Kinshasa)
库克群岛 (Cook Islands)
珊瑚海群岛领地 (Coral Sea Islands Territory)
哥斯达黎加 (Costa Rica)
克罗地亚 (Croatia)
古巴 (Cuba)
塞浦路斯 (Cyprus)
捷克 (Czechia)
丹麦 (Denmark)
吉布提 (Djibouti)
多米尼克 (Dominica)
多米尼加共和国 (Dominican Republic)
东帝汶 (East Timor)
厄瓜多尔 (Ecuador)
埃及 (Egypt)
萨尔瓦多 (El Salvador)
赤道几内亚 (Equatorial Guinea)
厄立特里亚 (Eritrea)
爱沙尼亚 (Estonia)
埃塞俄比亚 (Ethiopia)
福克兰群岛 (Falkland Islands)
法罗群岛 (Faroe Islands)
密克罗尼西亚联邦 (Federated States of Micronesia)
斐济 (Fiji)
芬兰 (Finland)
法国 (France)
加蓬 (Gabon)
格鲁吉亚 (Georgia)
德国 (Germany)
加纳 (Ghana)
直布罗陀 (Gibraltar)
希腊 (Greece)
格陵兰 (Greenland)
危地马拉 (Guatemala)
根西 (Guernsey)
几内亚比索 (Guinea-Bissau)
几内亚 (Guinea)
圭亚那 (Guyana)
海地 (Haiti)
洪都拉斯 (Honduras)
匈牙利 (Hungary)
冰岛 (Iceland)
印度 (India)
印度尼西亚, 印尼 (Indonesia)
伊拉克 (Iraq)
爱尔兰 (Ireland)
伊朗 (Islamic Republic of Iran)
马恩岛 (Isle of Man)
以色列 (Israel)
意大利 (Italy)
牙买加 (Jamaica)
日本 (Japan)
泽西 (Jersey)
约旦 (Jordan)
哈萨克斯坦 (Kazakhstan)
肯尼亚 (Kenya)
基里巴斯 (Kiribati)
科威特 (Kuwait)
吉尔吉斯斯坦 (Kyrgyzstan)
老挝 (Laos)
拉脱维亚 (Latvia)
黎巴嫩 (Lebanon)
莱索托 (Lesotho)
利比里亚 (Liberia)
利比亚 (Libya)
列支敦士登 (Liechtenstein)
立陶宛 (Lithuania)
卢森堡 (Luxemburg)
马其顿 (Macedonia)
马达加斯加 (Madagascar)
马拉维 (Malawi)
马来西亚 (Malaysia)
马尔代夫 (Maldives)
马里 (Mali)
马耳他 (Malta)
马绍尔群岛 (Marshall Islands)
毛里塔尼亚 (Mauritania)
毛里求斯 (Mauritius)
墨西哥 (Mexico)
摩尔多瓦 (Moldova)
摩纳哥 (Monaco)
蒙古 (Mongolia)
黑山 (Montenegro)
蒙特塞拉特 (Montserrat)
摩洛哥 (Morocco)
莫桑比克 (Mozambique)
缅甸 (Myanmar)
纳米比亚 (Namibia)
尼泊尔 (Nepal)
新西兰 (New Zealand)
尼加拉瓜 (Nicaragua)
尼日尔 (Niger)
尼日利亚 (Nigeria)
纽埃 (Niue)
朝鲜 (North Korea)
挪威 (Norway)
阿曼 (Oman)
巴基斯坦 (Pakistan)
帕劳 (Palau)
巴勒斯坦 (Palestine)
巴拿马 (Panama)
巴布亚新几内亚 (Papua New Guinea)
巴拉圭 (Paraguay)
秘鲁 (Peru)
菲律宾 (Philippines)
皮特凱恩群島 (Pitcairn Islands)
波兰 (Poland)
葡萄牙 (Portugal)
卡塔尔 (Qatar)
科索沃 (Republic of Kosovo)
罗马尼亚 (Romania)
俄罗斯 (Russia)
卢旺达 (Rwanda)
撒拉威阿拉伯民主共和国 (Sahrawi Arab Democratic Republic)
圣赫勒拿-阿森松和特里斯坦-达库尼亚 (Saint Helena Ascension and Tristan da Cunha)
圣基茨和尼维斯 (Saint Kitts and Nevis)
圣卢西亚 (Saint Lucia)
圣文森特和格林纳丁斯 (Saint Vincent and the Grenadines)
萨摩亚 (Samoa)
圣马力诺 (San Marino)
沙特阿拉伯 (Saudi Arabia)
塞内加尔 (Senegal)
塞尔维亚 (Serbia)
塞舌尔 (Seychelles)
塞拉利昂 (Sierra Leone)
新加坡 (Singapore)
斯洛伐克 (Slovakia)
斯洛文尼亚 (Slovenia)
所罗门群岛 (Solomon Islands)
索马里 (Somalia)
南非 (South Africa)
南乔治亚和南桑威奇群岛 (South Georgia and the South Sandwich Islands)
韩国 (South Korea)
南苏丹 (South Sudan)
西班牙 (Spain)
斯里兰卡 (Sri Lanka)
苏丹 (Sudan)
苏里南 (Suriname)
史瓦济兰 (Swaziland)
瑞士 (Switzerland)
瑞典 (Sweden)
叙利亚 (Syria)
塔吉克斯坦 (Tajikistan)
坦桑尼亚 (Tanzania)
泰国 (Thailand)
巴哈马 (The Bahamas)
冈比亚 (The Gambia)
荷兰 (The Netherlands)
多哥 (Togo)
托克劳 (Tokelau)
汤加 (Tonga)
特立尼达和多巴哥 (Trinidad and Tobago)
突尼斯 (Tunisia)
土耳其 (Turkey)
土库曼 (Turkmenistan)
特克斯和凯科斯群岛 (Turks and Caicos Islands)
吐瓦鲁 (Tuvalu)
乌干达 (Uganda)
乌克兰 (Ukraine)
阿拉伯联合酋长国 (United Arab Emirates)
英国 (United Kingdom)
乌拉圭 (Uruguay)
美国 (USA)
乌兹别克斯坦 (Uzbekistan)
瓦努阿图 (Vanuatu)
梵蒂冈 (Vatican City)
委内瑞拉 (Venezuela)
越南 (Vietnam)
也门 (Yemen)
赞比亚 (Zambia)
津巴布韦 (Zimbabwe)

pip install echarts-china-provinces-pypkg #中国各省
pip install echarts-china-cities-pypkg #中国各地级市

安徽: 安庆, 蚌埠, 亳州, 池州, 滁州, 阜阳, 合肥, 淮北, 淮南, 黄山, 六安, 马鞍山, 宿州, 铜陵, 芜湖, 宣城

福建: 福州, 龙岩, 南平, 宁德, 莆田, 泉州, 三明, 厦门, 漳州

甘肃: 白银, 定西, 甘南藏族自治州, 嘉峪关, 金昌, 酒泉, 兰州, 临夏回族自治州, 陇南, 平凉, 庆阳, 天水, 武威, 张掖

广东: 潮州, 东莞, 东沙群岛, 佛山, 广州, 河源, 惠州, 江门, 揭阳, 茂名, 梅州, 清远, 汕头, 汕尾, 韶关, 深圳, 阳江, 云浮, 湛江, 肇庆, 中山, 珠海

广西: 百色, 北海, 崇左, 防城港, 贵港, 桂林, 河池, 贺州, 来宾, 柳州, 南宁, 钦州, 梧州, 玉林

贵州: 安顺, 毕节, 贵阳, 六盘水, 黔东南苗族侗族自治州, 黔南布依族苗族自治州, 黔西南布依族苗族自治州, 铜仁, 遵义

海南: 白沙黎族自治县, 保亭黎族苗族自治县, 昌江黎族自治县, 澄迈县, 儋州, 定安县, 东方, 海口, 乐东黎族自治县, 临高县, 陵水黎族自治县, 琼海, 琼中黎族苗族自治县, 三沙, 三亚, 屯昌县, 万宁, 文昌, 五指山

河北: 保定, 承德, 邯郸, 衡水, 廊坊, 秦皇岛, 石家庄, 唐山, 邢台, 张家口

河南: 安阳, 沧州, 鹤壁, 济源, 焦作, 开封, 洛阳, 南阳, 平顶山, 濮阳, 三门峡, 商丘, 漯河, 新乡, 信阳, 许昌, 郑州, 周口, 驻马店

黑龙江: 大庆, 大兴安岭地区, 哈尔滨, 鹤岗, 黑河, 鸡西, 佳木斯, 牡丹江, 七台河, 齐齐哈尔, 双鸭山, 绥化, 伊春

湖北: 鄂州, 恩施土家族苗族自治州, 黄冈, 黄石, 荆门, 荆州, 潜江, 神农架林区, 十堰, 随州, 天门, 武汉, 仙桃, 咸宁, 襄阳, 孝感, 宜昌

湖南: 常德, 长沙, 郴州, 衡阳, 怀化, 娄底, 邵阳, 湘潭, 湘西土家族苗族自治州, 益阳, 永州, 岳阳, 张家界, 株洲

吉林: 白城, 白山, 长春, 吉林, 辽源, 四平, 松原, 通化, 延边朝鲜族自治州

江苏: 常州, 淮安, 连云港, 南京, 南通, 苏州, 宿迁, 泰州, 无锡, 徐州, 盐城, 扬州, 镇江

江西: 抚州, 赣州, 吉安, 景德镇, 九江, 南昌, 萍乡, 上饶, 新余, 宜春, 鹰潭

辽宁: 鞍山, 本溪, 大连, 丹东, 抚顺, 阜新, 葫芦岛, 锦州, 辽阳, 盘锦, 沈阳, 铁岭, 营口, 朝阳

内蒙古: 阿拉善盟, 巴彦淖尔, 包头, 赤峰, 鄂尔多斯, 呼和浩特, 呼伦贝尔, 通辽, 乌海, 乌兰察布, 锡林郭勒盟, 兴安盟

宁夏: 固原, 石嘴山, 吴忠, 银川, 中卫

青海: 果洛藏族自治州, 海北藏族自治州, 海东, 海南藏族自治州, 海西蒙古族藏族自治州, 黄南藏族自治州, 西宁, 玉树藏族自治州

山东: 滨州, 德州, 东营, 菏泽, 济南, 济宁, 莱芜, 聊城, 临沂, 青岛, 日照, 泰安, 威海, 潍坊, 烟台, 枣庄, 淄博

山西: 长治, 大同, 晋城, 晋中, 临汾, 吕梁, 朔州, 太原, 忻州, 阳泉, 运城

陕西: 安康, 宝鸡, 汉中, 商洛, 铜川, 渭南, 西安, 咸阳, 延安, 榆林

四川: 阿坝藏族羌族自治州, 巴中, 成都, 达州, 德阳, 甘孜藏族自治州, 广安, 广元, 乐山, 凉山彝族自治州, 泸州, 眉山, 绵阳, 南充, 内江, 攀枝花, 遂宁, 雅安, 宜宾, 资阳, 自贡

西藏: 阿里地区, 昌都, 拉萨, 林芝, 那曲地区, 日喀则, 山南

新疆: 阿克苏地区, 阿拉尔, 阿勒泰地区, 巴音郭楞蒙古自治州, 北屯, 博尔塔拉蒙古自治州, 昌吉回族自治州, 哈密, 和田地区, 喀什地区, 可克达拉, 克拉玛依, 克孜勒苏柯尔克孜自治州, 昆玉, 石河子, 双河, 塔城地区, 铁门关, 图木舒克, 吐鲁番, 乌鲁木齐, 五家渠, 伊犁哈萨克自治州

云南: 保山, 楚雄彝族自治州, 大理白族自治州, 德宏傣族景颇族自治州, 迪庆藏族自治州, 红河哈尼族彝族自治州, 昆明, 丽江, 临沧, 怒江傈僳族自治州, 普洱, 曲靖, 文山壮族苗族自治州, 西双版纳傣族自治州, 玉溪, 昭通

浙江: 杭州, 湖州, 嘉兴, 金华, 丽水, 宁波, 衢州, 绍兴, 台州, 温州, 舟山

直辖市: 澳门, 北京, 重庆, 上海, 天津, 香港

pip install echarts-china-counties-pypkg #中国各县区
pip install echarts-china-misc-pypkg #中国各区

图及代码如下(双击图片可交互),

#!/usr/bin/env python
# -*-coding:utf-8 -*-

import os
import re
import linecache
import math
import time
import shutil
# import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Map
os.chdir(os.path.split(os.path.realpath(__file__))[0])

a1 = [
'海口'
,'拉萨'
,'丽水'
,'惠州'
,'深圳'
,'珠海'
,'舟山'
,'厦门'
,'黄山'
,'福州'
,'中山'
,'贵阳'
,'肇庆'
,'南宁'
,'江门'
,'雅安'
,'台州'
,'张家口'
,'东莞'
,'衢州'
,'石家'
,'包头'
,'安阳'
,'临汾'
,'太原'
,'邢台'
,'运城'
,'哈尔滨'
,'邯郸'
,'唐山'
,'咸阳'
,'渭南'
,'呼和浩特'
,'西安'
,'焦作'
,'鹤壁'
,'保定'
,'晋城'
,'沈阳'
,'淄博'
,'阳泉'
]
a2 = [
 -25
,-24
,-23
,-22
,-21
,-20
,-19
,-18
,-17
,-16
,-15
,-14
,-13
,-12
,-11
,-10
,-9
,-8
,-7
,-6
,25
,25
,24
,23
,22
,21
,19
,19
,17
,17
,16
,15
,14
,13
,12
,11
,10
,9
,8
,7
,6
]

output = (
    Map()
    .add("污染指数", zip(a1, a2), "china-cities", label_opts=opts.LabelOpts(is_show=False),is_map_symbol_show=False)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="2020年4月生态环境部通报"),
        visualmap_opts=opts.VisualMapOpts(min_=-25, max_=25)
        )
    .render("test.html")
)