安裝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()