日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python數(shù)據(jù)可視化--pyecharts生成圖表

系統(tǒng) 2250 0

【python可視化系列】python數(shù)據(jù)可視化利器--pyecharts

echarts官網(wǎng)

一、前言

echarts是什么?下面是來(lái)自官方的介紹:?

ECharts,縮寫(xiě)來(lái)自Enterprise Charts,商業(yè)級(jí)數(shù)據(jù)圖表,Echarts 是百度開(kāi)源的一個(gè)數(shù)據(jù)可視化純Javascript(JS) 庫(kù)。主要用于數(shù)據(jù)可視化,可以流暢的運(yùn)行在PC和移動(dòng)設(shè)備上,兼容當(dāng)前絕大部分瀏覽器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底層依賴輕量級(jí)的Canvas類庫(kù)ZRender,提供直觀,生動(dòng),可交互,可高度個(gè)性化定制的數(shù)據(jù)可視化圖表。創(chuàng)新的拖拽重計(jì)算、數(shù)據(jù)視圖、值域漫游等特性大大增強(qiáng)了用戶體驗(yàn),賦予了用戶對(duì)數(shù)據(jù)進(jìn)行挖掘、整合的能力。?

支持折線圖(區(qū)域圖)、柱狀圖(條狀圖)、散點(diǎn)圖(氣泡圖)、K線圖、餅圖(環(huán)形圖)、雷達(dá)圖(填充雷達(dá)圖)、和弦圖、力導(dǎo)向布局圖、地圖、儀表盤、漏斗圖、事件河流圖等12類圖表,同時(shí)提供標(biāo)題,詳情氣泡、圖例、值域、數(shù)據(jù)區(qū)域、時(shí)間軸、工具箱等7個(gè)可交互組件,支持多圖表、組件的聯(lián)動(dòng)和混搭展現(xiàn)。

二、用法及安裝

使用echarts還是需要一定的前端知識(shí),這里介紹一個(gè)python包–pyecharts,利用幾行代碼輕松生成echarts風(fēng)格的圖表。pyecharts 是一個(gè)用于生成 Echarts 圖表的類庫(kù)。實(shí)際上就是 Echarts 與 Python 的對(duì)接。

1、安裝:

pip install pyecharts

2、通用配置項(xiàng)

xyAxis:直角坐標(biāo)系中的 x、y 軸(Line、Bar、Scatter、EffectScatter、Kline)?

dataZoom:dataZoom 組件 用于區(qū)域縮放,從而能自由關(guān)注細(xì)節(jié)的數(shù)據(jù)信息,或者概覽數(shù)據(jù)整體,或者去除離群點(diǎn)的影響。(Line、Bar、Scatter、EffectScatter、Kline、Boxplot)?

legend:圖例組件。圖例組件展現(xiàn)了不同系列的標(biāo)記(symbol),顏色和名字。可以通過(guò)點(diǎn)擊圖例控制哪些系列不顯示。?

label:圖形上的文本標(biāo)簽,可用于說(shuō)明圖形的一些數(shù)據(jù)信息,比如值,名稱等。?

lineStyle:帶線圖形的線的風(fēng)格選項(xiàng)(Line、Polar、Radar、Graph、Parallel)?

grid3D:3D笛卡爾坐標(biāo)系組配置項(xiàng),適用于 3D 圖形。(Bar3D, Line3D, Scatter3D)?

axis3D:3D 笛卡爾坐標(biāo)系 X,Y,Z 軸配置項(xiàng),適用于 3D 圖形。(Bar3D, Line3D, Scatter3D)?

visualMap:是視覺(jué)映射組件,用于進(jìn)行『視覺(jué)編碼』,也就是將數(shù)據(jù)映射到視覺(jué)元素(視覺(jué)通道)?

markLine&markPoint:圖形標(biāo)記組件,用于標(biāo)記指定的特殊數(shù)據(jù),又標(biāo)記線和標(biāo)記點(diǎn)兩種。(Bar、Line、Kline)?

tooltip:提示框組件,用于移動(dòng)或點(diǎn)擊鼠標(biāo)時(shí)彈出數(shù)據(jù)內(nèi)容

3、圖表詳細(xì)

Bar(柱狀圖/條形圖)?

Bar3D(3D 柱狀圖)?

Boxplot(箱形圖)?

EffectScatter(帶有漣漪特效動(dòng)畫(huà)的散點(diǎn)圖)?

