婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋

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

熱門標簽:孝感營銷電話機器人效果怎么樣 打電話機器人營銷 南陽打電話機器人 聊城語音外呼系統 ai電銷機器人的優勢 海外網吧地圖標注注冊 商家地圖標注海報 地圖標注自己和別人標注區別 騰訊地圖標注沒法顯示

一、前言

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

二、添加標題

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

import numpy as np
import matplotlib.pyplot as plt
x = 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()

Tips:

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

三、為坐標軸添加標簽

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

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

Tips:

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

四、添加文本說明

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

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 8, 1000)
y = 2.0 * x + 0.5 * 5 * x ** 2
plt.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()

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

五、文本的對齊方式

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

參數值 說明
center 參數坐標相對于文本框的中心
top 參數坐標相對于文本框的上側
bottom 參數坐標相對于文本框的底部
baseline 參數坐標相對于文本的基線
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 8, 1000)
y = 2.0 * x + 0.5 * 5 * x ** 2
x_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()

水平對齊選項如下所示:

參數值 說明
center 參數坐標相對于文本框的中心
left 參數坐標相對于文本框的左側
right 參數坐標相對于文本框的右側
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 8, 1000)
y = 2.0 * x + 0.5 * 5 * x ** 2
y_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()

六、文本邊界框

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

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 8, 1000)
y = 2.0 * x + 0.5 * 5 * x ** 2
box = {
    '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()

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

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

七、添加箭頭

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

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 8, 1000)
y = 2.0 * x + 0.5 * 5 * x ** 2
plt.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()

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

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

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

八、添加圖例

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

import numpy as np
import matplotlib.pyplot as plt
x = 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()

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 np
import matplotlib.pyplot as plt
x = 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()

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 np
import matplotlib.pyplot as plt
x = 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()

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

系列鏈接

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

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

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

您可能感興趣的文章:
  • Python數據可視化之用Matplotlib繪制常用圖形
  • python可視化分析的實現(matplotlib、seaborn、ggplot2)
  • python可視化 matplotlib畫圖使用colorbar工具自定義顏色
  • python Matplotlib數據可視化(2):詳解三大容器對象與常用設置
  • python Matplotlib數據可視化(1):簡單入門
  • python 使用matplotlib 實現從文件中讀取x,y坐標的可視化方法
  • Python數據可視化教程之Matplotlib實現各種圖表實例
  • Python matplotlib繪圖可視化知識點整理(小結)
  • 基于Python數據可視化利器Matplotlib,繪圖入門篇,Pyplot詳解

標簽:楊凌 牡丹江 揚州 迪慶 六盤水 南寧 撫州 聊城

