亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python?matplotlib底層原理是什么

發布時間:2021-12-01 11:05:45 來源:億速云 閱讀:170 作者:iii 欄目:開發技術

本篇內容介紹了“Python matplotlib底層原理是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

1. matplotlib 框架組成

matplotlib 模塊在眾多數據可視化庫中可以可以實現復雜的底層操作。像gglotseabornplotnline 底層都是基于matplotlib 模塊去封裝不同風格的統計圖表。

matplotlib 模塊底層主要是由三部分組成腳本層、美工層和后端層。

  • 腳本層:為用戶提供可視化編程的接口

  • 美工層:有大量繪制圖表方法的接口

  • 后端:連接硬件,處理圖像元素的接口

Python?matplotlib底層原理是什么

PS:matplotlib框架說明

2. 腳本層(scripting)

腳本層屬于matplotlib模塊中最上層,主要為用戶提供可視化編程的接口,代表pyplot模塊。

對于普通用戶,pyplot接口可以滿足大多數文本的圖像和坐標的生成,傳給后端進行處理。

matplotlib.pyplot接口導入時,通常是import matplotlib.pyplot as plt

  • 導入pyplot 模塊并重名為plt

  • pyplot 模塊加載時,會對本地的配置文件進行分析

  • 同時會聲明默認的后端,例如聲明創建Figure對象

  • 將腳本深拷貝給后端后退出

pyplot 模塊提調用matplotlib的方法

  • 供給用面向oo調用風格,顯示創建圖形和軸調用其方法

  • 依靠pyplot 自動創建和管理圖形和軸,并使用pyplot函數進行繪圖

用戶只需調用pyplot模塊相關的方法,就可以繪制漂亮的圖表啦

from matplotlib import pyplot

import pandas

pyplot.rcParams["font.sans-serif"]=['SimHei']
pyplot.rcParams["axes.unicode_minus"]=False

pyplot.bar([1,2,3,4,5,6],[45,20,19,56,35,69])

pyplot.title("data analyze")
pyplot.xlabel("元素 a")
pyplot.ylabel("元素 b")

pyplot.show()

Python?matplotlib底層原理是什么

3. 美工層(artist)

在美工層位于matplotlib中間層,主要進行數據相關的繪制工作,繪制圖表中的標題、直線、刻度等都是artist對象的實例。

artist 層特點

  • 腳本層創建的Figure對象是Artist對象實例

  • Artist的基類是matplotlib.artist.Artist,共享所有Artist屬性包括從美工系統到畫布坐標系統變化等

  • 提供處理用戶交互動作的接口

matplotlib 圖表對象

我們可以通過如下matplotlibe圖表中可以看到一張圖表由多個對象組合而成的。

Python?matplotlib底層原理是什么

matplotlib 圖表對象說明

對象說明
Figure圖形,彈出框口即是figure
axes子圖
title標題
legend圖例
Major tick大標尺刻度
Minor tick小標尺刻度
Line線型圖
axis label坐標指標說明
Marker數據標準說明

Artist 對象說明

ArtIst 對象包含FigureAxesAxis對象,是它們的基類,其Artist對象都全部位于后端提供的canvas畫布上。

Figure

  • 一個圖表窗口即是一個figure對象

  • figure對象中至少要包含一個Axes對象子圖

  • figure對象中可以包含title、label等Artist對象

  • figure對象中包含的不可見對象canvas。繪制圖像時會進行調用

Axes

  • axes 是子圖對象,子圖對象指的是x和y軸.

  • axes 常用有set_xlabel()、set_ylabel()設置x和y軸坐標名字

Axis

  • axis 是代表數據軸的對象,主要用于表示刻度位置和顯示數值

  • axis 包含用于控制刻度位置的Locator和顯示刻度Formatter兩個子對象

Artist對象層級結構圖如下

Python?matplotlib底層原理是什么

4. 后端層(backend)

后端層主要是matplotlib 模塊底層實現,主要實現了三方面的抽象接口 4.

FigureCanvas:對Artist對象繪制提供畫布功能進行封裝

matplotlib 模塊底層是基于硬的用戶畫面,FigureCaves接口主要完成前期初始化工作

  • 將自身嵌入到原生的QT視覺窗口(QtGui.QMainWindow)

  • 將matplotlib的繪制命令Render轉換到canvas上(QtGui.QPainter)

  • 將原生Qt事件轉成matplotlib的Event接口,Event接口接收到信息后進行處理

Renderer: 相當于畫筆,執行繪制動作

Render 主要提供硬件底層的繪圖接口,能對Artist繪制命令進行執行。

  • Render 接口最初源于GDK的Drawable接口,后來轉換成獨立后端的原生繪圖命令。

  • matplotlib 是支持C++模塊庫基于像素點核心渲染器agg

  • 可以進行2d反鋸齒渲染、PNG圖片生成

Event: 處理用戶鍵盤和鼠標輸入事件

Event 框架是將key-press-event或者mouse-motion-event等UI事件映射到鍵盤或者鼠標事件類中。

  • 用戶可以連接事件,使用函數進行回調

  • 圖形與數據交互

“Python matplotlib底層原理是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长沙县| 绥江县| 呼图壁县| 新野县| 太湖县| 嘉荫县| 永康市| 平阳县| 佳木斯市| 科技| 微山县| 肃南| 松潘县| 集安市| 汕尾市| 冀州市| 蒙山县| 梅河口市| 神木县| 昌乐县| 富裕县| 沈丘县| 安康市| 武功县| 石景山区| 唐山市| 北辰区| 阜康市| 湟源县| 黄龙县| 筠连县| 永福县| 武陟县| 敦化市| 佳木斯市| 南开区| 兴义市| 长宁县| 江陵县| 苗栗县| 五大连池市|