Funnel(漏斗圖)?

Gauge(儀表盤)?

Geo(地理坐標(biāo)系)?

Graph(關(guān)系圖)?

HeatMap(熱力圖)?

Kline(K線圖)?

Line(折線/面積圖)?

Line3D(3D 折線圖)?

Liquid(水球圖)?

Map(地圖)?

Parallel(平行坐標(biāo)系)?

Pie(餅圖)?

Polar(極坐標(biāo)系)?

Radar(雷達(dá)圖)?

Sankey(桑基圖)?

Scatter(散點(diǎn)圖)?

Scatter3D(3D 散點(diǎn)圖)?

ThemeRiver(主題河流圖)?

WordCloud(詞云圖)

用戶自定義

Grid 類:并行顯示多張圖?

Overlap 類:結(jié)合不同類型圖表疊加畫(huà)在同張圖上?

Page 類:同一網(wǎng)頁(yè)按順序展示多圖?

Timeline 類:提供時(shí)間線輪播多張圖

四、示例

因篇幅原因,這里只給出了每種圖表類型的示例(代碼 + 生成圖表),目的是為了引起讀者的興趣。

1、我的第一個(gè)圖表

            # encoding: utf-8
# 例子一

            
              from 
            
            pyecharts 
            
              import 
            
            Bar
bar = Bar("我的第一個(gè)圖表", "這里是副標(biāo)題")
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

python數(shù)據(jù)可視化--pyecharts生成圖表_第1張圖片

?

python數(shù)據(jù)可視化--pyecharts生成圖表_第2張圖片

Tips:

可以按右邊的下載按鈕將圖片下載到本地:????add()

主要方法,用于添加圖表的數(shù)據(jù)和設(shè)置各種配置項(xiàng):????show_config()

打印輸出圖表的所有配置項(xiàng):????render()

默認(rèn)將會(huì)在根目錄下生成一個(gè) render.html 的文件,支持 path 參數(shù),設(shè)置文件保存位置,如 render(r"e:my_first_chart.html"),文件用瀏覽器打開(kāi)。

默認(rèn)的編碼類型為 UTF-8,在 Python3 中是沒(méi)什么問(wèn)題的,Python3 對(duì)中文的支持好很多。但是在 Python2 中,編碼的處理是個(gè)很頭疼的問(wèn)題,暫時(shí)沒(méi)能找到完美的解決方法,目前只能通過(guò)文本編輯器自己進(jìn)行二次編碼,我用的是 Visual Studio Code,先通過(guò) Gbk 編碼重新打開(kāi),然后再用 UTF-8 重新保存,這樣用瀏覽器打開(kāi)的話就不會(huì)出現(xiàn)中文亂碼問(wèn)題了。

基本上所有的圖表類型都是這樣繪制的:

chart_name = Type() 初始化具體類型圖表。

add() 添加數(shù)據(jù)及配置項(xiàng)。

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]  # 初始化第一組要展示的數(shù)據(jù)
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]  # 初始化第二組要展示的數(shù)據(jù)
attr = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] # 指定X軸刻度名字

            
              from 
            
            pyecharts 
            
              import 
            
            Bar
bar =Bar("標(biāo)記線和標(biāo)記點(diǎn)示例","副標(biāo)題:展示每一維度數(shù)據(jù)的最小,最大,平均值")
bar.add("商家A", attr, v1,mark_line=["min","average", "max"])
bar.add("商家B", attr, v2, mark_line=["min","average", "max"])
bar.render()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第3張圖片

            # 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]  # 初始化第一組要展示的數(shù)據(jù)
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]  # 初始化第二組要展示的數(shù)據(jù)
attr = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] # 指定X軸刻度名字
bar =Bar("x 軸和 y 軸交換","副標(biāo)題:展示每一維度數(shù)據(jù)的最小,最大,平均值")
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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第4張圖片

再來(lái)介紹個(gè)新功能,如果想在一個(gè)網(wǎng)頁(yè)內(nèi)按順序展示多個(gè)圖的話,推薦使用 Page() 類。
使用步驟
1 、引入 Page
2、使用 Page.add() 增加圖
3、使用 Page.render() 渲染網(wǎng)頁(yè)
顯示 多個(gè)圖

3、柱狀圖數(shù)據(jù)堆疊示例

            # encoding: utf-8

            
              import 
            
            sys
