Python模塊--PyEcharts

一、PyEcharts簡介

??“pyecharts 是一個用于生成 Echarts 圖表的類庫季俩。Echarts 是百度開源的一個數據可視化 JS 庫。用 Echarts 生成的圖可視化效果非常棒榆俺,為了與 Python 進行對接历葛,方便在 Python 中直接使用數據生成圖”。
??pyecharts可以展示動態(tài)圖当纱,在線報告使用比較美觀呛每,并且展示數據方便,鼠標懸停在圖上坡氯,即可顯示數值晨横、標簽等洋腮。
官網地址:http://pyecharts.org/#/zh-cn/charts

https://pyecharts.org/#/zh-cn/quickstart
https://github.com/pyecharts/pyecharts

二、模塊安裝

下載安裝:(推薦)
https://pypi.org/project/pyecharts/0.1.9.4/#files

pip install pyecharts-0.1.9.4-py2.py3-none-any.whl 
下載安裝

在線安裝手形,不成功:

(film) C:\Users\Administrator>pip install pyecharts

三啥供、圖表示例

  1. 柱形圖
# -*- coding: utf-8 -*-

from pyecharts import Bar

'''
柱形圖
'''

bar = Bar("我的第一個圖表", "這里是副標題")
bar.add("服裝", ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"], [5, 20, 36, 10, 75, 90])
bar.show_config()
bar.render()

會生成Html文件(render.html):


柱形圖
  1. 柱狀圖數據堆疊
# -*- coding: utf-8 -*-

from pyecharts import Bar

'''
柱狀圖數據堆疊
'''

attr = ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"]
v1 = [5, 20, 36, 10, 75, 90]
v2 = [10, 25, 8, 60, 20, 80]
bar = Bar("柱狀圖數據堆疊示例")
bar.add("商家A", attr, v1, is_stack=True)
bar.add("商家B", attr, v2, is_stack=True)
bar.show_config()
bar.render()

柱狀圖數據堆疊
  1. 散點圖
# -*- coding: utf-8 -*-

from pyecharts import EffectScatter
'''
散點圖
'''

v1 = [10, 20, 30, 40, 50, 60]
v2 = [25, 20, 15, 10, 60, 33]
es = EffectScatter("帶有漣漪特效動畫的動態(tài)散點圖示例")
es.add("effectScatter", v1, v2)
es.render()
散點圖
  1. 漏斗圖
# -*- coding: utf-8 -*-

from pyecharts import Funnel
'''
漏斗圖
'''

attr = ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"]
value = [20, 40, 60, 80, 100, 120]
funnel = Funnel("漏斗圖示例")
funnel.add("商品", attr, value, is_label_show=True, label_pos="inside", label_text_color="#fff")
funnel.render()
漏斗圖
  1. 餅圖
# -*- coding: utf-8 -*-

from pyecharts import Pie
'''
餅圖
'''

attr = ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"]
v1 = [11, 12, 13, 10, 10, 10]
pie = Pie("餅圖示例")
pie.add("", attr, v1, is_label_show=True)
pie.render()
餅圖
  1. 圓環(huán)圖
# -*- coding: utf-8 -*-

from pyecharts import Pie
'''
圓環(huán)圖
'''

attr = ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"]
v1 = [11, 12, 13, 10, 10, 10]
pie = Pie("餅圖-圓環(huán)圖示例", title_pos='center')
pie.add("", attr, v1, radius=[40, 75], label_text_color=None,
        is_label_show=True, legend_orient='vertical',
        legend_pos='left')
pie.render()
圓環(huán)圖
  1. 儀表盤
# -*- coding: utf-8 -*-

from pyecharts import Gauge

'''
儀表盤
'''

gauge = Gauge("儀表盤示例")
gauge.add("業(yè)務指標", "完成率", 66.66)
gauge.show_config()
gauge.render()
儀表盤
  1. 地理坐標系
    需安裝模塊:
$ pip install echarts-countries-pypkg
$ pip install echarts-china-provinces-pypkg
$ pip install echarts-china-cities-pypkg
$ pip install echarts-china-counties-pypkg
$ pip install echarts-china-misc-pypkg
$ pip install echarts-united-kingdom-pypkg
# -*- coding: utf-8 -*-

from pyecharts import Map, Geo

'''
中國地圖
'''
# 省和直轄市
province_distribution = {'河南': 45.23, '北京': 37.56, '河北': 21, '遼寧': 12, '江西': 6, '上海': 20, '安徽': 10, '江蘇': 16, '湖南': 9, '浙江': 13, '海南': 2, '廣東': 22, '湖北': 8, '黑龍江': 11, '澳門': 1, '陜西': 11, '四川': 7, '內蒙古': 3, '重慶': 3, '云南': 6, '貴州': 2, '吉林': 3, '山西': 12, '山東': 11, '福建': 4, '青海': 1, '舵主科技鳞骤,質量保證': 1, '天津': 1, '其他': 1}
provice=list(province_distribution.keys())
values=list(province_distribution.values())

# maptype='china' 只顯示全國直轄市和省級
# 數據只能是省名和直轄市的名稱
map = Map("中國地圖",'中國地圖', width=1200, height=600)
map.add("", provice, values, visual_range=[0, 50],  maptype='china', is_visualmap=True,
    visual_text_color='#000')
map.show_config()
map.render(path="./data/04-01中國地圖.html")
中國地圖

2)省份地圖

