Matplotlib學習筆記

2021-09-23 23:58:18 字數 3904 閱讀 4550

在最開始接觸python科學計算的時候,就知道了matplotlib這個繪相簿。個人是比較喜歡這種視覺化的工具,照我看,gui這種理念幾乎是劃時代的。如果說numpy是用來處理資料,那麼matplotlib就是用來展示資料的,抽象的資料,以圖表的形式展示出來,無論是對自己,還是對看到的人,接受起來都比較輕鬆,也跟更容易發現資料內部隱藏著的某些規律性。

matplotlib似乎是模仿的matlab,matlab沒有接觸過,但是matplotlib是真的很好用,畫出來的圖都很優雅,可調整的引數也很多,並且剛開始學也不複雜,官網的幫助文件講的也都很詳細,深入的話當然還是有很多東西的。平常最常用的是pyplot模組,入手並不難,下面簡單紀錄下,順便多說句,matplotlib與numpy高度整合,轉換的時候毫無滯礙。

文章參見這裡:

example1:

# -*- coding:utf-8 -*-

# 匯入相關模組

import numpy as np

import matplotlib.pyplot as plt

x = np.arange(0, 5, 0.1) # 生成乙個numpy陣列物件

y = np.sin(x)

plt.plot(x, y) # 先是x座標,後是y座標

plt.show() #沒有這句就畫不出圖

這是最簡單的,plot裡的引數都是預設的。效果如下:

看起來是曲線,其實都是直線,只是因為點與點之間的距離很小,看起來比較平滑,plot缺省會將點連線成線

example2:

plt.plot([1, 2, 3, 4])

# 增加乙個y軸的標籤,pyplot模組本身提供了方法

這個地方,plot()只提供了乙個引數,matplotlib預設是y的,那x的怎麼辦,matplotlib很聰明,它會自動生成乙個,規律就是:從0開始,長度與y相同,效果就就是上圖,可以發現,給座標軸增加標籤很簡單

example3:

plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro') # 多了個引數,自定義顯示效果

# 增加圖名、x和y軸的名字

plt.title('dot')

plt.xlabel('x')

plt.ylabel('y')

# axis方法定義x軸和y軸的屬性

plot預設是藍色實線,這裡在plot裡增加乙個引數'ro',顯示就變成紅色圓點了,更多的效果參照下圖。

axis方法改變了座標的屬性,引數為[xmin, xmax, ymin, ymax]

example4:

t = np.arange(0, 5, 0.2)

# plot可以同時接收多個引數

從這個例子中可以看到pyplot的靈活性,效果很多樣,都可以自定義,還可以同時接受多個引數繪製在一張圖表裡

example5:

x = np.arange(0, 5, 0.1)

# plot可以接受更多的引數

matplotlib裡有專門的line2d物件,屬性很多,遠不止這兩個,還得繼續學習呢

example6:

# 定義乙個函式

def f(t):

return np.exp(-t) * np.cos(2*np.pi*t)

t1 = np.arange(0, 5, 0.1)

t2 = np.arange(0, 5, 0.02)

# 分塊

分塊顯示,應用起來很實際。subplot裡的三位數字,第乙個表示行數,第二個表示列數,第三個表示編號。數字相同的話,後面的影象會把前面的覆蓋

example7:

mu, sigma = 100, 15

x = mu + sigma * np.random.randn(10000)

# hist繪製直方圖

n, bins, patches = plt.hist(x, 50, normed=1, alpha=0.75)

# text也是個有著複雜屬性的物件

# matplotlib還可以自動轉換成數學表示式

這個例子就複雜很多,其中有兩點,乙個是hist,另乙個是text物件

可參照以下**:

想畫出這樣的圖自然沒那麼簡單,參照:#matplotlib.pyplot.annotate

Matplotlib學習筆記(三)

import matplotlib.pyplot as plt import numpy as np x np.linspace 3,3,50 y 2 x 1 plt.figure num 1,figsize 8,5 plt.plot x,y ax plt.gca ax.spines right s...

Matplotlib學習筆記(四)

import matplotlib.pyplot as plt import numpy as np n 1024 x np.random.normal 0,1,n y np.random.normal 0,1,n t np.arctan2 y,x for color value plt.scatt...

Python學習筆記 matplotlib引數

越學坑越多,哭!來不及做圖了。1 柱狀圖 matplotlib.pyplot.bar args,kwargs bar left,height,width,bottom,args,align center kwargs 引數 left 資料標量 height 高 width 款 bottom 底端對應...