reload(sys)
sys.setdefaultencoding('utf-8')
# 柱狀圖數(shù)據(jù)堆疊示例

            
              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("柱狀圖數(shù)據(jù)堆疊示例")
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
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第5張圖片

?

?

4、蒸發(fā)量和降水量對(duì)比柱狀圖

            # 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]  # 初始化第一組要展示的數(shù)據(jù)
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]  # 初始化第二組要展示的數(shù)據(jù)
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組要展示的數(shù)據(jù)
bar = Bar("Bar chart", "precipitation and evaporation one year")  # 設(shè)置圖標(biāo)的名字和標(biāo)題
bar.add("precipitation", attr, v1, mark_line=["average"], mark_point=["max", "min"])   # 設(shè)置第一組要展示數(shù)據(jù)的方面(原始護(hù)甲,平均值,最大值和最小值)設(shè)定圖例
bar.add("evaporation", attr, v2, mark_line=["average"], mark_point=["max", "min"])     # 設(shè)置第二組
bar.add("test_add_more", attr, v3, mark_line=["average"], mark_point=["max", "min"])    # 設(shè)置第三組
bar.render(path="test_bar.html")  # 設(shè)置要輸出的html頁(yè)面的保存路徑和名字htest_bar.html,默認(rèn)值保存為為當(dāng)前目錄下render.html
#def render(self,path="render.html",template_name="simple_chart.html",object_name="chart",**kwargs):
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第6張圖片

5、散點(diǎn)圖:

            # 4.1、Scatter(散點(diǎn)圖)

            
              from 
            
            pyecharts 
            
              import 
            
            Scatter
v1 =[10, 20, 30, 40, 50, 60]
v2 =[10, 20, 30, 40, 50, 60]
scatter =Scatter("散點(diǎn)圖示例")
scatter.add("A", v1, v2)
scatter.add("B", v1[::-1], v2)
scatter.show_config()
scatter.render()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第7張圖片

5.2 EffectScatter(帶有漣漪特效動(dòng)畫(huà)的散點(diǎn)圖)

            # 4.2

            
              from 
            
            pyecharts 
            
              import 
            
            EffectScatter
v1 =[10, 20, 30, 40, 50, 60]
v2 =[25, 20, 15, 10, 60, 33]
es =EffectScatter("動(dòng)態(tài)散點(diǎn)圖示例")
es.add("effectScatter", v1, v2)
es.render()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第8張圖片

            # 5.3動(dòng)態(tài)散點(diǎn)圖各種圖形示例

            
              from 
            
            pyecharts 
            
              import 
            
            EffectScatter
es =EffectScatter("", "動(dòng)態(tài)散點(diǎn)圖各種圖形示例")
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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第9張圖片

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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第10張圖片

7、儀表盤

            #4 Gauge(儀表盤)

            
              from 
            
            pyecharts 
            
              import 
            
            Gauge
gauge =Gauge("儀表盤示例")
gauge.add("業(yè)務(wù)指標(biāo)", "完成率", 66.66)
gauge.show_config()
gauge.render()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第11張圖片

8、地圖可視化

            ?
          
  1. # 8.1 地圖可視化

  2. # -*- coding:utf-8 -*-

  3. from pyecharts import Geo

  4. data = [(u'廣州', 80), (u'漳州', 180)]

  5. geo = Geo("全國(guó)主要城市空氣質(zhì)量", "data from pm2.5")

  6. attr, value = geo.cast(data)

  7. geo.add("city", attr, value, visual_range=[0, 200], maptype='china', visual_text_color="#fff",

  8. symbol_size=10, is_visualmap=True)

  9. geo.show_config()

  10. geo.render()

python數(shù)據(jù)可視化--pyecharts生成圖表_第12張圖片

python地圖可視化可能遇到問(wèn)題,請(qǐng)參見(jiàn)【python可視化系列】關(guān)于 pyecharts 的 'No coordinate is specified for' 報(bào)錯(cuò)解決

8.2、地圖例子

            ?
          
  1. from pyecharts import Geo

  2. data =[(u"北京", 9), (u"鄂爾多斯", 12), (u"招遠(yuǎn)", 12), (u"舟山", 12), (u"齊齊哈爾", 14), (u"鹽城", 15)]

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

  4. attr, value =geo.cast(data)

  5. geo.add("", attr, value, type="effectScatter", is_random=True, effect_scale=5)

  6. geo.show_config()

  7. geo.render()

