天天看點

matplotlib學習筆記導入matplotlib庫使用matplotlib建立圖像figure的使用修改坐标軸添加legend圖例繪制散點圖繪制柱狀圖

matplotlib學習筆記

  • 導入matplotlib庫
  • 使用matplotlib建立圖像
  • figure的使用
    • 使用figure語句建立多個視窗
    • 在同一個figure視窗中繪制多條圖像
  • 修改坐标軸
    • 限定坐标軸範圍
    • 添加坐标軸的說明
    • 替換坐标軸上點的名稱
    • 修改坐标軸的位置
    • 取消坐标軸
    • 修改坐标軸的位置
  • 添加legend圖例
  • 繪制散點圖
    • 繪制簡單的散點圖
    • 繪制散點圖矩陣
  • 繪制柱狀圖

導入matplotlib庫

使用

import matplotlib.pyplot as plt
           

導入matplotlib庫

使用matplotlib建立圖像

使用matplotlib繪制出y=x*2+5在(0,50)上的圖像

x=np.array([i for i in range(50)])
y=x*2+5
plt.plot(x,y)
plt.show()
           

得到圖像

matplotlib學習筆記導入matplotlib庫使用matplotlib建立圖像figure的使用修改坐标軸添加legend圖例繪制散點圖繪制柱狀圖

figure的使用

使用figure語句建立多個視窗

使用plt.figure()語句可以在多個視窗中繪制出各個圖像

在不同的plt.figure()語句下使用plt.plot()語句即可在多個視窗中繪制出各個圖像

y1=x*2+5
y2=x**10+3*x
plt.figure(num=1)
plt.plot(x,y1)

plt.figure(num=2)
plt.plot(x,y2)

plt.show()
           

pli.figure()中可填寫num 代表figure視窗的号碼

得到圖像

matplotlib學習筆記導入matplotlib庫使用matplotlib建立圖像figure的使用修改坐标軸添加legend圖例繪制散點圖繪制柱狀圖

在同一個figure視窗中繪制多條圖像

将多個pli.plot()寫在同一個plt.figure()語句下即可在同一個figure視窗中繪制多個圖像

y1=x*2+5
y2=x**10+3*x
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='green',linewidth=2.0,linestyle='-.')

plt.show()
           

其中plt.plot(x,y,color,linewidth,linestyle)中對應線條的顔色、寬度、樣式

其中樣式可以選擇

‘-’, ‘–’, ‘-.’, ‘:’, ‘None’, ’ ', ‘’, ‘solid’, ‘dashed’, ‘dashdot’, ‘dotted’

得到圖像

matplotlib學習筆記導入matplotlib庫使用matplotlib建立圖像figure的使用修改坐标軸添加legend圖例繪制散點圖繪制柱狀圖

修改坐标軸

限定坐标軸範圍

使用plt.xlim() 和 ply.ylim()語句來限定x和y軸的範圍

x=np.array([i for i in range(50)])
y1=x*2+5
y2=x**10+3*x
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='green',linewidth=2.0,linestyle='-.')
plt.xlim((4,50))
plt.ylim((1,50))

plt.show()
           

得到圖像

matplotlib學習筆記導入matplotlib庫使用matplotlib建立圖像figure的使用修改坐标軸添加legend圖例繪制散點圖繪制柱狀圖

添加坐标軸的說明

使用plt.xlabel()與plt.ylabel()語句來添加x和y軸的說明

x=np.array([i for i in range(50)])
y1=x*2+5
y2=x**10+3*x
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='green',linewidth=2.0,linestyle='-.')
plt.xlim((4,50))
plt.ylim((1,50))
plt.xlabel('x line')
plt.ylabel('y line')

plt.show()
           
matplotlib學習筆記導入matplotlib庫使用matplotlib建立圖像figure的使用修改坐标軸添加legend圖例繪制散點圖繪制柱狀圖

替換坐标軸上點的名稱

使用plt.xticks()和plt.yticks()語句修改坐标軸上的名稱

括号中可以使用np.linspace()語句進行替換 同時也可以使用二維數組進行替換

x=np.array([i for i in range(50)])
y1=x*2+5
y2=x**10+3*x
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='green',linewidth=2.0,linestyle='-.')
plt.xlim((4,50))
plt.ylim((1,50))
plt.xlabel('x line')
plt.ylabel('y line')
line=np.linspace(5,50,10)
plt.xticks(line)
plt.yticks([5,10,20,40,50],
            ['one','two','three','four','five'])

plt.show()
           

得到圖像

