pyecharts anaconda_Pyecharts安裝使用和繪圖案例

5594bcffb92630cb91c77460de6448ac.png

一次偶然的機會,接觸了pyecharts,發現做圖交互效果非常棒,便深究、摸索、入坑。這篇文章主要講述自己在安裝和使用中遇到的問題,解決方法,最后還會有pyecharts中自己比較喜歡的繪圖功能。

pyecharts是一款將python與echarts結合的強大的數據可視化工具。Echarts 是百度開源的一個數據可視化 JS 庫, Echarts可以生成非常棒的可視化交互圖,pyecharts的開發讓在python平臺上也可以直接使用數據生成圖。

一、pyecharts v1安裝使用

我平時使用的是jupyter notebook,因為anaconda中Jupyter Notebook里沒有集成pyecharts庫,沒有直接調用,需要自行安裝。

安裝pyecharts之前,我們需要了解pyecharts新舊版本的重大區別,自己下載的是什么版本,因為這會影響你代碼是否能正常運行。我自己當初不慎下載了最新V1版,但寫的代碼還是老代碼,結果各種報錯,如下圖等問題。

ef5476802a6cf97ff27c80c7d99d59dd.png

c101857101b892d9b07576858fb28857.png

pyecharts在去年5月份的時候,發布了全新版本v1,修復了之前0.5.X版本留下的bug,但在宣傳新版本各種好的時候,存在一個非常嚴重的問題,新版本向下不再兼容pyecharts 低版本,舊版本上好多語句代碼都在新版本上都無法使用。當我們使用原來跑通的代碼,在無意間更新版本后,使用時各種ImportError、AttributEerror報錯,不要懷疑自己,先去檢查一下自己使用的版本。一定要記住,V1是一個分水嶺,2019年5月也是一個分水嶺,現今大部分新安裝的都是V1新版本。

①開始安裝,管理員模式運行cmd,輸入 pip install pyecharts

如果報錯:You are using pip version 10.0.1, however version 19.0.2 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.

未報錯,說明版本以更新,下面②、③步驟可以忽略。

②更新版本,輸入python -m pip install --upgrade pip

更新成功后,會提示:Successfully installed pip-19.0.2

③前面準備就緒后,再次輸入 pip install pyecharts

如果成功會提示:Successfully installed.....pyecharts.....(中間內容省略,看關鍵字)

④驗證是否可以正常使用,打開jupyter notebook,輸入一個簡單的測試代碼

from 

能夠正常展示如下水球動態圖,就表示一切OK

9e667d4774e37d08ad26332dbbc19b80.gif

⑤如果仍然存在報錯等問題,可以自己去下載安裝文件,下面是是最新版pyecharts1.7.1文件鏈接。

pyecharts?pypi.org
e374e474db011206a48da3f5c7f1ec8d.png

下載后,把文件放到Anaconda3Libsite-packages文件夾里面。

運行Anaconda Prompt,輸入pip install pyecharts,再次測試是否可以正常使用。

如果想安裝歷史舊版本,也可以使用此方法。

⑥如果已安裝過pyecharts,想要查看自己是什么版本的,可以在打開cmd

輸入pip list,會顯示已經安裝過的文件版本

afbcbe31d003ae246f4959f3e4ef4ca9.png

二、pyecharts v1繪圖案例

這里繪圖案例,選擇了自己比較感興趣的幾個圖表,每各圖中涉及的數據值都是隨機生產,數據不具參考價值。

(1)流向圖

全國范圍:

