You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Matplotlib+Seaborn创建特定布局的4个子图并控制轴样式

实现指定子图布局并使用Seaborn绘图的解决方案

要实现2个横向排列的大图+右侧垂直堆叠的2个小图(总高度与大图一致)的布局,不能用两个独立画布,得用matplotlib.gridspec.GridSpec来统一控制布局,结合Seaborn绘图并自定义轴样式,代码示例如下:

import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec
import seaborn as sns
import numpy as np

# 生成示例数据
np.random.seed(42)
data1 = np.random.normal(0, 1, 100)
data2 = np.random.normal(2, 1.5, 100)
data3 = np.random.randint(0, 10, 50)
data4 = np.random.uniform(0, 1, 50)

# 创建主画布和GridSpec布局
# 宽度比例:左侧大图区域占8份,右侧小图区域占2份;高度统一为1份
fig = plt.figure(figsize=(16, 6))
gs = GridSpec(2, 3, width_ratios=[4, 4, 2], height_ratios=[1, 1])

# 提取各个子图的轴对象
ax1 = fig.add_subplot(gs[:, 0])  # 左侧大图,占满整个高度
ax2 = fig.add_subplot(gs[:, 1])  # 中间大图,占满整个高度
ax3 = fig.add_subplot(gs[0, 2])  # 右侧上方小图
ax4 = fig.add_subplot(gs[1, 2])  # 右侧下方小图

# 使用Seaborn绘图,指定对应的轴
sns.histplot(data=data1, ax=ax1, kde=True, color='skyblue')
sns.histplot(data=data2, ax=ax2, kde=True, color='salmon')
sns.boxplot(x=data3, ax=ax3, color='lightgreen')
sns.scatterplot(x=np.arange(50), y=data4, ax=ax4, color='purple')

# 自定义轴样式示例
def customize_axis(ax, title, xlabel, ylabel):
    ax.set_title(title, fontsize=12, fontweight='bold')
    ax.set_xlabel(xlabel, fontsize=10)
    ax.set_ylabel(ylabel, fontsize=10)
    # 自定义刻度样式
    ax.tick_params(axis='both', labelsize=9, color='darkgray')
    # 隐藏右侧和顶部边框
    ax.spines['right'].set_visible(False)
    ax.spines['top'].set_visible(False)

# 应用自定义样式到每个轴
customize_axis(ax1, '数据集1分布', '数值', '频数')
customize_axis(ax2, '数据集2分布', '数值', '频数')
customize_axis(ax3, '数据集3箱线图', '类别', '')
customize_axis(ax4, '数据集4散点图', '索引', '数值')

# 调整子图间距,避免重叠
plt.tight_layout()
plt.show()

关键说明:

  • GridSpec(2,3, width_ratios=[4,4,2], height_ratios=[1,1]):设置2行3列的网格,宽度比例控制左右区域的宽度,高度比例让右侧两个小图高度相等,总高度和左侧大图一致。
  • 通过fig.add_subplot(gs[:,0])这类方式精确指定每个子图占据的网格位置,确保布局符合需求。
  • Seaborn绘图时通过ax参数指定绘图的轴,实现同一画布内的多子图绘制。
  • 自定义轴样式可以通过封装函数批量处理,也可以单独对每个轴进行调整,灵活控制刻度、边框、标签等元素。

内容的提问来源于stack exchange,提问作者stasia_l

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 14:35:23