python畫圖庫哪個好_機器學習基礎5--python畫圖庫matplotlib(上)

圖像是我們最直觀的數據表達方式,python的matplotlib庫可以用來畫圖。下面來簡單總結下matplotlib的使用方法。

2018-09-05-marchine-learning-base-matplotlib-01-05.png

上篇講matplot畫圖中用到的基礎對象,包括圖像Figure,平面曲線Line2D,坐標軸Axes,圖例Legend, 注解Annotation, 注釋Text

理解這些對象,有利于我們更好的用matplot畫圖。

matplotlib 導入1import matplotlib.pyplot as plt

簡單demo1

2

3

4

5

6

7

8x = np.linspace(-1, 1, 50)

y = 2 * x + 1

# 創建圖像

plt.figure()

# plot(x,y)畫(x,y)曲線

plt.plot(x, y)

# 顯示圖像

plt.show()

2018-09-05-marchine-learning-base-matplotlib-01-01.png

基礎屬性

圖像Figure

matplot中,圖像對應的定義類是matplotlib.figure.Figure

1

2# num 標識編號,figsize 8英寸*5英寸,dpi圖像的dp密度,facecolor背景色白色,edgecolor背景色白色

plt.figure(num=1, figsize=(8,5), dpi=100, facecolor='w', edgecolor='w')

plt.figure()創建了圖像,并返回matplotlib.figure.Figure對象,這里我們選擇隱式處理返回的對象。

平面曲線Line2D

通過plot()方法創建matplotlib.line.Line2D對象

1

2

3

4# 指定曲線的顏色,線的寬度,線的樣式。

plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')

# 添加多條曲線

plt.plot(x, y2)

具體的參數可以在matplotlib.pyplot.Line2D的初始化函數里找到:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21def __init__(self, xdata, ydata,

linewidth=None, # all Nones default to rc

linestyle=None,

color=None,

marker=None,

markersize=None,

markeredgewidth=None,

markeredgecolor=None,

markerfacecolor=None,

markerfacecoloralt='none',

fillstyle=None,

antialiased=None,

dash_capstyle=None,

solid_capstyle=None,

dash_joinstyle=None,

solid_joinstyle=None,

pickradius=5,

drawstyle=None,

markevery=None,

**kwargs

):

坐標軸Axes

坐標軸的定義類是matplotlib.Axes

1

2

3

4

5

6

7

8

9

10

11# xlim()和ylim()設置坐標軸范圍

plt.xlim((-1, 2))

plt.ylim((-2, 3))

# xlabel()和ylabel()設置坐標軸名稱

plt.xlabel('X')

plt.ylabel('Y')

# 借助numpy的linspace()方法,設置更復雜的坐標,-1到2,總共5個坐標點

new_ticks = np.linspace(-1, 2, 5)

plt.xticks(new_ticks)

# 也可以指定具體的點和標簽值

plt.yticks(ticket=[-2, -1.8, -1, 1.22, 3],labels=[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])

2018-09-05-marchine-learning-base-matplotlib-01-02.png

我們可以看到,這里二維圖像默認的坐標軸有四條(上下左右)

更復雜的坐標軸設置:

1

2

3

4

5# 獲取坐標軸實例

ax = plt.gca()

# 隱藏右邊和上面的坐標軸

ax.spines['right'].set_color('none')

ax.spines['top'].set_color('none')

2018-09-05-marchine-learning-base-matplotlib-01-03.png

調整坐標軸上刻度的位置

1

2# 值可以選擇top,bottom,both,default,none

ax.xaxis.set_ticks_position('bottom')

默認的坐標軸之間的連接處類似于矩形,我們可以調整坐標軸之間連接處具體的位置

1

2

3# spines指定修改的是哪一條坐標軸,set_position()有好幾個重載方法,這里用到的是set_position(self, position),,其中position參數是一個二維tuple。

# 第一個值是type,可選的type有"outward","axes","data".

ax.spines['bottom'].set_position(('outward', 10))

『outward』數組的第二個值是個數值,0的話,x軸與y軸的焦點正好在y軸最底部,如果n>0,相當于向y軸負方向移動距離n。

『axes』 數組的第二個值取值范圍0.0-1.0,表示將端點放在坐標軸的指定比例的位置

『data』 數組的第二個值就是坐標軸上具體的位置

圖例Legend

圖例對應著的是 matplot.legend類

1

2

3

4

5

6# 圖例的話,需要先通過plot()方法創建Line2D對象

l1, = plt.plot(x, y1, label='linear line')

l2, = plt.plot(x, y2, color='red', linewidth=1.0, linestyle='--', label='square line')

