天天看點

pyecharts的繪圖原理詳解

其實學習任何一門程式設計語言,最重要的就是學習它的​

​原理​

​​。在前面我們已經介紹了matplotlib、seaborn、plotly的繪圖原理,今天給大家介紹的是,我認為互動效果最好的一個python繪圖庫,學會了絕對不虧。

​​​《matplotlib繪圖原理詳解》​​​​《seaborn繪圖原理詳解》​​​​《plotly繪圖原理詳解》​​

1.pyecharts簡介

​Echarts​

​​是一個由百度開源的資料可視化工具,憑借着良好的互動性,精巧的圖表設計,得到了衆多開發者的認可。而​

​python​

​​是一門富有表達力的語言,很适合用于資料處理。當資料分析遇上了資料可視化時,​

​pyecharts​

​誕生了。

pyecharts分為​

​v0.5​

​​和​

​v1​

​兩個大版本,v0.5和v1兩個版本不相容,v1是一個全新的版本,是以我們的學習盡量都是基于v1版本進行操作。

學習任何程式設計語言,其實官網是最好的老師,下面我們列出了echarts和pyecharts的官網,比較幸運的是,pyecharts是由一個中國人開發的,也存在一個中文網站,這樣學習起來就友善多了。

​​

​echarts官網:​

​​​https://www.echartsjs.com/index.html​​​

​pyecharts官網:​

​​​https://pyecharts.org/#/zh-cn/intro​​

​安裝:​

​pip install pyecharts

​檢視版本:​

​print(pyecharts.version)

2.pyecharts繪圖邏輯

1)pyecharts繪圖邏輯說明

​pyecharts​

​​是一個全新的可視化繪圖工具,是以它的繪圖邏輯完全不同于前面說到的​

​matplotlib、seaborn、plotly​

​​。是以你想要學好這個可視化工具,最主要的就是要學會它的繪圖邏輯,俗話說:​

​“知己知彼,百戰不殆”​

​,你隻有了解别人 ,才可以用起來順手呀。pyecharts的繪圖邏輯分為以下幾步。

  • ① 選擇圖表類型;
  • ② 聲明圖形類并添加資料;
  • ③ 選擇全局變量;
  • ④ 顯示及儲存圖表;

第一步是選擇圖表類型,基于自己的資料特點,我們看看自己想要繪制那種圖形,需要什麼圖形就導入什麼圖形;

“下面我簡單列舉了幾個導入方法”

from pyecharts.charts import Scatter  # 導入散點圖
from pyecharts.charts import Line     # 導入折線圖
from pyecharts.charts import Pie      # 導入餅圖
from pyecharts.charts import Geo      # 導入地圖      

第二步是聲明圖形類并添加資料,什麼是圖形類呢?其實每一個圖形庫都是被pyecharts作者封裝成為了一個類,這就是所謂的面向對象,我們在使用這個類的時候,需要執行個體化這個類(觀察下面代碼)。聲明類之後,相當于初始化了一個畫布,我們之後的繪圖就是在這個畫布上進行。接下來要做的就是添加資料,pyecharts中添加資料共有2種方式,一種是普通方式添加資料,一種是鍊式調用(觀察下面代碼)來添加資料,後面我會分章節一個個為大家介紹。

"下面繪制的是:正弦曲線的散點圖"
# 1.選擇圖表類型:我們使用的是散點圖,就直接從charts子產品中導入Scatter這個圖形。
from pyecharts.charts import Scatter
import numpy as np

x = np.linspace(0,2 * np.pi,100)
y = np.sin(x)

(
 # 注意:使用什麼圖形,就要執行個體化該圖形的類;
 # 2.我們繪制的是Scatter散點圖,就需要執行個體化散點圖類,直接Scatter() 即可;
 Scatter() 
 # 執行個體化類後,接着就是添加資料,下面這種方式就是使用“鍊式調用”的方式繪圖;
 # 注意:散點圖有X、Y軸,是以需要分别給X軸、Y軸添加資料;
 # 3.我們先給X軸添加資料;
 .add_xaxis(xaxis_data=x)
 # 4.我們再給Y軸添加資料;
 .add_yaxis(series_name="這個圖是幹嘛的",y_axis=y)
).render_notebook()      

第三步就是設定全局變量,用通俗的話說就是:調節各種各樣的參數,把圖形變得更好看。常用的有标題配置項、圖例配置項、工具配置項、視覺映射配置項、提示框配置項、區域縮放配置項。你也許不知道這幾個名詞是什麼意思,但是不用擔心,你首先是學會了如何使用pyecharts繪圖後,再慢慢學習這方面的内容。

  • 預設情況下圖例配置項和提示框配置項是顯示的,其它四個配置項預設情況下是不顯示的,需要我們自己設定;
pyecharts的繪圖原理詳解

第四步是顯示及儲存圖表,我們這裡介紹兩種最常用的儲存方式,如下所示。