from pyecharts.charts import Geo
# 導入配置項
from pyecharts import options as opts
# ChartType:圖標類型,SymbolType:標記點類型
from pyecharts .globals import ChartType, SymbolType
import randomc = (Geo().add_schema(maptype="china") # 地圖類型,這里選擇china.add("",[("天津", 120000), ("上海", 100000), ("廣州", 80000), ("深圳", 90000), ("長沙", 100000), ("鄭州", 100000),("杭州", 70000),("烏魯木齊",90)],type_=ChartType.EFFECT_SCATTER,color="green",)# 添加數據點.add("geo",[("北京", "天津"), ("北京", "上海"),("北京", "廣州"),("北京", "深圳"),("北京", "長沙"),("北京", "鄭州"),("北京", "杭州"),("北京", "烏魯木齊")],type_=ChartType.LINES,effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW, symbol_size=6, color="yellow"),# 添加流向,type_設置為LINES,漣漪配置為箭頭,提供的標記類型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'linestyle_opts=opts.LineStyleOpts(curve=0.2),).set_series_opts(label_opts=opts.LabelOpts(is_show=False))# 不顯示標簽.set_global_opts(title_opts=opts.TitleOpts(title="北京人口省外輸出圖")))c.render_notebook()# 直接在notebook里顯示圖表

129097e7413c6d5a3651f4e53ea23a11.gif

省內范圍:

c = (Geo().add_schema(maptype="河南") # 地圖類型,這里選擇鄭州.add("",[("安陽", 20000), ("信陽", 10000), ("南陽", 8000), ("洛陽", 9000), ("濮陽", 1000)],type_=ChartType.EFFECT_SCATTER,color="green",)# 添加數據點.add("geo",[("鄭州", "安陽"), ("鄭州", "信陽"),("鄭州", "南陽"),("鄭州", "洛陽"),("鄭州", "濮陽")],type_=ChartType.LINES,effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW, symbol_size=6, color="yellow"),# 添加流向,type_設置為LINES,漣漪配置為箭頭,提供的標記類型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'linestyle_opts=opts.LineStyleOpts(curve=0.2),).set_series_opts(label_opts=opts.LabelOpts(is_show=False))# 不顯示標簽.set_global_opts(title_opts=opts.TitleOpts(title="鄭州人口省內輸出圖")))c.render_notebook()# 直接在notebook里顯示圖表

202278a0154122f714f8faf666971eda.gif

(2)熱力圖

以全國各省份人口分布熱力圖為例(這里隨機選擇部分省份)

province = ['北京', '上海', '廣州', '深圳', '河北', '河南', '湖北', '湖南', '黑龍江', '吉林', '內蒙古', '新疆', '西藏']
data = [(i, random.randint(100, 350)) for i in province]geo = (Geo().add_schema(maptype="china").add("人口", data,type_=ChartType.HEATMAP).set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(visualmap_opts=opts.VisualMapOpts(),legend_opts=opts.LegendOpts(is_show=False),title_opts=opts.TitleOpts(title="Geo-全國熱力地圖")))geo.render_notebook()

45e1ce54e71d5e08a4ceaa00b32d0cdd.png


(3)時間軸

各品牌電腦線上和線下近幾年銷量對比

from pyecharts import options as opts
from pyecharts.charts import Bar, Timeline
from pyecharts.globals import ThemeType
import randomcate = ['Apple', 'Dell', 'Toshiba', 'Samsung', 'Lenovo'] tl = Timeline()
for i in range(2015, 2019): #選擇年份范圍bar = (Bar().add_xaxis(cate).add_yaxis("線上", [random.randint(10000, 15000) for _ in cate]) #隨機賦值.add_yaxis("門店", [random.randint(7000, 12000) for _ in cate]).set_global_opts(title_opts=opts.TitleOpts("電腦品牌{}年營業額".format(i))))tl.add(bar, "{}年".format(i))tl.render_notebook()

d73fd77826241aee42737011f0a21bb3.gif


(4)3D柱狀圖

建立x坐標為小時,y坐標為星期,z坐標為數值的3維動態柱狀圖

import pyecharts.options as opts
from pyecharts.charts import Bar3Dhours = ["0","1","2","3","4","5","6","7","8","9","10","11", "12","13","14","15","16","17","18","19","20","21","22","23",]
days = ["Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Sunday"]
data = [[random.randint(0, 6), random.randint(0, 23), random.randint(0, 15)]for _ in range(100)]
data = [[d[1], d[0], d[2]] for d in data]Bar3D = (Bar3D(init_opts=opts.InitOpts(width="800px", height="400px")).add(series_name="",data=data,xaxis3d_opts=opts.Axis3DOpts(type_="category", data=hours),yaxis3d_opts=opts.Axis3DOpts(type_="category", data=days),zaxis3d_opts=opts.Axis3DOpts(type_="value"),).set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=20,range_color=["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026",],)))Bar3D.render_notebook()

