日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋

瀏覽:193日期:2022-06-17 08:54:27
目錄一、前言二、添加標題三、為坐標軸添加標簽四、添加文本說明五、文本的對齊方式六、文本邊界框七、添加箭頭八、添加圖例九、使用LaTex風格的符號十、LaTex簡介十一、使用LaTex符號示例十二、使用中文字符系列鏈接一、前言

在系列博文的中,我們已經學習了如何自定義繪圖的顏色和樣式,以使得繪制更加精美、符合審美要求??梢杂肕atplotlib繪制出復雜而又精美的統計圖,但是如果沒有注釋,我們很難讓其他人明白圖中的點、線究竟代表著什么,有什么樣的含義,也就失去了統計圖的意義,為了解決這一問題,Matplotlib提供了大量對圖形進行注釋的方法,這些注釋方法對于所有的繪圖函數(如plt.plot()、plt.scatter()、plt.histogram()等)都是通用的,利用這些注釋可以使統計圖變得通俗易懂。

二、添加標題

從最簡單的添加標題開始:

import numpy as npimport matplotlib.pyplot as pltx = np.linspace(-4, 4, 10005)y = 5 * (x + 4.2) * (x + 4.) * (x - 2.5)plt.title(’A polynomial’)plt.plot(x, y, c = ’m’)plt.show()

Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋Tips:

plt.title()函數接受一個字符串作為參數并將其作為整個圖形的標題。

三、為坐標軸添加標簽

在實際應用中,對統計圖坐標軸的適當描述有助于用戶理解圖形所表達的含義。

import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0, 8, 1000)y = 2.0 * x + 0.5 * 5 * x ** 2plt.title(’Acceleration Moving’)plt.xlabel(’Time’)plt.ylabel(’distance’)plt.plot(x, y, c = ’c’)plt.show()

Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋Tips:

使用plt.xlabel()和plt.ylabel()函數分別為水平軸和垂直軸添加注釋。

四、添加文本說明

雖然我們已經學習了如何圖形添加標題,以及為坐標軸添加注釋,但是,很多時候我們還需要在圖形中添加說明文本,來凸顯圖中點或線的重要性。

import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0, 8, 1000)y = 2.0 * x + 0.5 * 5 * x ** 2plt.title(’Acceleration Moving’)plt.xlabel(’Time’)plt.ylabel(’distance’)plt.scatter(x[0],y[0])plt.text(x[0], y[0], ’start’)plt.plot(x, y, c = ’c’)plt.show()

Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋

Tips:plt.text()函數接受要顯示的位置和文本作為參數。位置以坐標形式給出,其指定了文本框左下角的位置。

五、文本的對齊方式

文本外圍包含隱式文本框(下文會介紹文本框的顯示方法),此框用于將文本與傳遞給plt.text()的坐標進行相對對齊。使用verticalalignment和horizontalalignment參數(它們分別可以簡寫為va和ha)控制對齊的方式。垂直對齊選項如下所示:

參數值 說明 center 參數坐標相對于文本框的中心 top 參數坐標相對于文本框的上側 bottom 參數坐標相對于文本框的底部 baseline 參數坐標相對于文本的基線

import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0, 8, 1000)y = 2.0 * x + 0.5 * 5 * x ** 2x_b = np.linspace(0, 8, 1000)y_b = np.zeros_like(x_b)plt.title(’Acceleration Moving’)plt.xlabel(’Time’)plt.ylabel(’distance’)plt.scatter(x[0],y[0])plt.text(0, 0, ’center’, va=’center’)plt.text(2, 0, ’top’, va=’top’)plt.text(4, 0, ’bottom’, va=’bottom’)plt.text(6, 0, ’baseline’, va=’baseline’)plt.plot(x, y, c = ’c’)plt.plot(x_b, y_b, c = ’m’)plt.show()

Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋

水平對齊選項如下所示:

參數值 說明 center 參數坐標相對于文本框的中心 left 參數坐標相對于文本框的左側 right 參數坐標相對于文本框的右側

import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0, 8, 1000)y = 2.0 * x + 0.5 * 5 * x ** 2y_b = np.linspace(0, 100, 1000)x_b = np.zeros_like(y_b)plt.title(’Acceleration Moving’)plt.xlabel(’Time’)plt.ylabel(’distance’)plt.scatter(x[0],y[0])plt.text(0, 0, ’center’, ha=’center’)plt.text(0, 50, ’left’, ha=’left’)plt.text(0, 100, ’right’, ha=’right’)plt.plot(x, y, c = ’c’)plt.plot(x_b, y_b, c = ’m’)plt.show()

Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋

六、文本邊界框

上文介紹了文本外圍包含隱式文本框,為了可以顯式的繪制文本框,plt.plot()支持一個以字典為輸入的bbox參數,此詞典用于定義文本框的外觀配置:

import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0, 8, 1000)y = 2.0 * x + 0.5 * 5 * x ** 2box = { ’facecolor’: ’.75’, ’edgecolor’: ’r’, ’boxstyle’: ’round’}plt.title(’Acceleration Moving’)plt.text(0, 8, ’start’, bbox=box)plt.plot(x, y, c = ’c’)plt.show()

Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋

bbox參數的字典定義包含以下常見鍵值對:

鍵 說明與可選值 facecolor 用于設置文本框背景和邊的顏色 edgecolor 用于設置文本框邊緣的顏色 alpha 用于設置透明度級別,使文本框與背景更好的混合 boxstyle 設置文本框的樣式,可選值包括'round'和'square' pad 如果'boxstyle'設置為'square',則它定義文本和文本框邊之間的填充量 七、添加箭頭

添加文本框當然可以幫助注釋圖形,但有時當說明文本過多,并不能清楚的說明究竟與圖形的那一部分相對應,因此要說明圖形中的特定部分,沒有什么比使用箭頭更好的了,Matplotlib使用plt.annotate()函數繪制箭頭。

import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0, 8, 1000)y = 2.0 * x + 0.5 * 5 * x ** 2plt.annotate(’start’,ha = ’center’, va = ’bottom’,xytext = (2, 30.),xy = (0, 0),arrowprops = { ’facecolor’ : ’black’, ’shrink’ : 0.05 })plt.title(’Acceleration Moving’)plt.plot(x, y, c = ’c’)plt.show()

Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋

Tips:plt.annotate()函數在顯示與plt.text()作用相同的說明文本文本外,同時也會渲染箭頭。要顯示的說明文本是第一個參數;xy參數指定箭頭的目標;xytext參數指定文本位置,同樣可以通過ha和va參數來改變文本對齊方式箭頭的樣式由傳遞給arrowprops參數的字典控制,其中常用的鍵值包括:

鍵 說明與可選值 arrowstyle 控制箭頭的樣式,可選值包括'<-'、'<'、“wedge”、'simple'和'fancy'等 facecolor 用于設置箭頭背景和邊的顏色 edgecolor 用于設置箭頭邊的顏色 alpha 用于設置透明度級別,使箭頭與背景更好的混合

收縮參數控制箭頭端點和箭頭本身之間的間隙。

八、添加圖例

在復雜圖形中,往往包含大量不同的曲線和點,如果這些曲線和點沒有相應的圖例,將無法對其進行準確的區分,因此圖例在實踐中是必不可少的。使用plt.legend()函數以及繪圖函數的label可選參數,可以添加圖例:

import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0, 6, 1024)data = np.random.standard_normal((150, 2))print(data.size)y_1 = np.sin(x)y_2 = np.cos(x)plt.xlabel(’x’)plt.ylabel(’y’)plt.plot(x, y_1, c = ’m’, lw = 3., label = ’sin(x)’)plt.plot(x, y_2, c = ’c’, lw = 3., ls = ’--’, label = ’cos(x)’)plt.scatter(data[:,0],data[:,1],c=’y’, label = ’random’)plt.legend()plt.show()

Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋

Tips:每個plt繪圖函數(如plt.plot()、plt.scatter()等)都有一個可選的label參數來命名圖形的元素。plt.legend()函數的作用是呈現圖例,圖例是根據標簽自動生成的。plt.legend()函數包含可選參數來控制圖例的呈現:

參數 說明與可選值 loc 用于控制圖例的位置,默認值為'best',將以適合的方式自動放置圖例,其他可選值包括'upper left'、“lower left”、“lower right”、“right”、“center left”、“center right”、“lower center”、“upper center'和'center” shadow 可選值包括True和False,用于設置是否使用陰影效果呈現圖例 fancybox 可選值包括True和False,用于是否使用圓角框呈現圖例 title 用于為圖例設置標題 ncol 強制設置圖例的列數 九、使用LaTex風格的符號

我們已經學習了為圖形添加多種注釋的方法。然而,在實踐中,我們通常需要使用數學符號,因此,我們需要使用LaTex語法來添加數字符號。要使用LaTex風格的符號,首先需要在計算機上安裝可用的LaTeX配置,以便Matplotlib可以解釋LaTeX語法來呈現數學文本。有關于安裝LaTeX的方法,不在本文的主題主題,大家可以根據自己的操作系統檢索安裝方法.

十、LaTex簡介

