【python可視化系列】python數據可視化利器--pyecharts
echarts官網
一、前言
echarts是什么?下面是來自官方的介紹:?
ECharts,縮寫來自Enterprise Charts,商業級數據圖表,Echarts 是百度開源的一個數據可視化純Javascript(JS) 庫。主要用于數據可視化,可以流暢的運行在PC和移動設備上,兼容當前絕大部分瀏覽器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底層依賴輕量級的Canvas類庫ZRender,提供直觀,生動,可交互,可高度個性化定制的數據可視化圖表。創新的拖拽重計算、數據視圖、值域漫游等特性大大增強了用戶體驗,賦予了用戶對數據進行挖掘、整合的能力。?
支持折線圖(區域圖)、柱狀圖(條狀圖)、散點圖(氣泡圖)、K線圖、餅圖(環形圖)、雷達圖(填充雷達圖)、和弦圖、力導向布局圖、地圖、儀表盤、漏斗圖、事件河流圖等12類圖表,同時提供標題,詳情氣泡、圖例、值域、數據區域、時間軸、工具箱等7個可交互組件,支持多圖表、組件的聯動和混搭展現。
二、用法及安裝
使用echarts還是需要一定的前端知識,這里介紹一個python包–pyecharts,利用幾行代碼輕松生成echarts風格的圖表。pyecharts 是一個用于生成 Echarts 圖表的類庫。實際上就是 Echarts 與 Python 的對接。
1、安裝:
pip install pyecharts
2、通用配置項
xyAxis:直角坐標系中的 x、y 軸(Line、Bar、Scatter、EffectScatter、Kline)?
dataZoom:dataZoom 組件 用于區域縮放,從而能自由關注細節的數據信息,或者概覽數據整體,或者去除離群點的影響。(Line、Bar、Scatter、EffectScatter、Kline、Boxplot)?
legend:圖例組件。圖例組件展現了不同系列的標記(symbol),顏色和名字。可以通過點擊圖例控制哪些系列不顯示。?
label:圖形上的文本標簽,可用于說明圖形的一些數據信息,比如值,名稱等。?
lineStyle:帶線圖形的線的風格選項(Line、Polar、Radar、Graph、Parallel)?
grid3D:3D笛卡爾坐標系組配置項,適用于 3D 圖形。(Bar3D, Line3D, Scatter3D)?
axis3D:3D 笛卡爾坐標系 X,Y,Z 軸配置項,適用于 3D 圖形。(Bar3D, Line3D, Scatter3D)?
visualMap:是視覺映射組件,用于進行『視覺編碼』,也就是將數據映射到視覺元素(視覺通道)?
markLine&markPoint:圖形標記組件,用于標記指定的特殊數據,又標記線和標記點兩種。(Bar、Line、Kline)?
tooltip:提示框組件,用于移動或點擊鼠標時彈出數據內容
3、圖表詳細
Bar(柱狀圖/條形圖)?
Bar3D(3D 柱狀圖)?
Boxplot(箱形圖)?
EffectScatter(帶有漣漪特效動畫的散點圖)?
Funnel(漏斗圖)?
Gauge(儀表盤)?
Geo(地理坐標系)?
Graph(關系圖)?
HeatMap(熱力圖)?
Kline(K線圖)?
Line(折線/面積圖)?
Line3D(3D 折線圖)?
Liquid(水球圖)?
Map(地圖)?
Parallel(平行坐標系)?
Pie(餅圖)?
Polar(極坐標系)?
Radar(雷達圖)?
Sankey(桑基圖)?
Scatter(散點圖)?
Scatter3D(3D 散點圖)?
ThemeRiver(主題河流圖)?
WordCloud(詞云圖)
用戶自定義
Grid 類:并行顯示多張圖?
Overlap 類:結合不同類型圖表疊加畫在同張圖上?
Page 類:同一網頁按順序展示多圖?
Timeline 類:提供時間線輪播多張圖
四、示例
因篇幅原因,這里只給出了每種圖表類型的示例(代碼 + 生成圖表),目的是為了引起讀者的興趣。
1、我的第一個圖表
# encoding: utf-8 # 例子一 from pyecharts import Bar bar = Bar("我的第一個圖表", "這里是副標題") bar.add("服裝", ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"], [5, 20, 36, 10, 75, 90],is_more_utils=True) bar.show_config() bar.render()
http://localhost:63342/PycharmProjects/Attempt_new/try_echarts/render.html
?
Tips:
可以按右邊的下載按鈕將圖片下載到本地:????add()
主要方法,用于添加圖表的數據和設置各種配置項:????show_config()
打印輸出圖表的所有配置項:????render()
默認將會在根目錄下生成一個 render.html 的文件,支持 path 參數,設置文件保存位置,如 render(r"e:my_first_chart.html"),文件用瀏覽器打開。
默認的編碼類型為 UTF-8,在 Python3 中是沒什么問題的,Python3 對中文的支持好很多。但是在 Python2 中,編碼的處理是個很頭疼的問題,暫時沒能找到完美的解決方法,目前只能通過文本編輯器自己進行二次編碼,我用的是 Visual Studio Code,先通過 Gbk 編碼重新打開,然后再用 UTF-8 重新保存,這樣用瀏覽器打開的話就不會出現中文亂碼問題了。
基本上所有的圖表類型都是這樣繪制的:
chart_name = Type() 初始化具體類型圖表。
add() 添加數據及配置項。
render() 生成 .html 文件。
2、 Bar(柱狀圖/條形圖)
# 2.1 import sys reload(sys) sys.setdefaultencoding('utf-8') v1 = [1.1, 4.9, 7.0, 23.2, 25.6, 76.7, 120.6, 162.2, 32.6, 20.0, 6.4, 3.3] # 初始化第一組要展示的數據 v2 = [5.8, 5.9, 9.0, 26.4, 28.7, 100.7, 195.6, 182.2, 48.7, 18.8, 6.0, 5.7] # 初始化第二組要展示的數據 attr = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] # 指定X軸刻度名字 from pyecharts import Bar bar =Bar("標記線和標記點示例","副標題:展示每一維度數據的最小,最大,平均值") bar.add("商家A", attr, v1,mark_line=["min","average", "max"]) bar.add("商家B", attr, v2, mark_line=["min","average", "max"]) bar.render()
# 2.2 # encoding: utf-8 from pyecharts import Bar v1 = [1.1, 4.9, 7.0, 23.2, 25.6, 76.7, 120.6, 162.2, 32.6, 20.0, 6.4, 3.3] # 初始化第一組要展示的數據 v2 = [5.8, 5.9, 9.0, 26.4, 28.7, 100.7, 195.6, 182.2, 48.7, 18.8, 6.0, 5.7] # 初始化第二組要展示的數據 attr = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] # 指定X軸刻度名字 bar =Bar("x 軸和 y 軸交換","副標題:展示每一維度數據的最小,最大,平均值") bar.add("商家A", attr, v1,mark_line=["min","average", "max"]) bar.add("商家B", attr, v2, mark_line=["min","average", "max"],is_convert=True) bar.render()
再來介紹個新功能,如果想在一個網頁內按順序展示多個圖的話,推薦使用 Page() 類。
使用步驟
1 、引入 Page
2、使用 Page.add() 增加圖
3、使用 Page.render() 渲染網頁
顯示 多個圖
3、柱狀圖數據堆疊示例
# encoding: utf-8 import sys reload(sys) sys.setdefaultencoding('utf-8') # 柱狀圖數據堆疊示例 from pyecharts import Bar, Scatter3D from pyecharts import Page page = Page() # step 1 # 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) page.add(bar) # step 2 page.render() # step 3
?
?
4、蒸發量和降水量對比柱狀圖
# encoding: utf-8 from pyecharts import Bar #attr = ["{}month".format(i) for i in range(1, 13)] # 指定X軸刻度名字 attr = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] # 指定X軸刻度名字 v1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3] # 初始化第一組要展示的數據 v2 = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3] # 初始化第二組要展示的數據 v3 = [4.0, 6.9, 9.0, 26.2, 28.6, 75.7, 139.6, 168.2, 28.6, 35.0, 2.4, 5.3] # 初始化第er組要展示的數據 bar = Bar("Bar chart", "precipitation and evaporation one year") # 設置圖標的名字和標題 bar.add("precipitation", attr, v1, mark_line=["average"], mark_point=["max", "min"]) # 設置第一組要展示數據的方面(原始護甲,平均值,最大值和最小值)設定圖例 bar.add("evaporation", attr, v2, mark_line=["average"], mark_point=["max", "min"]) # 設置第二組 bar.add("test_add_more", attr, v3, mark_line=["average"], mark_point=["max", "min"]) # 設置第三組 bar.render(path="test_bar.html") # 設置要輸出的html頁面的保存路徑和名字htest_bar.html,默認值保存為為當前目錄下render.html #def render(self,path="render.html",template_name="simple_chart.html",object_name="chart",**kwargs):
5、散點圖:
# 4.1、Scatter(散點圖) from pyecharts import Scatter v1 =[10, 20, 30, 40, 50, 60] v2 =[10, 20, 30, 40, 50, 60] scatter =Scatter("散點圖示例") scatter.add("A", v1, v2) scatter.add("B", v1[::-1], v2) scatter.show_config() scatter.render()
5.2 EffectScatter(帶有漣漪特效動畫的散點圖)
# 4.2 from pyecharts import EffectScatter v1 =[10, 20, 30, 40, 50, 60] v2 =[25, 20, 15, 10, 60, 33] es =EffectScatter("動態散點圖示例") es.add("effectScatter", v1, v2) es.render()
# 5.3動態散點圖各種圖形示例 from pyecharts import EffectScatter es =EffectScatter("", "動態散點圖各種圖形示例") es.add("pin_sample", [20], [20], symbol_size=20, effect_scale=3.5, effect_period=3, symbol="pin") es.add("rect_sample", [30], [30], symbol_size=12, effect_scale=4.5, effect_period=4,symbol="rect") es.add("roundRect_sample", [40], [40], symbol_size=30, effect_scale=5.5, effect_period=5,symbol="roundRect") es.add("diamond_sample", [50], [50], symbol_size=10, effect_scale=6.5, effect_brushtype='fill',symbol="diamond") es.add("arrow_sample", [60], [60], symbol_size=16, effect_scale=5.5, effect_period=3,symbol="arrow") es.add("triangle_sample", [70], [70], symbol_size=6, effect_scale=4.5, effect_period=3,symbol="triangle") es.show_config() es.render()
6、漏斗圖
# Funnel(漏斗圖) 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()
7、儀表盤
#4 Gauge(儀表盤) from pyecharts import Gauge gauge =Gauge("儀表盤示例") gauge.add("業務指標", "完成率", 66.66) gauge.show_config() gauge.render()
8、地圖可視化
?
-
# 8.1 地圖可視化
-
# -*- coding:utf-8 -*-
-
from pyecharts import Geo
-
data = [(u'廣州', 80), (u'漳州', 180)]
-
geo = Geo("全國主要城市空氣質量", "data from pm2.5")
-
attr, value = geo.cast(data)
-
geo.add("city", attr, value, visual_range=[0, 200], maptype='china', visual_text_color="#fff",
-
symbol_size=10, is_visualmap=True)
-
geo.show_config()
-
geo.render()
python地圖可視化可能遇到問題,請參見【python可視化系列】關于 pyecharts 的 'No coordinate is specified for' 報錯解決
8.2、地圖例子
?
-
from pyecharts import Geo
-
data =[(u"北京", 9), (u"鄂爾多斯", 12), (u"招遠", 12), (u"舟山", 12), (u"齊齊哈爾", 14), (u"鹽城", 15)]
-
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, type="effectScatter", is_random=True, effect_scale=5)
-
geo.show_config()
-
geo.render()
9、Graph(關系圖)
?
-
# encoding: utf-8
-
from pyecharts import Graph
-
nodes =[{"name": "結點1", "symbolSize": 10}, {"name": "結點2", "symbolSize": 20}, {"name": "結點3", "symbolSize": 30},
-
{"name": "結點4", "symbolSize": 40}, {"name": "結點5", "symbolSize": 10}, {"name": "結點6", "symbolSize": 40},
-
{"name": "結點7", "symbolSize": 30}, {"name": "結點8", "symbolSize": 20}]
-
links =[]
-
p=0
-
for i in nodes:
-
if (p % 2 == 1):
-
continue
-
p += 1
-
for j in nodes:
- ?
-
links.append({"source": i.get('name'), "target": j.get('name')})
-
graph = Graph("關系圖-環形布局示例")
-
graph.add("", nodes, links, is_label_show=True, repulsion=8000, layout='circular', label_text_color=None)
-
graph.show_config()
-
graph.render()
10、微博轉發關系圖
?
-
# encoding: utf-8
-
#微博轉發關系圖
-
from pyecharts import Graph
-
import json
-
with open("jsonweibo.json", "r") as f:
-
j =json.load(f)
-
nodes, links, categories, cont, mid, userl =j
-
graph =Graph("微博轉發關系圖", width=1200, height=600)
-
graph.add("", nodes, links, categories, label_pos="right", repulsion=50, is_legend_show=False, line_curve=0.2, label_text_color=None)
-
graph.show_config()
-
graph.render()
11、折線圖-階梯圖示例
?
-
#11.1 Line(折線/階梯圖)
-
from pyecharts import Line
-
attr =["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"]
-
v1 =[5, 20, 36, 10, 10, 100]
-
v2 =[55, 60, 16, 20, 15, 80]
-
line =Line("折線圖示例")
-
line.add("商家A", attr, v1, mark_point=["average"])
-
line.add("商家B", attr, v2, is_smooth=True, mark_line=["max", "average"])
-
line.show_config()
-
line.render()
-
line =Line("折線圖-階梯圖示例")
-
line.add("商家A", attr, v1, is_step=True, is_label_show=True)
-
line.show_config()
-
line.render()
11.2、折線圖/面積圖示例
# 8、Line(折線圖/面積圖) from pyecharts import Line attr =["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"] v1 =[5, 20, 36, 10, 10, 100] v2 =[55, 60, 16, 20, 15, 80] line =Line("折線圖-面積圖示例") line.add("商家A", attr, v1, is_fill=True, line_opacity=0.2, area_opacity=0.4, symbol=None) line.add("商家B", attr, v2, is_fill=True, area_color='#000', area_opacity=0.3, is_smooth=True) line.show_config() line.render()
12、水球圖示例
# 12.1、Line(水球圖示例) from pyecharts import Liquid liquid =Liquid("水球圖示例") liquid.add("Liquid", [0.6]) liquid.show_config() liquid.render()
12.2、水球圖示例二
from pyecharts import Liquid liquid =Liquid("水球圖示例") liquid.add("Liquid", [0.6, 0.5, 0.4, 0.3], is_liquid_outline_show=False) liquid.show_config() liquid.render()
12.3、水球圖示例:
from pyecharts import Liquid liquid =Liquid("水球圖示例") liquid.add("Liquid", [0.6, 0.5, 0.4, 0.3], is_liquid_animation=False, shape='diamond') liquid.show_config() liquid.render()
13、Map 結合 VisualMap 示例
from pyecharts import Map value =[155, 10, 66, 78, 33, 80, 190, 53, 49.6] attr =["福建", "山東", "北京", "上海", "甘肅", "新疆", "河南", "廣西", "西藏"] map=Map("Map 結合 VisualMap 示例", width=1200, height=600) map.add("", attr, value, maptype='china', is_visualmap=True, visual_text_color='#000') map.show_config() map.render()
14、省級地圖示例
# encoding: utf-8 import sys reload(sys) sys.setdefaultencoding('utf-8') from pyecharts import Map value =[20, 190, 253, 77, 65] attr =['許昌市', '鄭州市', '開封市', '漯河市', '信陽市市'] map=Map("河南地圖示例", width=1200, height=600) map.add("", attr, value, maptype=u'河南', is_visualmap=True, visual_text_color='#000') map.show_config() map.render()
15、 Parallel(平行坐標系)
# encoding: utf-8 import sys reload(sys) sys.setdefaultencoding('utf-8') #10 Parallel(平行坐標系) from pyecharts import Parallel c_schema =[ {"dim": 0, "name": "data"}, {"dim": 1, "name": "AQI"}, {"dim": 2, "name": "PM2.5"}, {"dim": 3, "name": "PM10"}, {"dim": 4, "name": "CO"}, {"dim": 5, "name": "NO2"}, {"dim": 6, "name": "CO2"}, {"dim": 7, "name": "等級", "type": "category", "data": ['優', '良', '輕度污染', '中度污染', '重度污染', '嚴重污染']}] data =[ [1, 91, 45, 125, 0.82, 34, 23, "良"], [2, 65, 27, 78, 0.86, 45, 29, "良"], [3, 83, 60, 84, 1.09, 73, 27, "良"], [4, 109, 81, 121, 1.28, 68, 51, "輕度污染"], [5, 106, 77, 114, 1.07, 55, 51, "輕度污染"], [6, 109, 81, 121, 1.28, 68, 51, "輕度污染"], [7, 106, 77, 114, 1.07, 55, 51, "輕度污染"], [8, 89, 65, 78, 0.86, 51, 26, "良"], [9, 53, 33, 47, 0.64, 50, 17, "良"], [10, 80, 55, 80, 1.01, 75, 24, "良"], [11, 117, 81, 124, 1.03, 45, 24, "輕度污染"], [12, 99, 71, 142, 1.1, 62, 42, "良"], [13, 95, 69, 130, 1.28, 74, 50, "良"], [14, 116, 87, 131, 1.47, 84, 40, "輕度污染"]] parallel =Parallel("平行坐標系-用戶自定義指示器") parallel.config(c_schema=c_schema) parallel.add("parallel", data) parallel.show_config() parallel.render()
16、3D散點圖示例:
# encoding: utf-8 # 3D 散點圖示例 # scatter3D import random from pyecharts import Bar, Scatter3D from pyecharts import Page page = Page() # step 1 data = [[random.randint(0, 100), random.randint(0, 100), random.randint(0, 100)] for _ in range(80)] range_color = ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'] scatter3D = Scatter3D("3D 散點圖示例", width=1200, height=600) scatter3D.add("", data, is_visualmap=True, visual_range_color=range_color) page.add(scatter3D) # step 2 page.render() # step 3
17、餅狀圖示例:
# encoding: 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.show_config() pie.render()
17.2、餅圖-玫瑰圖示例
# encoding: utf-8 from pyecharts import Pie attr =["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"] v1 =[11, 12, 13, 10, 10, 10] v2 =[19, 21, 32, 20, 20, 33] pie =Pie("餅圖-玫瑰圖示例", title_pos='center', width=900) pie.add("商品A", attr, v1, center=[25, 50], is_random=True, radius=[30, 75], rosetype='radius') pie.add("商品B", attr, v2, center=[75, 50], is_random=True, radius=[30, 75], rosetype='area', is_legend_show=False, is_label_show=True) pie.show_config() pie.render()
?
18、Polar(極坐標系)
18.1、極坐標系-堆疊柱狀圖示例
# encoding: utf-8 #12 Polar(極坐標系) 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()
18.2、極坐標系-堆疊柱狀圖示例
from pyecharts import Polar radius =['周一', '周二', '周三', '周四', '周五', '周六', '周日'] polar =Polar("極坐標系-堆疊柱狀圖示例", width=1200, height=600) polar.add("", [1, 2, 3, 4, 3, 5, 1], radius_data=radius, type='barAngle', is_stack=True) polar.add("", [2, 4, 6, 1, 2, 3, 1], radius_data=radius, type='barAngle', is_stack=True) polar.add("", [1, 2, 3, 4, 1, 2, 5], radius_data=radius, type='barAngle', is_stack=True) polar.show_config() polar.render()
19、Radar(雷達圖)
#13 Radar(雷達圖) from pyecharts import Radar schema =[ ("銷售", 6500), ("管理", 16000), ("信息技術", 30000), ("客服", 38000), ("研發", 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()
19.2、雷達圖示例
from pyecharts import Radar value_bj =[ [55, 9, 56, 0.46, 18, 6, 1], [25, 11, 21, 0.65, 34, 9, 2], [56, 7, 63, 0.3, 14, 5, 3], [33, 7, 29, 0.33, 16, 6, 4]] value_sh =[ [91, 45, 125, 0.82, 34, 23, 1], [65, 27, 78, 0.86, 45, 29, 2], [83, 60, 84, 1.09, 73, 27, 3], [109, 81, 121, 1.28, 68, 51, 4]] c_schema=[{"name": "AQI", "max": 300, "min": 5}, {"name": "PM2.5", "max": 250, "min": 20}, {"name": "PM10", "max": 300, "min": 5}, {"name": "CO", "max": 5}, {"name": "NO2", "max": 200}, {"name": "SO2", "max": 100}] radar =Radar() radar.config(c_schema=c_schema, shape='circle') radar.add("北京", value_bj, item_color="#f9713c", symbol=None) radar.add("上海", value_sh, item_color="#b3e4a1", symbol=None) radar.show_config() radar.render()
20、詞云圖1:
?
#WordCloud(詞云圖) from pyecharts import WordCloud name =['Sam S Club', 'Macys', 'Amy Schumer', 'Jurassic World', 'Charter Communications', 'Chick Fil A', 'Planet Fitness', 'Pitch Perfect', 'Express', 'Home', 'Johnny Depp', 'Lena Dunham', 'Lewis Hamilton', 'KXAN', 'Mary Ellen Mark', 'Farrah Abraham', 'Rita Ora', 'Serena Williams', 'NCAA baseball tournament', 'Point Break'] value =[10000, 6181, 4386, 4055, 2467, 2244, 1898, 1484, 1112, 965, 847, 582, 555, 550, 462, 366, 360, 282, 273, 265] wordcloud =WordCloud(width=1300, height=620) wordcloud.add("詞云名字", name, value, word_size_range=[20, 100]) wordcloud.show_config() wordcloud.render()
20.2、詞云圖2:
?
#WordCloud(詞云圖) from pyecharts import WordCloud name =['Sam S Club', 'Macys', 'Amy Schumer', 'Jurassic World', 'Charter Communications', 'Chick Fil A', 'Planet Fitness', 'Pitch Perfect', 'Express', 'Home', 'Johnny Depp', 'Lena Dunham', 'Lewis Hamilton', 'KXAN', 'Mary Ellen Mark', 'Farrah Abraham', 'Rita Ora', 'Serena Williams', 'NCAA baseball tournament', 'Point Break'] value =[10000, 6181, 4386, 4055, 2467, 2244, 1898, 1484, 1112, 965, 847, 582, 555, 550, 462, 366, 360, 282, 273, 265] wordcloud =WordCloud(width=1300, height=620) wordcloud.add("", name, value, word_size_range=[30, 100], shape='diamond') wordcloud.show_config() wordcloud.render()
21、折線圖示例:
?
# 折線圖示例 from pyecharts import Line attr =['周一', '周二', '周三', '周四', '周五', '周六', '周日',] line =Line("折線圖示例") line.add("最高氣溫", attr, [11, 11, 15, 13, 12, 13, 10], mark_point=["max", "min"], mark_line=["average"]) line.add("最低氣溫", attr, [1, -2, 2, 5, 3, 2, 0], mark_point=["max", "min"], mark_line=["average"], yaxis_formatter="°C") line.show_config() line.render()
22、嵌套餅圖
?
from pyecharts import Pie pie =Pie("餅圖示例", title_pos='center', width=1000, height=600) pie.add("", ['A', 'B', 'C', 'D', 'E', 'F'], [335, 321, 234, 135, 251, 148], radius=[40, 55],is_label_show=True) pie.add("", ['H', 'I', 'J'], [335, 679, 204], radius=[0, 30], legend_orient='vertical', legend_pos='left') pie.show_config() pie.render()
23、餅圖再嵌套
?
import random from pyecharts import Pie attr =['A', 'B', 'C', 'D', 'E', 'F'] pie =Pie("餅圖示例", width=1000, height=600) pie.add("", attr, [random.randint(0, 100) for _ in range(6)], radius=[50, 55], center=[25, 50],is_random=True) pie.add("", attr, [random.randint(20, 100) for _ in range(6)], radius=[0, 45], center=[25, 50],rosetype='area') pie.add("", attr, [random.randint(0, 100) for _ in range(6)], radius=[50, 55], center=[65, 50],is_random=True) pie.add("", attr, [random.randint(20, 100) for _ in range(6)], radius=[0, 45], center=[65, 50],rosetype='radius') pie.show_config() pie.render()
?
24、各類電影中"好片"所占的比例
from pyecharts import Pie pie =Pie('各類電影中"好片"所占的比例', "數據來著豆瓣", title_pos='center') pie.add("", ["劇情", ""], [25, 75], center=[10, 30], radius=[18, 24], label_pos='center', is_label_show=True, label_text_color=None, ) pie.add("", ["奇幻", ""], [24, 76], center=[30, 30], radius=[18, 24], label_pos='center', is_label_show=True, label_text_color=None, legend_pos='left') pie.add("", ["愛情", ""], [14, 86], center=[50, 30], radius=[18, 24], label_pos='center', is_label_show=True, label_text_color=None) pie.add("", ["驚悚", ""], [11, 89], center=[70, 30], radius=[18, 24], label_pos='center', is_label_show=True, label_text_color=None) pie.add("", ["冒險", ""], [27, 73], center=[90, 30], radius=[18, 24], label_pos='center', is_label_show=True, label_text_color=None) pie.add("", ["動作", ""], [15, 85], center=[10, 70], radius=[18, 24], label_pos='center', is_label_show=True, label_text_color=None) pie.add("", ["喜劇", ""], [54, 46], center=[30, 70], radius=[18, 24], label_pos='center', is_label_show=True, label_text_color=None) pie.add("", ["科幻", ""], [26, 74], center=[50, 70], radius=[18, 24], label_pos='center', is_label_show=True, label_text_color=None) pie.add("", ["懸疑", ""], [25, 75], center=[70, 70], radius=[18, 24], label_pos='center', is_label_show=True, label_text_color=None) pie.add("", ["犯罪", ""], [28, 72], center=[90, 70], radius=[18, 24], label_pos='center', is_label_show=True, label_text_color=None, is_legend_show=True, legend_top="center") pie.show_config() pie.render()
參考:https://www.sohu.com/a/158701638_609198
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