巨人網絡通訊聲明:本文標題《Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋》,本文關鍵詞  Matplotlib,可視化,之,添加,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋》相關的同類信息!
  • 本頁收集關于Matplotlib可視化之添加讓統計圖變得簡單易懂的注釋的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    91丨porny丨最新| 成人av在线一区二区| 极品美女销魂一区二区三区 | 欧美日韩在线电影| 欧美不卡在线视频| 亚洲精品免费看| 亚洲不卡av一区二区三区| 日本aⅴ亚洲精品中文乱码| 亚洲一区二区欧美激情| 激情综合色丁香一区二区| 92精品国产成人观看免费| 91网上在线视频| 久久综合色天天久久综合图片| 亚洲欧美日韩精品久久久久| 蜜桃视频第一区免费观看| 99久久久精品免费观看国产蜜| 91精品国产91久久综合桃花| 久久久久一区二区三区四区| 亚洲欧美日韩成人高清在线一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 成人av在线网| 精品国产三级a在线观看| 一区二区三区日韩欧美| 国产一区二区三区四区五区入口| 欧美日韩国产一二三| 欧美激情中文字幕一区二区| 亚洲一区二区综合| 9i看片成人免费高清| 色婷婷av一区| 欧美mv日韩mv亚洲| 亚洲国产毛片aaaaa无费看| 国产中文字幕一区| 97se亚洲国产综合在线| 色综合中文综合网| 日韩精品在线看片z| 国产日韩av一区| 麻豆精品视频在线观看免费| 欧美男女性生活在线直播观看| 亚洲欧洲精品一区二区三区| 国产精品亚洲综合一区在线观看| 91精品国产综合久久久久| 亚洲乱码国产乱码精品精98午夜| 成人白浆超碰人人人人| 久久蜜桃av一区二区天堂| 看片网站欧美日韩| 欧美精品久久久久久久多人混战| 国产精品视频一区二区三区不卡| 国产一区二区三区黄视频 | 日韩欧美成人激情| 亚洲制服丝袜一区| 日本在线观看不卡视频| 色噜噜狠狠色综合欧洲selulu| 久久久久久久综合日本| 国产一区二区三区四区五区美女 | 欧美自拍丝袜亚洲| 有码一区二区三区| 欧美中文字幕一区二区三区| 综合久久给合久久狠狠狠97色 | 欧美一级二级三级蜜桃| 日日噜噜夜夜狠狠视频欧美人| 精品视频1区2区| 亚洲欧美日韩精品久久久久| 日本韩国欧美在线| 亚洲成人精品一区| 日韩一二三四区| 美女精品自拍一二三四| 国产亚洲视频系列| 99精品1区2区| 亚洲成人av一区二区| 99re热视频这里只精品| 亚洲成人精品一区| 欧美精品一区二区三区四区| 国产成人免费视频一区| 国产丝袜欧美中文另类| 色婷婷av一区二区三区大白胸| 爽好久久久欧美精品| 欧美成人video| jizzjizzjizz欧美| 日韩国产精品久久| 国产欧美精品日韩区二区麻豆天美| 不卡一二三区首页| 五月天激情综合| 国产亚洲一区字幕| 欧美三级中文字| 国内精品不卡在线| 一区二区三区 在线观看视频| 欧美久久免费观看| 成人免费看片app下载| 亚洲小少妇裸体bbw| 26uuu精品一区二区三区四区在线| 99精品视频在线播放观看| 美腿丝袜在线亚洲一区| 亚洲图片另类小说| 久久免费国产精品| 欧美男生操女生| av在线播放一区二区三区| 麻豆精品在线看| 一区二区欧美在线观看| 国产亚洲一二三区| 欧美一级搡bbbb搡bbbb| 日本高清无吗v一区| 国产99一区视频免费| 日韩—二三区免费观看av| 亚洲日本一区二区| 国产午夜精品一区二区三区嫩草| 91麻豆精品91久久久久久清纯| 91免费观看国产| 国产激情91久久精品导航| 蜜乳av一区二区| 日韩av不卡一区二区| 亚洲福利视频三区| 亚洲男人电影天堂| 亚洲日本韩国一区| 中文字幕一区二区三区不卡在线| 久久久91精品国产一区二区精品| 日韩视频免费直播| 欧美高清激情brazzers| 欧美视频在线观看一区| 波多野结衣中文字幕一区二区三区| 国产一区久久久| 国产在线不卡一区| 国产乱对白刺激视频不卡| 九九**精品视频免费播放| 日韩电影在线观看一区| 天堂成人免费av电影一区| 一区二区三区四区在线播放| 亚洲欧美日韩国产综合| **性色生活片久久毛片| 亚洲色图在线播放| 最新日韩av在线| 亚洲欧美电影一区二区| 亚洲美女在线国产| 一区二区三区四区五区视频在线观看| 亚洲欧美激情在线| 亚洲三级在线看| 亚洲一线二线三线久久久| 一区二区三区四区在线播放| 亚洲午夜久久久| 日产欧产美韩系列久久99| 久久99精品久久久久久动态图| 久久精品99久久久| 国产成人aaaa| 不卡的看片网站| 欧美午夜精品理论片a级按摩| 欧美色综合久久| 精品理论电影在线观看| 国产精品网曝门| 亚洲午夜视频在线| 理论电影国产精品| 大胆欧美人体老妇| 欧美中文字幕一区二区三区亚洲| 色综合天天天天做夜夜夜夜做| 欧美午夜精品一区| 欧美白人最猛性xxxxx69交| 久久久久国产免费免费| 中文字幕综合网| 男女男精品视频| 成人免费黄色大片| 欧美日韩综合不卡| 久久九九影视网| 亚洲成av人片在线观看无码| 国产一区二区伦理| 在线视频国内自拍亚洲视频| 日韩欧美一区二区视频| 国产女同互慰高潮91漫画| 亚洲一区影音先锋| 国产精品88av| 欧美人妇做爰xxxⅹ性高电影| 久久毛片高清国产| 亚洲综合一二三区| 国产成人av福利| 日韩一区二区电影| 亚洲品质自拍视频| 精品无人区卡一卡二卡三乱码免费卡 | 三级亚洲高清视频| 成人一区二区视频| 在线播放国产精品二区一二区四区| 久久天天做天天爱综合色| 亚洲国产一区二区三区| 国产不卡在线播放| 欧美不卡一区二区三区| 亚洲国产精品自拍| 国产一区二区三区国产| 99九九99九九九视频精品| 精品国产免费视频| 亚洲成人动漫av| 91在线观看高清| 亚洲国产精品二十页| 国产自产v一区二区三区c| 欧美日本一区二区| 一区二区激情小说| 91在线视频官网| 国产欧美精品国产国产专区| 激情亚洲综合在线| 欧美一区二区三区思思人| 亚洲一区视频在线观看视频| 91首页免费视频| 亚洲欧洲av色图| 粉嫩高潮美女一区二区三区| 久久久午夜电影|