LaTex是學術界廣泛使用的一種文獻排版系統。與Microsoft Word等文檔編輯器不同,LaTeX用戶在編輯文檔時無法看到其最終顯示效果。文檔被描述為純文本文檔中存儲的文本及命令。最終,LaTeX將解釋文檔以進行呈現。在科學和工程界,LaTeX的公式語言通常用于在電子郵件和論壇中編寫數學文本。

十一、使用LaTex符號示例

使用LaTex風格的符號時,函數接受的字符串參數值以“$”字符開頭和結尾,這是向Matplotlib發出信號,以將文本解釋并呈現為LaTeX樣式的數學文本。字符串的內容就是數學文本的標準語言,關于Matplotlib中LaTeX樣式的數學文本的介紹,可以參考Matplotlib官網。

import numpy as npimport matplotlib.pyplot as pltx = np.linspace(-4, 4, 10005)y = 3 / 5 * (x + 4.2) * (x + 4.) * (x - 2.5)plt.title(’$f(x)=frac{3}{5}(x+4.4)(x+4)(x-2.5)$’)plt.plot(x, y, c = ’k’)plt.show()

Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋

Tips:這種LaTex風格的符號不限于標題,它可以用于任何其它注釋。LaTeX語言在很大程度上依賴于轉義字符,但此符號恰好也是Python的字符串轉義字符。因此,如果要在一個LaTeX文本中使用作為轉移字符,需要在Python字符串中使用兩個。為了避免漏掉轉義字符,可以在字符串前面加上r,這樣就不需要任何轉義字符了,即:'$f(x)=frac{1}{4}(x+4)(x+1)(x-2)$'等價于r’$f(x)=frac{1}{4}(x+4)(x+1)(x-2)$’。

十二、使用中文字符

中文是使用Matplotlib的一個痛點,但是在實際應用中,又不可避免的會使用到中文用于統計圖注釋的顯示,如果不進行配置,會將中文字符顯示為亂碼。使用中文字符作為注釋有多種方式,這里本著簡單就是最優的理念,使用plt.rcParams[’font.sans-serif’]進行設置:

import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0, 6, 1024)data = np.random.standard_normal((150, 2))y_1 = np.sin(x)y_2 = np.cos(x)plt.xlabel(’x軸’)plt.ylabel(’y軸’)plt.title(’中文字符使用示例’)plt.plot(x, y_1, c = ’m’, lw = 3., label = ’正弦函數’)plt.plot(x, y_2, c = ’c’, lw = 3., ls = ’--’, label = ’余弦函數’)plt.scatter(data[:,0],data[:,1],c=’y’, label = ’隨機點’)plt.rcParams[’font.sans-serif’] = [’SimSun’]plt.legend()plt.show()

Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋

Tips:使用plt.rcParams[’font.sans-serif’]設定支持中文字符的字體,使用中文字符的用法范圍與LaTex風格的符號一樣,它可以用于所有注釋,另外需要確保系統支持所設定的中文字符字體。

系列鏈接

學會Python-Matplotlib可視化,快速完成數據分析(1)

一文詳解常見統計圖的繪制學會Python-Matplotlib可視化,快速完成數據分析(2)

