一.Matplotlib的基礎知識html
Matplotlib中的基本圖表包括的元素dom
import numpy as np import pandas as pd import matplotlib.pyplot as plt from pandas import Series,DataFrame
包含單條曲線的圖ide
注意:y,x軸的值必須爲數字svg
x=[1,2,3,4,5] y=[2,4,6,8,10] plt.plot(x,y)
拋物線函數
x = np.linspace(-np.pi,np.pi,num=20) y = x**2 plt.plot(x,y)
正弦曲線字體
x y = np.sin(x) plt.plot(x,y)
包含多個曲線的圖this
一、連續調用屢次plot函數spa
plt.plot(x,y)
plt.plot(x+2,y+3)
二、也能夠在一個plot函數中傳入多對X,Y值,在一個圖中繪製多個曲線code
plt.plot(x,y,x+1,y-2)
將多個曲線圖繪製在一個table區域中:對象形式建立表圖orm
a=plt.subplot(row,col,loc) 建立曲線圖
a.plot(x,y) 繪製曲線圖
ax1 = plt.subplot(221) ax1.plot(x,y) ax2 = plt.subplot(2,2,2) ax2.plot(x,y) ax3 = plt.subplot(2,2,3) ax3.plot(x,y) ax4 = plt.subplot(2,2,4) ax4.plot(x,y)
網格線 plt.gride(XXX)
參數:
- axis
- color:支持十六進制顏色
- linestyle: -- -. :
- alpha
plt.plot(x,y) plt.grid(axis='both',c='blue')
繪製一個正弦曲線圖,並設置網格
plt.plot(x,y,c='red',alpha=0.7)
座標軸界限
#axis方法:設置x,y軸刻度值的範圍 plt.axis([xmin,xmax,ymin,ymax])
plt.plot(x,y) plt.axis([-6,6,-2,2]) #plt.axis('off')
plt.axis('off') 關閉座標軸
設置畫布比例:plt.figure(figsize=(a,b)) a:x刻度比例 b:y刻度比例 (2:1)表示x刻度顯示爲y刻度顯示的2倍
plt.figure(http://localhost:8889/notebooks/oldBoy%E6%95%B0%E6%8D%AE%E6%8E%88%E8%AF%BE%202/part_5/matplotlib.ipynb#%E8%AE%BE%E7%BD%AE%E7%94%BB%E5%B8%83%E6%AF%94%E4%BE%8B%EF%BC%9Aplt.figure(figsize=(a,b))-a:x%E5%88%BB%E5%BA%A6%E6%AF%94%E4%BE%8B---b%EF%BC%9Ay%E5%88%BB%E5%BA%A6%E6%AF%94%E4%BE%8B--%EF%BC%882:1%EF%BC%89%E8%A1%A8%E7%A4%BAx%E5%88%BB%E5%BA%A6%E6%98%BE%E7%A4%BA%E4%B8%BAy%E5%88%BB%E5%BA%A6%E6%98%BE%E7%A4%BA%E7%9A%842%E5%80%8Dfigsize=(6,6)) plt.plot(x,y)
座標軸標籤
s 標籤內容
color 標籤顏色
fontsize 字體大小
rotation 旋轉角度
plt.plot(x,y) plt.xlabel('aaa') plt.ylabel('bbb') plt.title('ccc')
圖例
兩種傳參方法:
plt.plot(x,y,label='aaa') plt.plot(x+2,y+3,label='bbb') plt.legend(loc=0,ncol=2)
- loc參數
- ncol參數
ncol控制圖例中有幾列,在legend中設置ncol
保存圖片
使用figure對象的savefig函數來保存圖片
fig = plt.figure()---必須放置在繪圖操做以前
figure.savefig的參數選項
fig = plt.figure() plt.plot(x,y,label='aaa') plt.plot(x+2,y+3,label='bbb') plt.legend(loc=0,ncol=2) fig.savefig('./123.png',dpi=500)
設置plot的風格和樣式
plot語句中支持除X,Y之外的參數,以字符串形式存在,來控制顏色、線型、點型等要素,語法形式爲:
plt.plot(X, Y, 'format', ...)
參數color或c
顏色 | 別名 | HTML顏色名 | 顏色 | 別名 | HTML顏色名 |
---|---|---|---|---|---|
藍色 | b | blue | 綠色 | g | green |
紅色 | r | red | 黃色 | y | yellow |
青色 | c | cyan | 黑色 | k | black |
洋紅色 | m | magenta | 白色 | w | white |
alpha參數
參數linestyle或ls
線條風格 | 描述 | 線條風格 | 描述 |
---|---|---|---|
'-' | 實線 | ':' | 虛線 |
'--' | 破折線 | 'steps' | 階梯線 |
'-.' | 點劃線 | 'None' / ',' | 什麼都不畫 |
plt.plot(x,y,ls='steps',lw=10)
linewidth或lw參數
標記 | 描述 | 標記 | 描述 |
---|---|---|---|
's' | 正方形 | 'p' | 五邊形 |
'h' | 六邊形1 | 'H' | 六邊形2 |
'8' | 八邊形 |
標記 | 描述 | 標記 | 描述 |
---|---|---|---|
'.' | 點 | 'x' | X |
'*' | 星號 | '+' | 加號 |
',' | 像素 |
標記 | 描述 | 標記 | 描述 |
---|---|---|---|
'o' | 圓圈 | 'D' | 菱形 |
'd' | 小菱形 | '','None',' ',None | 無 |
標記 | 描述 | 標記 | 描述 |
---|---|---|---|
'1' | 一角朝下的三腳架 | '3' | 一角朝左的三腳架 |
'2' | 一角朝上的三腳架 | '4' | 一角朝右的三腳架 |
plt.plot(x,y,marker='d',markersize=10)
# 繪製線 plt.plot(x1,y1,x2,y2) # 網格線 plt.grid(True) axes.grid(color,ls,lw,alpha) # 獲取座標系 plt.subplot(n1,n2,n3) # 座標軸標籤 plt.xlabel() plt.ylabel() # 座標系標題 plt.title() # 圖例 plt.legend([names],ncol=2,loc=1) plt.plot(label='name') # 線風格 -- -. : None step # 圖片保存 figure.savefig() # 點的設置 marker markersize markerfacecolor markeredgecolor\width # 座標軸刻度 plt.xticks(刻度列表,刻度標籤列表) plt.yticks() # axes.set_xticks(刻度列表) axes.set_xticklabels(刻度標籤列表)
二.2D圖形
【直方圖的參數只有一個x!!!不像條形圖須要傳入x,y】
plt.hist()的參數
data = [1,2,3,3,4,2,5]
plt.hist(data,bins=10)
返回值 :
1: 直方圖向量,是否歸一化由參數normed設定
2: 返回各個bin的區間範圍
3: 返回每一個bin裏面包含的數據,是一個list
-【條形圖有兩個參數x,y】
bar()、barh()
num = [1,2,3,4,5] count = [2,4,6,8,10] plt.barh(num,count)
barh()
【餅圖也只有一個參數x】
pie()
餅圖適合展現各部分佔整體的比例,條形圖適合比較各部分的大小
普通各部分佔滿餅圖
普通未佔滿餅圖:小數/比例
餅圖陰影、分裂等屬性設置 #labels參數設置每一塊的標籤; #labeldistance參數設置標籤距離圓心的距離(比例值) #autopct參數設置比例值小數保留位(%.3f%%); #pctdistance參數設置比例值文字距離圓心的距離 #explode參數設置每一塊頂點距圓心的長度(比例值,列表); #colors參數設置每一塊的顏色(列表); #shadow參數爲布爾值,設置是否繪製陰影 #startangle參數設置餅圖起始角度
【散點圖須要兩個參數x,y,但此時x不是表示x軸的刻度,而是每一個點的橫座標!】
scatter()
x = np.random.randint(0,10,size=(20,))
y = np.random.randint(0,10,size=(20,))
plt.scatter(x,y,marker='d',c="rbgy") 設置不一樣的散點顏色
plt.scatter(x,y,c='rgyb')
x = [1,2,3,4,5] y = [2,4,6,8,10] plt.scatter(x,y)