.render("C:\\Users\\黃偉\\Desktop\\CSDN上傳圖像\\a.html")
# 如果不指定路徑,就是直接儲存在目前工作環境目錄下;
# 如果指定了路徑,就是儲存到指定的目錄下;
# 注意:最終都是以html格式展示,發給其他任何人都可以直接打開看的;

.render_notebook()
# 如果我們使用的是jupyter notebook,直接使用這行代碼,可以直接顯示圖檔;      

3.選擇圖表類型

下面列舉出現的所有圖形都在​

​charts​

​字子產品下,我們利用如下代碼就可以導入各自對應的圖形,在上面的叙述中,我已經列舉了部分圖形的導入方式。

  • from pyecharts.charts import 函數名
pyecharts的繪圖原理詳解

​注意:​

​這裡我們隻列出了部分圖形,包括我們後面繪制地圖,也都是在pyecharts的子子產品charts子產品下,我們要記住這句導入相關圖形庫的代碼。

4.資料添加

1)如何添加資料呢?

像散點圖、折線圖等二維資料圖形,它既有X軸,又有Y軸,是以我們不僅要為X軸添加資料,還要為Y軸添加資料。

  • .add_xaxis(xaxis_data=x)為X軸添加資料;
  • .add_yaxis(series_name=’’, y_axis=y)為Y軸添加資料;

像餅圖、地圖這樣沒有X軸、Y軸區分的圖形,我們直接使用add()方法添加即可。

  • .add(series_name=’’, data_pair=[(i,j)for i,j in zip(lab,num)]);

2)pyecharts繪圖的兩種方式

上面我們已經說過,pyecharts中繪圖有2種方式。第一種方式:普通方式;第二種方式:鍊式調用。仔細觀察下面的示範代碼,看看差別在哪裡。

① 鍊式調用的方式繪圖
from pyecharts.charts import Line
import pyecharts.options as opts
import numpy as np

x = np.linspace(0,2 * np.pi,100)
y = np.sin(x)

(Line(init_opts=opts.InitOpts(width="700px",height="300px"))
 .add_xaxis(xaxis_data=x)
 .add_yaxis(series_name="繪制線圖",y_axis=y,label_opts=opts.LabelOpts(is_show=False))
 .set_global_opts(title_opts=opts.TitleOpts(title="我是标題",subtitle="我是副标題",title_link="https://www.baidu.com/"),
                  tooltip_opts=opts.TooltipOpts(axis_pointer_type="cross"))
).render_notebook()

"""
關于全局配置項的代碼部分,你可能不懂,現在不懂沒什麼關系!
"""      

結果如下:

pyecharts的繪圖原理詳解
② 普通方式繪圖
from pyecharts.charts import Pie
import pyecharts.options as opts

num = [110, 136, 108, 48, 111, 112, 103]
lab = ['哈士奇', '薩摩耶', '泰迪', '金毛', '牧羊犬', '吉娃娃', '柯基']
x = [(i, j)for i, j in zip(lab, num)]
print(x)

pie = Pie(init_opts=opts.InitOpts(width="700px",height="300px"))
pie.add(series_name='',data_pair=[(i, j)for i, j in zip(lab, num)])
pie.render_notebook()      

結果如下:

pyecharts的繪圖原理詳解

3)關于series_name=""的說明

在添加資料時候,我們可以注意到​

​series_name參數​

​​的存在,它是一個字元串。你也看到了,我們可以傳遞一個空字元串,也可以傳遞指定字元串,最終的作用有點類似于圖例的效果,但這裡并不是設定圖例。你不需要過多的注意這個參數,​

​隻需要牢記一點:​

​這個參數必須有,必須寫,哪怕你傳遞一個空字元串,也要寫,因為不寫這個參數,會報錯。

5.設定全局配置項

當我們學會了如何使用​

​pyecharts​

​繪圖,并且已經繪制出來了某個圖形,此時這個圖形并不一定好看。這就需要我們學會使用全局配置項,進行圖形參數的調節與設定。

所有的全局配置項的使用,都是在​

​options​

​這個子子產品下,我們在設定全局配置項的時候,記得導入這個子產品。這部分涉及到的參數太多太雜,當你覺得某個圖形需要怎麼改的時候,一般肯定是有對應的參數進行處理的,你要相信你能想到的,别人大神肯定是都想到了,這個時候你就需要學會使用官網,官網很重要!官網很重要!官網很重要!

  • import pyecharts.options as opts
  • 使用options配置項,在 pyecharts中,一切皆Options。
  • 全局配置項可通過調用set_global_options()方法進行設定。
pyecharts的繪圖原理詳解

注意:預設情況下圖例配置項和提示框配置項是顯示的,其他四個配置項預設情況下是不顯示的,需要我們自己設定。

6、顯示及儲存圖表

  • ​.render()​

    ​預設将會在目前工作目錄下生成一個 render.html 的檔案,支援path參數,自定義檔案儲存位置,如 render(r"F:\my_first_chart.html"),檔案直接用浏覽器打開。
  • Jupyter Notebook中直接調用​

    ​.render_notebook()​

    ​随時随地渲染圖表。
pyecharts的繪圖原理詳解

  

pyecharts的繪圖原理詳解