python數(shù)據(jù)可視化--pyecharts生成圖表_第13張圖片

9、Graph(關(guān)系圖)

            ?
          
  1. # encoding: utf-8

  2. from pyecharts import Graph

  3. nodes =[{"name": "結(jié)點(diǎn)1", "symbolSize": 10}, {"name": "結(jié)點(diǎn)2", "symbolSize": 20}, {"name": "結(jié)點(diǎn)3", "symbolSize": 30},

  4. {"name": "結(jié)點(diǎn)4", "symbolSize": 40}, {"name": "結(jié)點(diǎn)5", "symbolSize": 10}, {"name": "結(jié)點(diǎn)6", "symbolSize": 40},

  5. {"name": "結(jié)點(diǎn)7", "symbolSize": 30}, {"name": "結(jié)點(diǎn)8", "symbolSize": 20}]

  6. links =[]

  7. p=0

  8. for i in nodes:

  9. if (p % 2 == 1):

  10. continue

  11. p += 1

  12. for j in nodes:

  13. ?
  14. links.append({"source": i.get('name'), "target": j.get('name')})

  15. graph = Graph("關(guān)系圖-環(huán)形布局示例")

  16. graph.add("", nodes, links, is_label_show=True, repulsion=8000, layout='circular', label_text_color=None)

  17. graph.show_config()

  18. graph.render()

python數(shù)據(jù)可視化--pyecharts生成圖表_第14張圖片

10、微博轉(zhuǎn)發(fā)關(guān)系圖

            ?
          
  1. # encoding: utf-8

  2. #微博轉(zhuǎn)發(fā)關(guān)系圖

  3. from pyecharts import Graph

  4. import json

  5. with open("jsonweibo.json", "r") as f:

  6. j =json.load(f)

  7. nodes, links, categories, cont, mid, userl =j

  8. graph =Graph("微博轉(zhuǎn)發(fā)關(guān)系圖", width=1200, height=600)

  9. graph.add("", nodes, links, categories, label_pos="right", repulsion=50, is_legend_show=False, line_curve=0.2, label_text_color=None)

  10. graph.show_config()

  11. graph.render()

python數(shù)據(jù)可視化--pyecharts生成圖表_第15張圖片

11、折線圖-階梯圖示例

            ?
          
  1. #11.1 Line(折線/階梯圖)

  2. from pyecharts import Line

  3. attr =["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"]

  4. v1 =[5, 20, 36, 10, 10, 100]

  5. v2 =[55, 60, 16, 20, 15, 80]

  6. line =Line("折線圖示例")

  7. line.add("商家A", attr, v1, mark_point=["average"])

  8. line.add("商家B", attr, v2, is_smooth=True, mark_line=["max", "average"])

  9. line.show_config()

  10. line.render()

  11. line =Line("折線圖-階梯圖示例")

  12. line.add("商家A", attr, v1, is_step=True, is_label_show=True)

  13. line.show_config()

  14. line.render()

python數(shù)據(jù)可視化--pyecharts生成圖表_第16張圖片

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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第17張圖片

12、水球圖示例

            # 12.1、Line(水球圖示例)

            
              from 
            
            pyecharts 
            
              import 
            
            Liquid
liquid =Liquid("水球圖示例")
liquid.add("Liquid", [0.6])
liquid.show_config()
liquid.render()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第18張圖片

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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第19張圖片

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()

          

python數(shù)據(jù)可視化--pyecharts生成圖表_第20張圖片

13、Map 結(jié)合 VisualMap 示例

            
              from 
            
            pyecharts 
            
              import 
            
            Map
value =[155, 10, 66, 78, 33, 80, 190, 53, 49.6]
attr =["福建", "山東", "北京", "上海", "甘肅", "新疆", "河南", "廣西", "西藏"]
map=Map("Map 結(jié)合 VisualMap 示例", width=1200, height=600)
map.add("", attr, value, maptype='china', is_visualmap=True, visual_text_color='#000')
map.show_config()
map.render()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第21張圖片

14、省級(jí)地圖示例

            # encoding: utf-8

            
              import 
            
            sys
reload(sys)
sys.setdefaultencoding('utf-8')

            
              from 
            
            pyecharts 
            
              import 
            
            Map