matplotlib學習筆記導入matplotlib庫使用matplotlib建立圖像figure的使用修改坐标軸添加legend圖例繪制散點圖繪制柱狀圖

修改坐标軸的位置

使用到plt.gca()語句

取消坐标軸

使用ax.spines[].set_color(‘none’)語句可以使坐标軸消失

其中中括号中的參數為’top’,‘bottom’,‘left’,'right’分别對應上下左右

x=np.array([i for i in range(50)])
y1=x*2+5
y2=x**10+3*x
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='green',linewidth=2.0,linestyle='-.')
plt.xlim((4,50))
plt.ylim((1,50))
plt.xlabel('x line')
plt.ylabel('y line')
line=np.linspace(5,50,10)
plt.xticks(line)
plt.yticks([5,10,20,40,50],
            ['one','two','three','four','five'])
ax=plt.gca()
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')

plt.show()
           

得到圖像

matplotlib學習筆記導入matplotlib庫使用matplotlib建立圖像figure的使用修改坐标軸添加legend圖例繪制散點圖繪制柱狀圖

修改坐标軸的位置

首先使用ax.axis.set_ticks_position()語句取消坐标軸目前位置

其中括号中的參數為’top’, ‘bottom’, ‘both’, ‘default’, ‘none’

然後使用ax.spines[].set_position()語句更改坐标軸位置

x=np.array([i for i in range(50)])
y1=x*2+5
y2=x**10+3*x
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='green',linewidth=2.0,linestyle='-.')
plt.xlim((4,50))
plt.ylim((1,50))
plt.xlabel('x line')
plt.ylabel('y line')
line=np.linspace(5,50,10)
plt.xticks(line)
plt.yticks([5,10,20,40,50],
            ['one','two','three','four','five'])
ax=plt.gca()
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.xaxis.set_ticks_position('both')
ax.yaxis.set_ticks_position('both')
ax.spines['left'].set_position(('data',5))
ax.spines['bottom'].set_position(('data',10))

plt.show()
           

得到圖像

matplotlib學習筆記導入matplotlib庫使用matplotlib建立圖像figure的使用修改坐标軸添加legend圖例繪制散點圖繪制柱狀圖

添加legend圖例

在plt.plot()語句中添加label語句 添加圖例名稱

使用plt.legend()語句生成圖例

x=np.array([i for i in range(50)])
y1=x*2+5
y2=x**10+3*x
plt.figure()
plt.plot(x,y1,label='first')
plt.plot(x,y2,color='green',linewidth=2.0,linestyle='-.',label='second')
plt.xlim((4,50))
plt.ylim((1,50))
plt.xlabel('x line')
plt.ylabel('y line')
line=np.linspace(5,50,10)
plt.xticks(line)
plt.yticks([5,10,20,40,50],
            ['one','two','three','four','five'])
ax=plt.gca()
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.xaxis.set_ticks_position('both')
ax.yaxis.set_ticks_position('both')
ax.spines['left'].set_position(('data',5))
ax.spines['bottom'].set_position(('data',10))
plt.legend()

plt.show()
           

得到圖像

matplotlib學習筆記導入matplotlib庫使用matplotlib建立圖像figure的使用修改坐标軸添加legend圖例繪制散點圖繪制柱狀圖

繪制散點圖

繪制簡單的散點圖

使用plt.scatter()語句繪制散點圖

x=np.array([i for i in range(50)])
y=x*2+5
plt.scatter(x,y)

plt.show()
           

得到散點圖

matplotlib學習筆記導入matplotlib庫使用matplotlib建立圖像figure的使用修改坐标軸添加legend圖例繪制散點圖繪制柱狀圖

繪制散點圖矩陣

同樣使用plt.scatter()語句

n=1000
X=np.random.normal(0,1,n)
Y=np.random.normal(0,1,n)

plt.scatter(X,Y,s=50,alpha=0.5)

plt.show()
           

得到圖像

matplotlib學習筆記導入matplotlib庫使用matplotlib建立圖像figure的使用修改坐标軸添加legend圖例繪制散點圖繪制柱狀圖

繪制柱狀圖

使用plt.bar()語句繪制柱狀圖

n=10
X=np.arange(n)
X1=np.random.uniform(1,10,n)
Y1=np.random.uniform(1,10,n)
plt.bar(X,Y1)

plt.show()
           

得到圖像

matplotlib學習筆記導入matplotlib庫使用matplotlib建立圖像figure的使用修改坐标軸添加legend圖例繪制散點圖繪制柱狀圖