python子圖
㈠ python plt.plot怎麼把圖顯示出來
1, 導入matplotlib.pyplot, numpy 包:
import numpy as np
import matplotlib.pyplot as plt
2,添加主題樣式:
plt.style.use('mystyle')
3, 設置圖的大小,添加子圖:
fig = plt.figure(figsize=(5,5))
ax = fig.add_subplot(111)
4,繪制sin, cos:
x = np.arange(-np.pi, np.pi, np.pi / 100)
y1 = np.sin(x)
y2 = np.cos(x)
sin, = ax.plot(x, y1, color='red', label='sin')
cos, = ax.plot(x, y2, color='blue', label='cos')
ax.set_ylim([-1.2, 1.2])
第二種方式 拆分顯示
sin_legend = ax.legend(handles=[sin], loc='upper right')
ax.add_artist(sin_legend)
ax.legend(handles=[cos], loc='lower right')
plt.show()
import numpy as np
import matplotlib.pyplot as plt
# 添加主題樣式
plt.style.use('mystyle')
# 設置圖的大小,添加子圖
fig = plt.figure(figsize=(5,5))
ax = fig.add_subplot(111)
for color in ['red', 'green']:
n = 750
x, y = np.random.rand(2, n)
scale = 200.0 * np.random.rand(n)
ax.scatter(x, y, c=color, s=scale,
label=color, alpha=0.3,
edgecolors='none')
ax.legend()
ax.grid(True)
plt.show()
㈡ python中fig,ax=plt.subplots什麼意思
fig,ax=plt.subplots的意思是將plt.subplots()函數的返回值賦值給fig和ax兩個變數。
plt.subplots()是一個函數,返回一個包含figure和axes對象的元組,因此,使用fig,ax=plt.subplots()將元組分解為fig和ax兩個變數。
通常,我們只用到ax:
fig,ax = plt.subplots(nrows=2, ncols=2)
axes = ax.flatten()
把父圖分成2*2個子圖,ax.flatten()把子圖展開賦值給axes,axes[0]便是第一個子圖,axes[1]是第二個。
(2)python子圖擴展閱讀
在matplotlib中,整個圖像為一個Figure對象。在Figure對象中可以包含一個或者多個Axes對象。每個Axes(ax)對象都是一個擁有自己坐標系統的繪圖區域。所屬關系如下:
def subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True,
subplot_kw=None, gridspec_kw=None, **fig_kw):
參數:
nrows,ncols:子圖的行列數。
sharex, sharey:
設置為 True 或者 『all』 時,所有子圖共享 x 軸或者 y 軸,
設置為 False or 『none』 時,所有子圖的 x,y 軸均為獨立,
設置為 『row』 時,每一行的子圖會共享 x 或者 y 軸,
設置為 『col』 時,每一列的子圖會共享 x 或者 y 軸。
返回值
fig:matplotlib.figure.Figure對象
ax:子圖對象(matplotlib.axes.Axes)或者是他的數組
㈢ python畫多個子圖如何標注圖a 圖b這種標注
#設置圖的標題
a.set_title('a')
b.set_title('b')
㈣ 見圖。python matplotlib 子圖圖例不顯示完全。怎麼解決
ax[0].legend(),ax[1].legend(),直接使用plt.legend()一般只會出現一個
㈤ python 如何繪制子圖的同時繪制雙坐標軸圖像
用subplots替代subplot,因為在兩者都可以畫子圖的情況下,subplots也可以同時畫雙y軸。
fig, ax = plt.subplots(2,2) #產生4個子圖
在第1個子圖里畫雙y軸:
ax[0].plot(x,y10) #畫子圖1的第一個y軸值
ax[0].set_ylabel('num0') #標記它的第一個縱坐標為'num0'
ax01 = ax[0].twinx() #產生子圖1里的第二個縱坐標
ax01.plot(x,y11, )#畫子圖1的第二個y軸值
ax01.set_ylabel('num01')#標記子圖1里的第二個縱坐標,用'num01'表示
再畫第2個子圖里的雙y軸:
ax[1].plot(x,y20) #畫子圖2的第一個y軸值
ax[1].set_ylabel('num1') #標記它的第一個縱坐標為'num1'
ax11 = ax[1].twinx() #產生子圖1里的第二個縱坐標
ax11.plot(x,y21, )#畫子圖1的第二個y軸值
ax11.set_ylabel('num11')#標記子圖1里的第二個縱坐標,用'num11'表示
同理,第三第四個子圖。。。。
㈥ python matplotlib模塊 如何畫兩張圖出來
python matplotlib模塊 如何畫兩張圖出來的方法:
代碼如下所示:
import numpy as np
import matplotlib.pyplot as plt
#創建自變數數組
x= np.linspace(0,2*np.pi,500)
#創建函數值數組
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(x*x)
#創建圖形
plt.figure(1)
'''
意思是在一個2行2列共4個子圖的圖中,定位第1個圖來進行操作(畫圖)。
最後面那個1表示第1個子圖。那個數字的變化來定位不同的子圖
'''
#第一行第一列圖形
ax1 = plt.subplot(2,2,1)
#第一行第二列圖形
ax2 = plt.subplot(2,2,2)
#第二行
ax3 = plt.subplot(2,1,2)
#選擇ax1
plt.sca(ax1)
#繪制紅色曲線
plt.plot(x,y1,color='red')
#限制y坐標軸范圍
plt.ylim(-1.2,1.2)
#選擇ax2
plt.sca(ax2)
#繪制藍色曲線
plt.plot(x,y2,'b--')
plt.ylim(-1.2,1.2)
#選擇ax3
plt.sca(ax3)
plt.plot(x,y3,'g--')
plt.ylim(-1.2,1.2)
plt.show()
附上效果圖。
㈦ python matplotlib subplot 上面面積大下面小怎麼辦
在matplotlib下,一個Figure對象可以包含多個子圖(Axes),可以使用subplot()快速繪制,其調用形式如下:
subplot(numRows, numCols, plotNum)
圖表的整個繪圖區域被分成numRows行和numCols列,plotNum參數指定創建的Axes對象所在的區域,如何理解呢?
如果numRows = 3,numCols = 2,那整個繪制圖表樣式為3X2的圖片區域,用坐標表示為(1,1),(1,2),(1,3),(2,1),(2,2),(2,3)。這時,當plotNum = 1時,表示的坐標為(1,3),即第一行第一列的子圖;
import numpy as np
㈧ Python的 matplotlib畫圖,怎麼把子圖的每個橫坐標顯示出來
ax = subplots(nrows,ncols,sharex,sharey,squeeze,subplot_kw,gridspec_kw,**fig_kw)
創建畫布和子圖。
nrows和ncols表示將畫布分割成幾行幾列 ,
sharex和sharey表是共用xy軸的設置。
squeeze bool
a.默認參數為True:額外的維度從返回的Axes(軸)對象中擠出,對於N*1或1*N個子圖,返回一個1維數組,對於N*M,N>1和M>1返回一個2維數組。
b.為False,不進行擠壓操作:返回一個元素為Axes實例的2維數組,即使它最終是1x1。
subplot_kw:字典類型,可選參數。把字典的關鍵字傳遞給add_subplot()來創建每個子圖。
subplot_kw:字典類型,可選參數。把字典的關鍵字傳遞給add_subplot()來創建每個子圖。
gridspec_kw:字典類型,可選參數。把字典的關鍵字傳遞給GridSpec構造函數創建子圖放在網格里(grid)。
**fig_kw:把所有詳細的關鍵字參數傳給figure()函數。
可見你沒有辦法單獨設置某個子圖的ax的。