# loc指定位置,如圖例放在右上角就是loc='upper right', 'best'表示自動分配最佳位置,label表示圖例的名稱

plt.legend(handles=[l1, l2], labels=['up', 'down'], loc='best')

2018-09-05-marchine-learning-base-matplotlib-01-04.png

注解Annotation

注解對應著的是 matplot.text.Annotation

1

2

3

4

5

6

7

8

9plt.annotate(r'$2x+1=%s$' % y0,

xy=(x0, y0), # 對(1,3)這個點的描述

xycoords='data', # 基于數據的值來選位置

xytext=(+30, -30), # xytext=(+30, -30)表示xy偏差值,

textcoords='offset points',# 對標注位置的描述

fontsize=16,

arrowprops=dict( # 對箭頭類型的設置

arrowstyle='->',

connectionstyle="arc3,rad=.2")

注釋Text

注釋對應的定義類是 matplot.text.Text

1

2

3

4

5

6

7

8plt.text(x=-3.7,

y=3,

s=r'$This\ is\ the\ some\ text. \mu\ \sigma_i\ \alpha_t$',

fontdict={

'size': 16,

'color': 'r'

}

)

通過上面的注釋和注解,我們再補充一條線段,一個點

1

2

3

4

5# 畫虛線

plt.plot([x0, x0, ], [0, y0, ], 'k--', linewidth=2.5)

# 畫點

plt.scatter([x0, ], [y0, ], s=50, color='b')

plt.show()

2018-09-05-marchine-learning-base-matplotlib-01-05.png

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

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

相關文章

64位 linux 32位連接器,32位匯編程序在64位Ubuntu上的匯編和連接

本教程使用的操作系統是Ubuntu Linux 18.04 LTS版本,匯編器是GNU AS(簡稱as),連接器是GNU LD(簡稱ld)。以下是一段用于檢測CPU品牌的匯編小程序(cpuid2.s):.section .dataoutput:.asciz "The processor Vendor ID is %s\n".section…

python怎么加圖片_python中如何保存圖片

一提到數字圖像處理,可能大多數人就會想到matlab,但matlab也有自身的缺點: 1、不開源,價格貴 2、軟件容量大。一般3G以上,高版本甚至達5G以上。 3、只能做研究,不易轉化成軟件。python學習網,大…

linux用rsync實現同步,Linux下使用rsync實現主備機代碼同步

rsync 分為客戶端和服務端軟件版本:rsync-2.6.9軟件下載地址:http://rsync.samba.org/ftp/rsync/服務端安裝過程1.tar -xzvf rsync-2.6.9.tar.gz #解壓縮安裝文件2.cd rsync-2.6.93. ./configure --prefix/usr/local/rsync #配置安裝目錄為/usr/local/…

python可以在多平臺運行 體現了_Python:使用異常處理來判斷運行的平臺

try:importtermios, TERMIOS               1exceptImportError:try:importmsvcrt                  2exceptImportError:try:from EasyDialogs importAskPassword   3exceptImportError: getpass "default_getpass"      …

python精通時間_學Python需要多久能學會?精通Python需要多長時間?

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓 嚴格意思上的說,Python其實是一個腳本語言,編程語言多種多樣,但是卻有開源和閉源之分,Python就是一種開放核心源代碼編程語言,其開發代碼的效率非常高,代碼編…

linux 文檔編輯器 word,linux下vi編輯器命令大全

常用命令linux下vi編輯器命令大全來源:考試大 【學而優則進,考試大以成!】 2007年8月14日  文本編輯器是所有計算機系統中最常用的一種工具。UNIX下的編輯器有ex,sed和vi等,其中,使用最為廣泛的是vi,而vi…

西門子觸摸屏修改ip地址_基于博途V15 西門子S7-1200與觸摸屏一個簡單的例子

本篇是《基于博途V15 西門子S7-1200 ...》系列的后續篇,看懂本篇文章之前請大家關注我,然后查找相關文章,學習之后再學習此篇。也請專業領域的大神批評指正。感謝大家關注與支持!步驟:1. 創建項目創建名稱為PLC_HMI2. …

mac os和linux和安卓,在我的安卓手機里,安裝Windows和macOS系統

原標題:在我的安卓手機里,安裝Windows和macOS系統不知道各位差友還記不記得,世超前陣子分享過一款無需越獄,就能讓 iPhone 和 iPad 運行其它系統的虛擬機軟件 UTM。當時世超正是靠著這個軟件,才得以讓 iPad 成功跑上了…

python連接mysql代碼_Python3連接MySQL(pymysql)轉賬代碼

# coding:utf8 import sys # Python3 采用pymysql 連接MySQL import pymysql class TransferMoney(object): def __init__(self,conn): self.connconn def check_acct_available(self,acctid): cursor self.conn.cursor() try: sql"select * from account where acctid%s…

gc java root_C#技術漫談之垃圾回收機制(GC)

GC的前世與今生雖然本文是以.NET作為目標來講述GC,但是GC的概念并非才誕生不久。早在1958年,由鼎鼎大名的圖林獎得主John McCarthy所實現的Lisp語言就已經提供了GC的功能,這是GC的第一次出現。Lisp的程序員認為內存管理太重要了,所…

中信銀行c語言筆試題庫,中信銀行筆試題型及題目

中信銀行筆試題型及題目考試題型一:專業知識(2個小時)1.專業知識單選,60題,每題1分。2.專業知識多選,20題,每題1分,未選全即少選得0.5分,錯選、漏選得0分。3.英語閱讀,20分&#xff…

北航軟件工程碩士_21考研擇校 | 北京航空航天大學軟件工程怎么樣?

??? 軟件工程考研獨家平臺撰稿 | 康康哥編輯 | 麗麗姐本文由懂計算機、軟件工程的博士師哥原創01學校名氣北京航空航天大學,簡稱“北航”,是一所把“985”、“211”、“雙一流”寫進骨子里的學校。為什么這么說呢?這得從源頭說起&#xff…

kettle同步數據到hive 巨慢_超詳細教程,kettle ETL mysql到hadoop hive數據抽取,值得收藏...

那么如何將mysql數據導入到hive里呢,kettle里有自帶方法,可以通過表輸入和表輸出來實現,不過自帶的方法載入數據極其緩慢,不推薦使用這種方法。1、hive建表注意hive表使用“^”作為分隔符,這個可以更具實際情況來。2、…

linux 查看path文件,linux入門之環境變量與文件查找

環境變量分類當前 Shell 進程私有用戶自定義變量,如上面我們創建的 temp 變量,只在當前 Shell 中有效。Shell 本身內建的變量。從自定義變量導出的環境變量。declare tmp;tmp"shiyanlou i love y";echo $tmp ; **不要忘記$**實驗樓…

python手機編譯器可以干什么_世界上最好的Python編輯器是什么?

在這種情況下,你需要使用一個 IDE(集成開發環境)或專用的代碼編輯器。由于 Python 是最流行的編程語言之一,IDE 的選擇也非常多。那么問題來了:「究竟什么樣的 IDE 最適合 Python?」 很明顯,沒有…

c是過程化語言嗎數據庫,A.數據庫語言B.過程化語言C.宿主語言D.數據庫管理系統...

A.數據庫語言B.過程化語言C.宿主語言D.數據庫管理系統更多相關問題[填空題] 為了安全起見,起動發動機前要檢查()有無行人。---叉車操作和保養手冊第2-77.在起動叉車前()以警告周圍的人。[單選] 制造廠規定叉車走合期一…

python讀取xlsx文件pandas_用Python的pandas框架操作Excel文件中的數據教程

引言 本文的目的,是向您展示如何使用pandas來執行一些常見的Excel任務。有些例子比較瑣碎,但我覺得展示這些簡單的東西與那些你可以在其他地方找到的復雜功能同等重要。作為額外的福利,我將會進行一些模糊字符串匹配,以此來展示一…

delphi 生成 超大量xml_用OpenCV4實現圖像的超分別率

用OpenCV4實現圖像的超分別率本實驗原文鏈接: f"https://arxiv.org/pdf/1807.06779.pdf">https://arxiv.org/pdf/1807.06779.pdf原文摘要單圖像超分辨率(SISR)的主要挑戰是如何恢復微小紋理等高頻細節。然而,大多數最…

dubbo全局異常處理_基于spring aop的dubbo異常統一處理

dubbo統一異常處理,調用方只顯示封裝后的異常。1、返回封裝后的Exception2、返回封裝后的統一返回信息import org.aspectj.lang.annotation.AfterThrowing;import org.aspectj.lang.annotation.Aspect;import org.slf4j.Logger;import org.slf4j.LoggerFactory;impo…

python123平臺作業答案第十一周_馬哥2016全新Linux+Python高端運維班第十次作業

系統的INPUT和OUTPUT默認策略為DROP,請完成以下關于iptables的題目;iptables -A INPUT -d 10.18.11.13 -p tcp --dport 22 -j ACCEPT #允許ssh端口 iptables -A OUTPUT -s 10.18.11.13 -p tcp --sport 22 -j ACCEPT iptables -P OUTPUT DROP #設置OUTPUT…