value =[20, 190, 253, 77, 65]
attr =['許昌市', '鄭州市', '開(kāi)封市', '漯河市', '信陽(yáng)市市']
map=Map("河南地圖示例", width=1200, height=600)
map.add("", attr, value, maptype=u'河南', is_visualmap=True, visual_text_color='#000')
map.show_config()
map.render()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第22張圖片

15、 Parallel(平行坐標(biāo)系)

            # encoding: utf-8

            
              import 
            
            sys
reload(sys)
sys.setdefaultencoding('utf-8')
#10 Parallel(平行坐標(biāo)系)

            
              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": "等級(jí)", "type": "category", "data": ['優(yōu)', '良', '輕度污染', '中度污染', '重度污染', '嚴(yán)重污染']}]
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("平行坐標(biāo)系-用戶自定義指示器")
parallel.config(c_schema=c_schema)
parallel.add("parallel", data)
parallel.show_config()
parallel.render()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第23張圖片

16、3D散點(diǎn)圖示例:

            # encoding: utf-8
# 3D 散點(diǎn)圖示例
# 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 散點(diǎn)圖示例", width=1200, height=600)
scatter3D.add("", data, is_visualmap=True, visual_range_color=range_color)
page.add(scatter3D)  # step 2
page.render()        # step 3
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第24張圖片

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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第25張圖片

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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第26張圖片

?

18、Polar(極坐標(biāo)系)

18.1、極坐標(biāo)系-堆疊柱狀圖示例

            # encoding: utf-8
#12 Polar(極坐標(biāo)系)

            
              from 
            
            pyecharts 
            
              import 
            
            Polar
radius =['周一', '周二', '周三', '周四', '周五', '周六', '周日']
polar =Polar("極坐標(biāo)系-堆疊柱狀圖示例", 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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第27張圖片

18.2、極坐標(biāo)系-堆疊柱狀圖示例

            
              from 
            
            pyecharts 
            
              import 
            
            Polar
radius =['周一', '周二', '周三', '周四', '周五', '周六', '周日']
polar =Polar("極坐標(biāo)系-堆疊柱狀圖示例", 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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第28張圖片

19、Radar(雷達(dá)圖)

            #13 Radar(雷達(dá)圖)

            
              from 
            
            pyecharts 
            
              import 
            
            Radar
schema =[ ("銷售", 6500), ("管理", 16000), ("信息技術(shù)", 30000), ("客服", 38000), ("研發(fā)", 52000), ("市場(chǎng)", 25000)]
v1 =[[4300, 10000, 28000, 35000, 50000, 19000]]
v2 =[[5000, 14000, 28000, 31000, 42000, 21000]]
radar =Radar()
radar.config(schema)
radar.add("預(yù)算分配", v1, is_splitline=True, is_axisline_show=True)
radar.add("實(shí)際開(kāi)銷", v2, label_color=["#4e79a7"], is_area_show=False)
radar.show_config()
radar.render()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第29張圖片

19.2、雷達(dá)圖示例

            
              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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第30張圖片

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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第31張圖片

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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第32張圖片

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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第33張圖片

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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第34張圖片

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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第35張圖片

?

24、各類電影中"好片"所占的比例

            
              from 
            
            pyecharts 
            
              import 
            
            Pie
pie =Pie('各類電影中"好片"所占的比例', "數(shù)據(jù)來(lái)著豆瓣", 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("", ["愛(ài)情", ""], [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("", ["冒險(xiǎn)", ""], [27, 73], center=[90, 30], radius=[18, 24], label_pos='center', is_label_show=True, label_text_color=None)
pie.add("", ["動(dòng)作", ""], [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()
          

python數(shù)據(jù)可視化--pyecharts生成圖表_第36張圖片

參考:https://www.sohu.com/a/158701638_609198


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 通化县| 新郑市| 东兴市| 光山县| 长乐市| 泸西县| 定远县| 兴文县| 玉门市| 沐川县| 扶绥县| 湟中县| 上杭县| 鱼台县| 弋阳县| 六安市| 正安县| 崇左市| 精河县| 鱼台县| 堆龙德庆县| 泰安市| 砚山县| 称多县| 黑龙江省| 喜德县| 新巴尔虎左旗| 九寨沟县| 化隆| 红桥区| 罗源县| 太和县| 玉林市| 开化县| 泗水县| 蒲城县| 八宿县| 耒阳市| 法库县| 额尔古纳市| 五常市|