f3efd25026c0a476ebf7ddc28bf0cfd4.gif

三、總結

相對自己之前知悉的Matplotlib、Seaborn等繪圖包,接觸pyecharts又多打開了一扇大門,愈發覺得圍繞python開發的各種包都好強大,python是個好產品。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534169.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534169.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534169.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

控制附件的大小 php,wordpress如何修改默認上傳附件限制大小

關于上傳文件大小的限制,有很多有幾種情況,一是服務器上的限制(php.ini)php虛擬主機空間提供商為了保障服務器穩定、都會限制大容量附件上傳,在php.ini文件中做了限制,二是網站程序本身都會有限制大小,wp媒體文件大小默…

如何把密度函數化為標準正態二維分布_概率微課:第三章(22) 二維隨機變量及分布函數定義...

主要內容二維隨機變量及分布函數定義更多系列視頻概率微課:第二章(1) 隨機變量的定義概率微課:第二章(2) 離散型隨機變量概率微課:第二章(3) 兩點分布及伯努利試驗概率微課:第二章(4) 二項分布1概率微課:第二章(5) 二…

php中的緩,php中的緩存機制解釋

php緩存的理解,先列出ob系列函數的作用:ob_start(func) 開啟php緩存,回調函數是對緩存內數據的處理函數ob_gzhandler 作為 ob_start 的回調函數,對數據進行gz壓縮ob_implicit_flush(true/false) 打開或關閉apache緩存&#xff0c…

php 下拉菜單多選get,Jquery實現select二級聯動多選下拉菜單

前言平時雖然也有寫前端,但是對于一些復雜的功能實現仍是一知半解。這次項目需要實現一個多選下拉菜單,并且該菜單要和上級下拉菜單保持聯動。更加麻煩的是,我需要完成以下操作,以省、市二級聯動菜單為例:選擇河北省 &…

idea快捷鍵打開run的窗口_看了上篇文章,你不了解的IDEA操作……

注意作者:卡洛小豆。換種方式寫文章,寫的不好請多多見諒。未經授權,禁止轉載夜,結束了一天的喧囂后安靜下來,伴隨著遠處路燈那微弱的光。風,毫無預兆地席卷整片曠野,撩動人的思緒萬千。那是一個…

oracle查看物化視圖的索引,oracle – 物化視圖中的域索引返回零行

我有Oracle DB的問題 – 在物化視圖上通過CONTAINS()搜索后,域索引返回零行.我看到物化視圖充滿了數據,我還使用過程ctx_ddl.sync_index()進行域索引同步.什么有用:>創建表>插入數據>創建域索引> SYNC DOMAIN INDEX>通過包含找到行 – 返回行什么不起…

arma模型_Eviews經典案例 | 初學者必看!ARMA模型精講

【本期分析師介紹】希音老師,《數據分析學堂》金牌分析師,對eviews的時間序列、ARMA、VAR、VECM、ARCH、GARCH等操作有深入的研究和實戰經驗,累計服務客戶1000。今天邀請希音老師給大家分享eviews的詳細操作步驟。長文預警!可在文末聯系麻瓜學…

oracle活躍用戶,監控數據庫中的活躍用戶及其運行

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓[sql] view plain copy print?set linesize 120 pagesize 66col c1 for a9col c1 heading "OS User"col c2 for a9col c2 heading "Oracle User"col b1 for a9col b1 heading "Unix PID"col b2 for…

c# 路徑下的最近文件夾_C#8.0的兩個有趣的新特性以及gRPC

最近每天忙著跑很多地方,回家就不想動了,沒什么心情寫東西。今天有空,稍微寫一點。下文中:關于C#語法特性的部分需要Visual Studio 2019支持。關于.NET Core的部分需要安裝.NET 3.0 Preview4,低版本或許也可以但我沒實…

alter table add column多個字段_ElementUI表格el-table表頭固定自適應高度解決方案