# -*- coding: utf-8 -*-

from pyecharts import Map, Geo

'''
中國地圖
'''
# 城市 -- 指定省的城市 xx市
city = ['鄭州市', '安陽市', '洛陽市', '濮陽市', '南陽市', '開封市', '商丘市', '信陽市', '新鄉(xiāng)市']
values2 = [1.07, 3.85, 6.38, 8.21, 2.53, 4.37, 9.38, 4.29, 6.1]

# 河南地圖  數據必須是省內放入城市名
map2 = Map("河南地圖",'河南', width=1200, height=600)
map2.add('河南', city, values2, visual_range=[1, 10], maptype='河南', is_visualmap=True, visual_text_color='#000')
map2.show_config()
map2.render(path="./data/04-02河南地圖.html")
省份地圖

3)區(qū)縣地圖--不顯示

# -*- coding: utf-8 -*-

from pyecharts import Map, Geo

'''
區(qū)縣地圖
'''

# 區(qū)縣 -- 具體城市內的區(qū)縣  xx縣
quxian = ['夏邑縣', '民權縣', '梁園區(qū)', '睢陽區(qū)', '柘城縣', '寧陵縣']
values3 = [3, 5, 7, 8, 2, 4]

# # 商丘地圖 數據為商丘市下的區(qū)縣
map3 = Map("商丘地圖",'商丘', width=1200, height=600)
map3.add("商丘", quxian, values3, visual_range=[1, 10], maptype='商丘', is_visualmap=True,
    visual_text_color='#000')

map3.show_config()
map3.render(path="./data/04-03商丘地圖.html")

4)熱力分布圖

# -*- coding: utf-8 -*-

from pyecharts import Map, Geo

'''
熱力圖
'''

data = [
("海門", 9),("鄂爾多斯", 12),("招遠", 12),("舟山", 12),("齊齊哈爾", 14),("鹽城", 15),
("赤峰", 16),("青島", 18),("乳山", 18),("金昌", 19),("泉州", 21),("萊西", 21),
("日照", 21),("膠南", 22),("南通", 23),("拉薩", 24),("云浮", 24),("梅州", 25)]

geo = Geo("全國主要城市空氣質量熱力圖", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59')

attr, value = geo.cast(data)

geo.add("空氣質量熱力圖", attr, value, visual_range=[0, 25], type='heatmap',visual_text_color="#fff", symbol_size=15, is_visualmap=True, is_roam=False)
geo.show_config()
geo.render(path="./data/04-04空氣質量熱力圖.html")
熱力分布圖

5)空氣質量評分

# -*- coding: utf-8 -*-

from pyecharts import Map, Geo

'''
熱力圖
'''

# 空氣質量評分
indexs = ['上海', '北京', '合肥', '哈爾濱', '廣州', '成都', '無錫', '杭州', '武漢', '深圳', '西安', '鄭州', '重慶', '長沙']
values = [4.07, 1.85, 4.38, 2.21, 3.53, 4.37, 1.38, 4.29, 4.1, 1.31, 3.92, 4.47, 2.40, 3.60]


geo = Geo("全國主要城市空氣質量評分", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59')

# type="effectScatter", is_random=True, effect_scale=5  使點具有發(fā)散性
geo.add("空氣質量評分", indexs, values, type="effectScatter", is_random=True, effect_scale=5, visual_range=[0, 5],visual_text_color="#fff", symbol_size=15, is_visualmap=True, is_roam=False)
geo.show_config()
geo.render(path="./data/04-05空氣質量評分.html")
空氣質量評分

6)世界地圖

# -*- coding: utf-8 -*-

from pyecharts import Map, Geo

'''
世界地圖
'''

# 世界地圖數據
value = [95.1, 23.2, 43.3, 66.4, 88.5]
attr= ["China", "Canada", "Brazil", "Russia", "United States"]
map0 = Map("世界地圖示例", width=1200, height=600)
map0.add("世界地圖", attr, value, maptype="world",  is_visualmap=True, visual_text_color='#000')

map0.render(path="./data/04-00世界地圖.html")
世界地圖
  1. 水球圖
# -*- coding: utf-8 -*-

from pyecharts import Liquid

