轉載自:https://www.cnblogs.com/xianhan/p/9131156.html
保存圖片
plt.savefig('./waveform/my.png',dip=200) plt.show()
設置圖片大小
fig = plt.figure(figsize=(13.20, 7.75), dpi=100)
首先在python中使用任何第三方庫時,都必須先將其引入。即:
import matplotlib.pyplot as plt
或者:
from matplotlib.pyplot import *
1.建立空白圖
fig = plt.figure()
也可以指定所建立圖的大小
fig = plt.figure(figsize=(4,2))
也可以建立一個包含多個子圖的圖,使用語句:
plt.figure(figsize=(12,6)) plt.subplot(231) plt.subplot(232) plt.subplot(233) plt.subplot(234) plt.subplot(235) plt.subplot(236) plt.show()
其中subplot()
函數中的三個數字,第一個表示Y軸方向的子圖個數,第二個表示X軸方向的子圖個數,第三個則表示當前要畫圖的焦點。
可以看到圖中的x,y軸坐標都是從0到1,當然有時候我們需要其他的坐標起始值。
此時可以使用語句指定:
ax1.axis([-1, 1, -1, 1])
或者:
plt.axis([-1, 1, -1, 1]
2.向空白圖中添加內容,想你所想,畫你所想
首先給出一組數據:
x = [1, 2, 3, 4, 5] y = [2.3, 3.4, 1.2, 6.6, 7.0]
A.畫散點圖*
plt.scatter(x, y, color='r', marker='+') plt.show()
這里的參數意義:
- x為橫坐標向量,y為縱坐標向量,x,y的長度必須一致。
-
控制顏色:color為散點的顏色標志,常用color的表示如下:
b---blue c---cyan g---green k----black m---magenta r---red w---white y----yellow
有四種表示顏色的方式:
- 用全名
- 16進制,如:#FF00FF
- 灰度強度,如:‘0.7’
-
控制標記風格:marker為散點的標記,標記風格有多種:
. Point marker , Pixel marker o Circle marker v Triangle down marker ^ Triangle up marker < Triangle left marker > Triangle right marker 1 Tripod down marker 2 Tripod up marker 3 Tripod left marker 4 Tripod right marker s Square marker p Pentagon marker * Star marker h Hexagon marker H Rotated hexagon D Diamond marker d Thin diamond marker | Vertical line (vlinesymbol) marker _ Horizontal line (hline symbol) marker + Plus marker x Cross (x) marker
B.函數圖(折線圖)
數據還是上面的。
fig = plt.figure(figsize=(12, 6)) plt.subplot(121) plt.plot(x, y, color='r', linestyle='-') plt.subplot(122) plt.plot(x, y, color='r', linestyle='--') plt.show()
這里有一個新的參數linestyle,控制的是線型的格式:符號和線型之間的對應關系
- 實線 -- 短線 -. 短點相間線 : 虛點線
另外除了給出數據畫圖之外,我們也可以利用函數表達式進行畫圖,例如:y=sin(x)
from math import * from numpy import * x = arange(-math.pi, math.pi, 0.01) y = [sin(xx) for xx in x] plt.figure() plt.plot(x, y, color='r', linestyle='-.') plt.show()
C.扇形圖
示例:
import matplotlib.pyplot as plt y = [2.3, 3.4, 1.2, 6.6, 7.0] plt.figure() plt.pie(y) plt.title('PIE') plt.show()
D.柱狀圖bar
示例:
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2.3, 3.4, 1.2, 6.6, 7.0] plt.figure() plt.bar(x, y) plt.title("bar") plt.show()
E.二維圖形(等高線,本地圖片等)
import matplotlib.pyplot as plt import numpy as np import matplotlib.image as mpimg # 2D data delta = 0.025 x = y = np.arange(-3.0, 3.0, delta) X, Y = np.meshgrid(x, y) Z = Y**2 + X**2 plt.figure(figsize=(12, 6)) plt.subplot(121) plt.contour(X, Y, Z) plt.colorbar() plt.title("contour") # read image img=mpimg.imread('marvin.jpg') plt.subplot(122) plt.imshow(img) plt.title("imshow") plt.show() #plt.savefig("matplot_sample.jpg")
############################## plt.ion() plt.pause(0.01) 假如用plt.show的話會卡住這時一定要開另一個線程用plt.close關掉… 假如用plt.ion不會卡住,但一定要用plt.pause讓窗口保留
F.對所畫圖進行補充
__author__ = 'wenbaoli' import matplotlib.pyplot as plt from math import * from numpy import * x = arange(-math.pi, math.pi, 0.01) y = [sin(xx) for xx in x] plt.figure() plt.plot(x, y, color='r', linestyle='-') plt.xlabel(u'X')#fill the meaning of X axis plt.ylabel(u'Sin(X)')#fill the meaning of Y axis plt.title(u'sin(x)')#add the title of the figure plt.show()
如果我們想自定義坐標軸的標題,坐標軸的刻度,坐標軸刻度的范圍,設置圖形標題,添加圖例時,可以通過設置 pyplot 函數中的 xlable(橫坐標軸標題),
ylabel(縱坐標軸標題), xticks(橫坐標軸刻度),yticks(縱坐標軸刻度),title(圖形標題), grid(顯示網格),legend(顯示圖例)等屬性來實現
多條曲線畫在一個圖上,建立一個figure,然后使用多次plot即可,分開畫就一個figure配一個plot即可。