到此這篇關于Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋的文章就介紹到這了,更多相關Matplotlib可視化內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Matplotlib
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩精品一区二区三区av| 国产伦理久久久久久妇女| 一区二区三区视频免费观看| 久久一区亚洲| 欧美一区二区三区免费看| 欧美国产一级| 欧美高清一区| 精品亚洲成人| 日本精品另类| 日韩在线观看| 蜜臀av亚洲一区中文字幕| 妖精视频成人观看www| 国产一区二区三区久久| 国产欧美啪啪| 久久亚洲国产精品一区二区| 精品一区二区三区中文字幕视频| 中文字幕日韩欧美精品高清在线| 国产一区2区| 国产伦精品一区二区三区千人斩| 91精品啪在线观看国产18 | 国产精品色婷婷在线观看| 黑丝一区二区三区| 亚洲乱码久久| 欧美日中文字幕| 精品一区二区三区中文字幕在线| 国产精选一区| 久久av网址| 欧美91在线|欧美| 国产欧美一区二区三区精品观看| 亚洲我射av| 国产精品av久久久久久麻豆网| 精品国产黄a∨片高清在线| 国户精品久久久久久久久久久不卡| 国产成人免费视频网站视频社区| 久久精品国产在热久久| 婷婷精品在线| 三级亚洲高清视频| 亚洲免费婷婷| 在线成人直播| 人人精品久久| 成人午夜在线| 精品在线91| 日韩欧美激情| 国产亚洲一区| 美女视频黄 久久| 国产精品欧美三级在线观看| 国产亚洲毛片| 成人精品天堂一区二区三区| 欧美日韩午夜| 91精品啪在线观看国产18| 欧美日韩免费看片| 久久久777| 国产精品av久久久久久麻豆网| 黄色成人精品网站| 蜜桃视频在线观看一区二区| 在线精品亚洲| 亚洲理论在线| 日韩欧美综合| 国产探花在线精品一区二区| 国产精品久久免费视频| 久久久久久久久久久妇女 | 日韩久久视频| 欧美日韩精品免费观看视完整 | 国产一级成人av| 亚洲一区激情| 久久av超碰| 日韩视频精品在线观看| 婷婷成人综合| 日韩成人精品一区| 日韩av一区二区三区四区| 欧美少妇精品| 视频一区中文字幕精品| 日韩在线不卡| 六月婷婷一区| 成人午夜国产| 欧美+日本+国产+在线a∨观看| 国产欧美一区二区色老头| 偷拍精品精品一区二区三区| 综合国产精品| 国产一区二区精品久| 欧美在线影院| 精品国产a一区二区三区v免费| 国产精品免费大片| 国产精品久久久久久模特 | 欧美精品一区二区久久| 新版的欧美在线视频| 亚洲色图网站| 久久亚洲国产| 久久久久亚洲精品中文字幕| 激情丁香综合| 国产一区亚洲| 久久精品国产亚洲aⅴ| 视频精品一区| 五月综合激情| 久久久久久婷| 国产日韩欧美三级| 国产精品嫩草99av在线| 一区二区三区四区精品视频| 伊人久久大香线蕉av超碰演员| 999精品在线| 国精品产品一区| 精品久久久中文字幕| 亚洲精品精选| 999在线观看精品免费不卡网站| 久久久精品久久久久久96 | 国产一区二区三区自拍| 91久久亚洲| 亚洲精品中文字幕99999| 久久成人精品| 手机精品视频在线观看| 久久午夜视频| 欧美一区激情| 亚洲天堂黄色| 亚洲一区有码| 免费一级片91| 欧美一级二级三级视频| 亚洲精品婷婷| 亚洲精品系列| 欧洲一区二区三区精品| 日韩成人亚洲| 中文字幕日韩高清在线| 日韩在线视频一区二区三区| 精品免费在线| 国产精品一区二区精品| 激情六月综合| 国产精品永久| 精品国产精品久久一区免费式 | 国产精品美女久久久| 欧美激情麻豆| 日韩毛片网站| 久久国产影院| 亚洲五月婷婷| 亚洲先锋成人| 午夜日韩av| 欧美在线亚洲综合一区| 欧美日韩国产欧| 中日韩男男gay无套| 亚洲男女av一区二区| 欧美日韩国产一区精品一区| 激情欧美丁香| 国产亚洲一区在线| 亚洲精品在线a| 日韩精品高清不卡| 久久av中文| 国产精品宾馆| 日韩精品视频中文字幕| 亚洲欧洲专区| 免费成人在线影院| 美女久久久久久| 免费一级片91| 亚洲综合不卡| 另类激情亚洲| 欧美亚洲二区| 亚洲香蕉久久| 99国产精品| 不卡在线一区二区| 欧美13videosex性极品| 精品国产黄a∨片高清在线| 欧美日一区二区| 国产偷自视频区视频一区二区| 日韩毛片在线| 一区三区视频| 国产精品99一区二区| 久久av一区| 亚洲精品大片| 91精品一区国产高清在线gif| 久久97视频| 欧美午夜精彩| 911精品国产| jiujiure精品视频播放| 欧美在线影院| 亚洲九九精品| 久久午夜影院| 国产精品片aa在线观看| 久久狠狠久久| 久久av导航| 午夜日韩av| 欧美国产亚洲精品| 日韩国产在线观看一区| 国产在线一区不卡| 欧美日韩在线二区| 国产成人精品一区二区三区视频 | 国产精品15p| 国产亚洲欧美日韩在线观看一区二区 | 国产亚洲精品v| 欧美黑人做爰爽爽爽| 国产精品毛片aⅴ一区二区三区| 国产激情在线播放| 欧美亚洲免费| 一本一道久久a久久精品蜜桃| 久久精品 人人爱| 日韩不卡在线| 国产精品亚洲综合在线观看| 免费成人网www| 国产亚洲字幕| 久久精品青草| 久久亚洲精精品中文字幕| 午夜亚洲福利| av中文资源在线资源免费观看| 不卡在线一区|