Python學習筆記——matplotlib pyplot繪製子圖

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
最常用的是第三個fig,axes = plt.subplots的方法。

plt.figure+plt.plot

直接plot會自動生成figure,如果設置figure(num圖表序號,figsize圖表大小),則每個plot會放到最近的figure中。

fig1=plt.figure(num=1,figsize=(4,3))
plt.plot(np.random.rand(50).cumsum(),'k--')#被放在num=1的figure中

fig2=plt.figure(num=2,figsize=(8,6))
s=pd.Series(np.random.rand(20))
s.plot(kind='bar',edgecolor='b')#被放在num=2的figure中
plt.xticks(np.arange(0,22,2))#只對最近的figure作用

plt.figure+fig.add_subplot

用plt.figure創建fig。
ax1=fig.add_subplot(1,2,1)生成尺寸爲1行2列的兩個子圖的第一個,subplot的標號從1開始。
可以利用plt.plot()在最近的子圖中繪圖,或者ax1.plot()在聲明的ax1子圖中繪圖。

# 先創建figure,再add_subplot
fig=plt.figure(figsize=(10,4),facecolor='gray')

# 創建子圖後plt.plot會繪製到距離最近的子圖中
ax1=fig.add_subplot(1,2,1)#從1開始編號
plt.plot(np.random.rand(50),'k--.')
plt.plot(np.random.rand(50),'r-x')

# ax2.plot直接在子圖後用圖表創建函數直接生成圖表
ax2 = fig.add_subplot(1,2,2)  # 第二行的右圖
df = pd.DataFrame(np.random.rand(10, 3), columns=['a', 'b', 'c'])
ax2.plot(df,alpha=0.5,linestyle='--',marker='x')

在這裏插入圖片描述

plt.subplots+axes[0,1].plot()

用plt.subplots創建figure,並返回subplot對象的numpy數組。
利用數組索引在相應的子圖中plot。

fig,axes = plt.subplots(1,3,sharex=True,sharey=True,figsize=(12,3))
# sharex,sharey:是否共享x,y刻度
plt.subplots_adjust(wspace=0.3,hspace=0)
# wspace,hspace:用於控制寬度和高度的百分比,subplot之間的間距

#在子圖上plot,一維只需要一個索引參數,二維有兩個,行列都從0開始編號。
axes[0].plot(np.random.rand(10),'b--')

#在daraframe上plot,ax標註子圖
df=pd.DataFrame(np.random.rand(10,3),columns=list('abc'))
df.plot(kind='bar',ax=axes[2],grid=True,colormap='Blues_r',stacked=True,edgecolor='black')#stacled=True 堆疊柱狀圖

在這裏插入圖片描述

subplots參數

subplots參數確定是否分別繪製子圖,layout調整子圖佈局。

df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))
df = df.cumsum()
df.plot(style = '--.',alpha = 0.8,grid = True,figsize = (8,8),
       subplots = True,#是否分別繪製子圖,False則繪製在一張圖上
       layout = (2,2),#更改子圖佈局,按順序填充
       sharex = False, sharey=True)#是否共享座標
plt.subplots_adjust(wspace=0,hspace=0.2)#子圖水平、垂直方向的間距

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章