matplotlib之基本圖像的繪製

安裝matplotlib庫

首先如何在python中安裝matplotlib庫呢?
在cmd中使用命令

pip install matplotlib

在座標系中繪製簡單的一元一次方程

任務目標:
在這裏插入圖片描述
代碼實例:

import matplotlib.pyplot as plt
#加載matplotlib庫的pyplot模塊並起別名叫plt
import numpy as np
#再導入numpy庫並起別名叫做np
x=np.linspace(-2,2,50)
#返回以起點爲-2終點爲2內的50個均勻間隔樣本作爲方程y的x數據
y=2*x+1
#方程y,2x+1
plt.plot(x,y)
#以x,y繪製方程圖
plt.show()
#展示繪製的方程

'''
運行結果:

如任務目標所示
'''

linspace函數

代碼較簡單就說一下linspace函數

numpy.linspace(start,stop,num = 50,endpoint = True,retstep = False,dtype = None,axis = 0 )

start參數(必選):序列的起始值。
end參數(必選):序列的終止值,在沒有設置endpoint參數的時候,是不包括終止點的,除非將endpoint參數設置爲False。
num參數(可選):要生成start-end之間的樣本數,默認爲50。
endpoint參數(可選):如果爲True,就不會包括start-end之間的最後一個樣本數,也就是end,反之。默認值爲True。
retstep(可選):如果是True,則返回樣本之間的間隔,默認是False
dydpe(可選):輸出數組的類型,如果沒選,默認自動根據其他參數推斷數據類型。
axis(可選):如當成三維數組的類型,就可使用該參數,axis=0是對維度爲0進行操作,axis=1是對維度爲1進行操作,axis=2是對維度爲2進行操作,默認爲0,注意:當不是多維數組使用該參數會報錯。

plot函數

plot([x], y, [fmt], *, data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

這是官方定義的格式,我們就掌握最核心的即可

參數 描述
[x](可選參數) 方程y的數據
y(必選參數) 方程y
[fmt](可選參數) 格式化字符串,定義圖形的基本樣式:顏色,點形,線形
Kwargs 代表以不定長的關鍵字參數設置繪製線的其他屬性,比如線標籤(用於自動圖例),線寬,抗鋸齒,標記面顏色

fmt = ‘[marker][line][color]’
第一個是標記物可以是如下的內容

字符 描述
‘.’ 點標記
‘,’ 像素標記
‘o’ 圓圈標記
‘v’ 倒三角標記
‘^’ 正三角標記
‘<’ 左三角標記
‘>’ 右三角標記
‘1’ tri_down標記
‘2’ tri_up標記
‘3’ tri_left標記
‘4’ tri_right標記
‘s’ 方形標記
‘p’ 五邊形標記
‘*’ 星標
‘h’ 六角形標記
‘H’ 六角標記
‘+’ 加號
‘x’ X標記
‘D’ 鑽石筆
‘d’ thin_diamond標記
‘|’ vline標記
‘_’ hline標記

第二個是線條屬性

線性

線型 描述
'-‘或者’solid’ 實線
'–‘或者’dashed’ 虛線
‘-.’ 或者’dashdot’ 點劃線
':‘或者’dotted’ 虛線

標記物

第三個是顏色

字符 顏色
‘b’ blue
‘g’ green
‘r’ red
‘c’ cyan
‘m’ magenta
‘y’ yellow
‘k’ black
‘w’ white

**kwargs較多就不寫了。

任務目標:
在這裏插入圖片描述

import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50)
#返回以起點爲-3終點爲3內的50個均勻間隔樣本作爲方程y1,y2的x數據
y1=2*x+1
y2=x**2

plt.figure(num=2,figsize=(8,5))
#利用figure繪製圖像,並且窗口的大小爲8,5,窗口標題爲2
plt.plot(x,y2)
plt.plot(x,y1,color="red",linewidth=1.0,linestyle="--")
#將y2,跟y1都畫在一個圖形標題爲2的圖上,並且y1這條線是紅色,線寬爲1,線的屬性使用的是'--'
plt.show()
#展示繪製的圖
'''
運行結果:

如任務目標所示
'''