一、前言ElementUI、iView都以相同的方式提供了表格組件表頭固定的方法,即設置組件的height屬性。表頭固定很重要,就在于當表格數據項很多時,滾動條出現在表格組件內,而不是出現在表格組件外——這樣的優點在于,滾動瀏…

oracle ora 12011,執行oracle中的job報錯:ORA-12011:無法執行作業1

LZ在做一個job執行每天新增一個表的操作時,存儲過程運行沒問題,job也創建成功,但運行job時,卻報錯: ,后又用sys用戶登陸創建了同樣的存儲過程和job,結果可以執行成功。當時就猜測是權限問題。后…

e盤是否具有讀寫權限_輕松搭建MySQL主從復制、讀寫分離(雙機熱備)

主從復制: 當mysql數據庫的數據量太大的時候,查詢數據就很吃力了,無論怎么優化都會產生瓶頸,這時我們需要增加服務器設備來實現分布式數據庫,實現多機熱備份,要想實現多機的熱備,首先要了解主從…

linux運維之道基礎命令,Linux運維之道(7)——Linux管理類命令

(Linux)[系統管理]1. 目錄管理類命令1.1 cd命令格式:cd [-L|[-P [-e]] [-]] [dir]被你忽略的小知識:在這里科普一個小小的知識點,就是關于cd -為什么可以自由的在當前目錄和之前目錄相互切換?其實,在我們的 Shell 的環…

html畫圖代碼_python之matplotlib畫圖教程(2)

各位小表貝,你們的畫圖小老弟又來咯~上一次我們聊到了如何畫離散圖,這一次我們來點復雜的,準備好了么,系好安全帶,準備發車咯~滴滴~我們先來點比較簡單,那種易于上手的。如果現在我知道了兩個點的坐標&…

在linux上面找一個腳本,30個Linux Shell腳本經典案例

在學習Linux運維時,普遍反饋是:Linux Shell是一個很難的知識板塊。雖然大家都認真學,基本的語法也都掌握了,但有需求時,很難直接上手編程,要么寫了很久,要么寫不好!也有很多做運維很…

python圖像識別代碼_用Python進行簡單圖像識別(驗證碼)

這是一個最簡單的圖像識別,將圖片加載后直接利用Python的一個識別引擎進行識別 將圖片中的數字通過 pytesseract.image_to_string(image)識別后將結果存入到本地的txt文件中 #-*-encoding:utf-8-*- import pytesseract from PIL import Image class GetImageDate(ob…

linux 端口添加地址,linux – 綁定,網絡(接口)和多播地址有什么區別?

實際上你在這里混淆了三種方法.第一個是bind,用于將套接字綁定到指定的地址和端口.使用此方法基本上您打開一個udp-port并等待該地址上的此端口的數據.第二個是join-method,用于讓套接字加入指定的多播組.組播組的示例是224.0.0.1 – “所有主機”組播組 – 其針對同一網段上的…

c++ map初始化_Go學習每日一問(18)-map元素查找

每次學習并整理一個Golang的知識點,每天進步一點點。今天學習下go中的一個知識點:map元素查找日省吾身1.下面代碼中 A B 兩處應該怎么修改才能順利編譯?func main() { var m map[string]int //A m["a"] 1 if v : m["b&q…

linux運維需要哪些網絡知識,Linux運維學習筆記-網絡技術知識體系總結

jTemplates部分語法介紹1.{#if} {#if |COND|}..{#elseif |COND|}..{#else}..{#/if} Examples: {#if 2*816} good {#else} fail {# ...解密jQuery內核 DOM操作方法(二)html,text,val回顧下幾組DOM插入有關的方法 innerHTML 設置或獲取位于對象起始和結束標簽…

-bash: wget: 未找到命令_18個堪稱神器的命令行工具,高效運維必備

上期入口:24個 CSS 高級技巧合集提示:因公眾號不支持超鏈接,上圖所有項目地址,可在公眾號后臺回復關鍵字 “命令行工具” 獲取。thefuck命令行打錯了以后,打一個fuck就會自動糾正。GitHub:https://github.c…