Python matplotlib如何刪除subplots中多余的空白子圖
matplotlib刪除subplots中多余的空白子圖
通過fig.delaxes方法,將axes坐標參數(shù)傳入即可刪除對應坐標的子圖
fig, axes = plt.subplots(3, 4)
index = 0
for i in range(3):
for j in range(4):
sns.histplot(norm_data.iloc[:, index], kde=True, color='k', bins=30, ax=axes[i][j])
index += 1
fig.delaxes(axes[2][3])
Subplot和Subplots繪制子圖
plot可以繪出精美的圖形,但是如果想要在一張圖中展示多個子圖,plot就很難辦了。
matplotlib提供了subplot來解決這一問題。(其實很像matlab中的繪圖方法)
Subplot繪圖方法
首先利用之前plot的方法,在一個人圖中繪制兩個曲線:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0.0, 5.0)
y1 = np.sin(np.pi*x)
y2 = np.sin(np.pi*x*2)
plt.plot(x, y1, 'b--', label='sin(pi*x)')
plt.ylabel('y1 value')
plt.plot(x, y2, 'r--', label='sin(pi*2x)')
plt.ylabel('y2 value')
plt.xlabel('x value')
plt.title('this is x-y value')
plt.legend()
plt.show()

現(xiàn)在的效果是兩個圖像擠在一張圖片中,有些情況下這樣的布局比較好,有些情況下則需要將兩個曲線分開到兩個不同的子圖像中繪制,這樣可以如下:
subplot在指定分割子圖個數(shù)和定位子圖時可以使用參數(shù)連寫的方式如:plt.subplot(221)
plt.subplot(211)
plt.plot(x,y1,'b--',label='sin(pi*x)')
plt.ylabel('y1 value')
plt.subplot(212)
plt.plot(x,y2,'r--',label='sin(pi*2x)')
plt.ylabel('y2 value')
plt.xlabel('x label')
plt.show()

plt.subplot(2,1,1)會將原始的圖像切割成2個子圖像,是2行1列,并將現(xiàn)在的操作位置轉到第一個子圖上,這樣便實現(xiàn)了繪制子圖的方法。
如果指定的是plt.subplot(2,2,1),表示將會切割成2行2列額4個子圖,那么將會是如下情況:
plt.subplot(221)
plt.plot(x,y1,'b--',label='sin(pi*x)')
plt.ylabel('y1 value')
plt.subplot(222)
plt.plot(x,y2,'r--',label='sin(pi*2x)')
plt.ylabel('y2 value')
plt.xlabel('x label')

填充所有子圖:
plt.subplot(221)
plt.plot(x, y1, 'b--')
plt.ylabel('y1')
plt.subplot(222)
plt.plot(x, y2, 'r--')
plt.ylabel('y2')
plt.xlabel('x')
plt.subplot(223)
plt.plot(x, y1, 'r*')
plt.subplot(224)
plt.plot(x, y1, 'b*')

Subplots繪圖方法
subplots返回的值的類型為元組,其中包含兩個元素:第一個為一個畫布,第二個是子圖


subplots指定一個子圖:

subplots指定多個子圖:

可見,畫布被分為了4各部分,而ax變成了一個包含四個子圖對象的array
現(xiàn)在可以針對每一個子圖進行畫圖:

總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python優(yōu)雅實現(xiàn)二分查找的示例詳解
二分查找是一種高效的搜索算法,用于在有序數(shù)組中查找特定元素,本文將介紹二分查找的基本原理,并通過Python代碼進行詳細講解,需要的可以參考一下2023-07-07
使用Python進行有效的數(shù)據(jù)脫敏的常用方法
數(shù)據(jù)脫敏(Data Masking)是在數(shù)據(jù)處理和分析過程中,對敏感信息進行處理,以保護個人隱私和企業(yè)機密的一種技術手段,數(shù)據(jù)脫敏的目的是不會泄露敏感信息,同時保持數(shù)據(jù)的可用性和分析價值,本文給大家介紹了使用Python進行有效的數(shù)據(jù)脫敏的常用方法,需要的朋友可以參考下2025-03-03
python 計算數(shù)組中每個數(shù)字出現(xiàn)多少次--“Bucket”桶的思想
這篇文章主要介紹了python 計算數(shù)組中每個數(shù)字出現(xiàn)多少次--“Bucket”桶的思想,需要的朋友可以參考下2017-12-12