figure()函數

官方定義的figure函數

matplotlib.pyplot.figure(num = None,figsize = None,dpi = None,facecolor = None,edgecolor = None,frameon = True,FigureClass = <class'matplotlib.figure.Figure'>,clear = False** kwargs )

主要參數描述:

參數 描述
num(可選參數) 如果未選擇,每次創建一個新圖形,都會將圖形編號增1。如果提供了num,並且num已經是之前用過的了,則會激活並再次引用,如果圖不存在,則創建。
figsize(可選參數) 設置寬度,高度,單位是英寸。如果未選擇,則默認使用(6.4,4.8)
dqi(可選參數) 設置圖的分辨率,如果未選擇則默認爲100.0100
facecolor(可選參數) 背景顏色。如果未選擇默認使用白色
edgecolor(可選參數) 邊框顏色,如果未選擇默認使用白色
frameon(可選參數) 是否繪製圖形邊框,如果未選擇默認使用True
clear (可選參數) 如果爲True並且該圖已經存在,則將其清楚,如果未選擇默認使用False

更改座標的名字
任務目標:

在這裏插入圖片描述

代碼示例:

import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50)
y1=2*x+1
y2=x**2

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#這兩行可使畫出來的圖形中的中文顯示出來

plt.plot(x,y2)
plt.plot(x,y1,color="red",linewidth=1.0,linestyle="--",label="{}".format(y1))
plt.xlim((-1,2))
#設置x軸的極限爲-1到2
plt.ylim((-2,3))
#設置y軸的極限爲-2到3
plt.xlabel(r'x軸')
#設置x軸的標籤
plt.ylabel(r'y軸')
#設置y軸的標籤
new_ticks=np.linspace(-1,2,5)
plt.yticks([-2,-1.8,-1,1.22,3,],[r'$really\ bad$',r'$bad\ \alpha$',r'$normal$',r'$good$',r'$really\ good$'])
#將y軸的[-2,-1.8,-1,1.22,3]處都換成....省略
plt.show()

xlim()函數

設置當前x軸(橫軸)的極限
如果不設置,就可通過拉動窗口使x軸可見極限增大或縮小

ylim()函數

設置當前y軸(縱軸)的極限
如果不設置,就可通過拉動窗口使x軸可見極限增大或縮小

xticks()函數

獲取或設置x軸的當前刻度位置和標籤。

matplotlib.pyplot.xticks(ticks = None,labels = None** kwargs )
參數 描述
tick(必選參數) 放置刻度的位置列表,可以使用空列表禁用調
labels 在給定位置放置的顯式標籤的列表。
** kwargs 用於控制標籤的外觀

gca()函數

在圖形上獲取所有的軸

任務目標:
在這裏插入圖片描述
代碼示例

import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50)
y1=2*x+1
y2=x**2

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

plt.plot(x,y2)
plt.plot(x,y1,color="red",linewidth=1.0,linestyle="--")
plt.xlim((-1,2))
plt.ylim((-2,3))
plt.xlabel("x軸")
plt.ylabel("y軸")
new_ticks=np.linspace(-1,2,5)
plt.yticks([-2,-1.8,-1,1.22,3,],[r'$really\ bad$',r'$bad\ \alpha$',r'$normal$',r'$good$',r'$really\ good$'])

ax=plt.gca()
#獲取兩個橫軸兩個豎軸
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
#獲取右邊與頂部的軸設置右邊框和頭部邊框給顏色爲空
ax.xaxis.set_ticks_position('bottom')
#將x軸的位置設置在底部
ax.yaxis.set_ticks_position('left')
#將y軸的位置設置在右邊
ax.spines['bottom'].set_position(('data',0))#outward,axes
#獲取底部的軸移動軸的位置到交叉軸的指定座標爲0
ax.spines['left'].set_position(('data',0))
#獲取左邊的軸移動軸的位置到交叉軸地指定位置爲0
plt.show()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章