'''
水球圖
'''

liquid =Liquid("水球圖")
liquid.add("Liquid", [0.6])
liquid.show_config()
liquid.render(path='./data/03-01水球.html')

# 圓形水球
liquid2 =Liquid("水球圖示例")
liquid2.add("Liquid", [0.6, 0.5, 0.4, 0.3], is_liquid_outline_show=False)
liquid2.show_config()
liquid2.render(path='./data/03-02圓形水球.html')

# 菱形水球
liquid3 =Liquid("水球圖示例")
liquid3.add("Liquid", [0.6, 0.5, 0.4, 0.3], is_liquid_animation=False, shape='diamond')
liquid3.show_config()
liquid3.render(path='./data/03-03菱形水球.html')
水球圖
  1. 極坐標圖
# -*- coding: utf-8 -*-

from pyecharts import Polar

'''
極坐標圖
'''

# 極坐標
radius =['周一', '周二', '周三', '周四', '周五', '周六', '周日']
polar =Polar("極坐標系-堆疊柱狀圖示例", width=1200, height=600)
polar.add("A", [1, 2, 3, 4, 3, 5, 1], radius_data=radius, type='barRadius', is_stack=True)
polar.add("B", [2, 4, 6, 1, 2, 3, 1], radius_data=radius, type='barRadius', is_stack=True)
polar.add("C", [1, 2, 3, 4, 1, 2, 5], radius_data=radius, type='barRadius', is_stack=True)
polar.show_config()
polar.render(path='./data/03-04極坐標.html')
極坐標圖
  1. 雷達圖
# -*- coding: utf-8 -*-

from pyecharts import Radar

'''
雷達圖
'''

# 雷達圖
schema =[ ("銷售", 6500), ("管理", 16000), ("信息技術", 30000), ("客服", 38000), ("研發(fā)", 52000), ("市場", 25000)]
v1 =[[4300, 10000, 28000, 35000, 50000, 19000]]
v2 =[[5000, 14000, 28000, 31000, 42000, 21000]]
radar =Radar()
radar.config(schema)
radar.add("預算分配", v1, is_splitline=True, is_axisline_show=True)
radar.add("實際開銷", v2, label_color=["#4e79a7"], is_area_show=False)
radar.show_config()
radar.render(path='./data/03-05雷達圖.html')
雷達圖

四、不同格式存儲

支持保存做種格式
如果想直接將圖片保存為 png, pdf, gif 格式的文件黍判,可以使用 pyecharts-snapshot。使用該插件請確保你的系統上已經安裝了 Nodejs 環(huán)境篙梢。
1.安裝phantomjs: conda install phantomjs
2.安裝 pyecharts-snapshot : pip install pyecharts-snapshot
2.調用 render 方法 bar.render(path='snapshot.png') 文件結尾可以為 svg/jpeg/png/pdf/gif顷帖。請注意,svg 文件需要你在初始化 bar 的時候設置 renderer='svg'渤滞。

對象.render(path='snapshot.html')
對象.render(path='snapshot.png')
對象.render(path='snapshot.pdf')

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末贬墩,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子妄呕,更是在濱河造成了極大的恐慌陶舞,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绪励,死亡現場離奇詭異肿孵,居然都是意外死亡,警方通過查閱死者的電腦和手機疏魏,發(fā)現死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門停做,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人大莫,你說我怎么就攤上這事蛉腌。” “怎么了只厘?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵烙丛,是天一觀的道長。 經常有香客問我羔味,道長河咽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任介评,我火速辦了婚禮库北,結果婚禮上爬舰,老公的妹妹穿的比我還像新娘。我一直安慰自己寒瓦,他們只是感情好情屹,可當我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著杂腰,像睡著了一般垃你。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上喂很,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天惜颇,我揣著相機與錄音,去河邊找鬼少辣。 笑死凌摄,一個胖子當著我的面吹牛,可吹牛的內容都是我干的漓帅。 我是一名探鬼主播锨亏,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼忙干!你這毒婦竟也來了器予?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤捐迫,失蹤者是張志新(化名)和其女友劉穎乾翔,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體施戴,經...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡反浓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了暇韧。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勾习。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖懈玻,靈堂內的尸體忽然破棺而出巧婶,到底是詐尸還是另有隱情,我是刑警寧澤涂乌,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布艺栈,位于F島的核電站,受9級特大地震影響湾盒,放射性物質發(fā)生泄漏湿右。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一罚勾、第九天 我趴在偏房一處隱蔽的房頂上張望毅人。 院中可真熱鬧吭狡,春花似錦、人聲如沸丈莺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缔俄。三九已至弛秋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間俐载,已是汗流浹背蟹略。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留遏佣,地道東北人挖炬。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像状婶,于是被迫代替她去往敵國和親茅茂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內容