亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python 數據可視化pyecharts的使用詳解

系統 1662 0

什么是pyecharts?  

pyecharts 是一個用于生成 Echarts 圖表的類庫。

echarts是百度開源的一個數據可視化 JS 庫,主要用于數據可視化。pyecharts 是一個用于生成 Echarts 圖表的類庫。實際上就是 Echarts 與 Python 的對接。

使用 pyecharts可以生成獨立的網頁,也可以在 flask , Django中集成使用。

pyecharts包含的圖表

  • 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 類:提供時間線輪播多張圖

pyecharts安裝

            
pip install pyecharts
          

這里要專門說明一下,自從 0.3.2 開始,為了縮減項目本身的體積以及維持 pyecharts 項目的輕量化運行,pyecharts 將不再自帶地圖 js 文件。如用戶需要用到地圖圖表(Geo、Map),可自行安裝對應的地圖文件包。

否則在用到這兩個包的時候,并能完整的顯示地圖效果。

全球國家地圖:echarts-countries-pypkg(1.9MB): 世界地圖和 213 個國家,包括中國地圖

中國省級地圖:echarts-china-provinces-pypkg(730KB):23 個省,5 個自治區

中國市級地圖:echarts-china-cities-pypkg(3.8MB):370 個中國城市

Windows下通過已下的pip命令進行安裝

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

          

Linux下通過以下的pip命令進行安裝

            
sudo pip3 install echarts-countries-pypkg 
sudo pip3 install echarts-china-provinces-pypkg
sudo pip3 install echarts-china-cities-pypkg
sudo pip3 install echarts-countries-pypkg 
sudo pip3 install echarts-china-provinces-pypkg
sudo pip3 install echarts-china-cities-pypkg
          

相關函數、參數說明

先介紹一些可能會用到的基本函數:

  • 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 文件。

基本圖表使用實例

Bar(柱狀圖/條形圖)

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

Python 數據可視化pyecharts的使用詳解_第1張圖片

            
from pyecharts import Bar
bar =Bar("x 軸和 y 軸交換")
bar.add("商家A", attr, v1)
bar.add("商家B", attr, v2, is_convert=True)
bar.render()
          

Python 數據可視化pyecharts的使用詳解_第2張圖片

說明:如下代碼,atf_tb1屬性是并不會顯示在圖表中的

            
bar = Bar()
bar.add('格式化',["atf_tb1","shop"],[10,50])
bar.add("范圍", ["shop"], [120])
bar.render()
          

Python 數據可視化pyecharts的使用詳解_第3張圖片

Python 數據可視化pyecharts的使用詳解_第4張圖片

可以看到atf_tb1并沒有加載到圖表中,說明并不支持這么使用

Pie(餅圖)

            
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 數據可視化pyecharts的使用詳解_第5張圖片

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 數據可視化pyecharts的使用詳解_第6張圖片

詞云圖的形狀可以通過shape參數來選擇

            
wordcloud =WordCloud(width=1300, height=620)
wordcloud.add("", name, value, word_size_range=[30, 100], shape='diamond')
wordcloud.show_config()
wordcloud.render()
          

Python 數據可視化pyecharts的使用詳解_第7張圖片

Geo(地理坐標系)

            
from pyecharts import Geo 
data =[("海門", 9), ("鄂爾多斯", 12), ("招遠", 12), ("舟山", 12), ("齊齊哈爾", 14), ("鹽城", 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()
          

這里也要先說明一點因為echarts里面有的地點可能沒有,一旦添加了沒有的在這里面,將會生成一個空的圖。

有四個解決辦法:

一是最簡單的把不存在刪掉;

二是到百度地圖api里把找不到的地方的經緯度加進原始的包里(這個辦法大家可以參看這位大佬的博客https://www.jb51.net/article/163958.htm);

三是如果你的數據在地圖中并沒有坐標城市,可以通過geo_cities_coords 自己進行添加,GeoLine圖同樣如此

            
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: jyroy
from pyecharts import Geo
 if __name__ == '__main__':

 list_city_name=["100,30-1","130,40-2"]
 list_num = [["value1","value2"],["value3"]]
 geo_cities_coords = {"100,30-1":[100,30],"130,40-2":[130,40]}

 geo = Geo("Geo 實例")
 geo.add("",list_city_name, list_num, geo_cities_coords=geo_cities_coords)
 geo.render()
          

Python 數據可視化pyecharts的使用詳解_第8張圖片

四是如果你是批量的導入導入數據(類似從數據庫中),異常數據并不想插入到地圖中去,可以通過try...except...來清除這少部分的異常數據,如下代碼,這是我自己遇到的問題的想到的一個解決辦法,data是我從數據庫中得到的字典

當然如果數據量比較大的話,這樣做效率可能不高,給大家一個參考吧

            
 for n, m in data.items(): #data是我從數據庫中讀取的城市的字典數據
  list_1 = []
  list_2 = []
  list_1.append(n)
  list_2.append(m)
  try:
   geo.add("", list_1, list_2, visual_range=[0, 3000], visual_text_color="#fff", symbol_size=15, is_visualmap=True)
  except Exception as e:
   pass
          

當然如果數據量比較大的話,這樣做效率可能不高,給大家一個參考吧這是我的項目里一部分的數據得到的結果,我拿了7萬多條數據來做的測試,感覺效果還ok

Python 數據可視化pyecharts的使用詳解_第9張圖片

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

Python 數據可視化pyecharts的使用詳解_第10張圖片

            
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 數據可視化pyecharts的使用詳解_第11張圖片

寫在后面

因為我在用的過程中都是結合數據庫批量處理的,所以就不把我寫的全都放上了,這有上面地圖那里第三個解決辦法放了一部分我自己的代碼,其他的都是網上常見的一些測試用例。

這里都是基礎的介紹(我認為可能常用的一些圖表),想了解更多的關于pyecharts的,就不推薦其他人的博客了,都大同小異,大家還是移步官網 http://pyecharts.org/#/zh-cn/ ,因為這是個開源的項目,pyecharts也是三個人一直在維護的,官網內容非常豐富,而且有中文版。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 天海翼一区二区三区免费 | 久久精品国产欧美日韩99热 | 国产成人在线播放 | 欧美video巨大粗暴18 | 国产精品va一区二区三区 | 成人国产一区二区三区精品 | 成人欧美一区二区三区黑人妖 | 国产一区亚洲一区 | 夜夜爱夜夜爽 | 国产精选自拍 | 久热爱免费精品视频在线播放 | 国产精品1000部在线观看 | 久久加久久 | 国产热re99久久6国产精品 | 久久综合热88 | 黄色片网站视频 | 一级毛片看看 | 久久国产成人精品国产成人亚洲 | 五月天色中色 | 97色伦图片97色伦图影院久久 | 亚欧乱色精品免费观看 | 欧美专区在线 | 国产天天射| 欧美一级视频在线 | 亚洲国产aaa毛片无费看 | 国产精品呦呦 | 色噜噜亚洲精品中文字幕 | 性生生活三级视频观看 | 亚洲在线h | 四虎永久免费紧急入口 | 国产精品免费看久久久香蕉 | 国产资源精品一区二区免费 | 欧美一欧美一区二三区性 | 亚洲在线播放视频 | 激情综合婷婷亚洲图片 | 综合色好色 | 久久久不卡国产精品一区二区 | 亚洲国产精品综合久久网络 | 国产欧美一区二区三区精品 | 8090碰成年女人免费碰碰尤物 | 久久国产一久久高清 |