攝影或3C

Python: matplotlib繪圖如何共用x axis, y axis, x label, ylabel? fig, axs = plt.subplots(nrows=2, ncols=3, sharex=True, sharey=True) ; plt.suplabel()

import matplotlib.pyplot as plt
import numpy as np

 

# 生成測試資料
x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)

 

# 建立子圖
fig, axs = plt.subplots(nrows=2, ncols=3, sharex=True, sharey=True)

 

# 繪製圖形
for i in range(2):
  for j in range(3):
      axs[i,j].plot(x, y)
   
# 設定標題和軸標籤
for ax, col in zip(axs[0], [‘Col1’, ‘Col2’, ‘Col3’]):
  ax.set_title(col, fontsize=14)
for ax, row in zip(axs[:,0], [‘Row1’, ‘Row2’]):
  ax.set_ylabel(row, rotation=0, size=’large’, labelpad=15)
#labelpad 是指定刻度标签和轴线(或其他元素)之间的间距。
# 例如,如果设置 labelpad=10,则标签和轴线之间的间距为 10 点大小。
fig.text(0.5, 0.05, ‘x’, ha=’center’, va=’center’, fontsize=16)
fig.text(0.05, 0.5, ‘y’, ha=’center’, va=’center’,
       rotation=’vertical’, fontsize=16)

 

plt.show()
輸出:
使用suplabel共用x y label:

import matplotlib.pyplot as plt
import numpy as np

# 创建 3 个子图
fig, axs = plt.subplots(nrows=3, ncols=2, figsize=(8, 8))

# 在每个子图上绘制一个简单的曲线
for i in range(3):
    for j in range(2):
        x = np.linspace(0, 2*np.pi, 100)
        y = np.sin((i+1)*x + j*np.pi/2)
        axs[i,j].plot(x, y)

# 添加共同的 x 标签
plt.suplabel(‘X Label’, ‘x’)

# 添加共同的 y 标签
plt.suplabel(‘Y Label’, ‘y’)

plt.show()

輸出:
儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