matplotlib 子图没有间隙,但最后一个

2024-03-01

我试图弄清楚如何才能达到标题主题中报告的结果,基本上我希望获得子图 1 列 4 行,第 1,2,3 行中没有间隙,第 1,2 行之间有正常间隙, 3块和4块 现在我刚刚使用 subplot_adjust 获得了一个没有间隙的 4 行图,如下所示:

fig.subplots_adjust(wspace=0, hspace=0)

这里是完整的代码:

fig,axs = SansItalic(**{'lines.linewidth': 3} )(4,1,(14.0,14.0))


axs[0].plot(a1,a2,label='45 60',color='C5')   # ,linestyle=(0, (1, 1)))
axs[0].plot(a13,a14,label='57 75',color='C4') #,linestyle=(0, (1, 1)))

axs[1].plot(a11,a12,label='55 70',color='C3')#,linestyle=(0, (1, 1)))
axs[1].plot(a3,a4,label='60 80', color='C2')

axs[2].plot(a5,a6,label='70 90',color='C0')
#axs[2].plot(a7,a8,label='85 106',color='C1')
axs[2].plot(a9,a10,label='90 110',color='C1')
  fig.subplots_adjust(wspace=0, hspace=0)
  axs[0].plot(a1,a2,label='45 60',color='C5')  
  axs[0].plot(a13,a14,label='57 75',color='C4')

  axs[1].plot(a11,a12,label='55 70',color='C3')
axs[1].plot(a3,a4,label='60 80', color='C2')

axs[2].plot(a5,a6,label='70 90',color='C0')
#axs[2].plot(a7,a8,label='85 106',color='C1')
axs[2].plot(a9,a10,label='90 110',color='C1')
fig.subplots_adjust(wspace=0, hspace=0)

axs[3].plot(b1,b2,label='45 60', color='C5')
axs[3].plot(b3,b4,label='60 80', color='C2')
axs[3].plot(b11,b12,label='55 70', color='C3')
axs[3].plot(b13,b14,label='57 75',color='C4')
axs[3].plot(b5,b6,label='70 90', color='C0')
axs[3].set(ylabel = 'Re$_\lambda$')



  axs[0].set_title('m=3e7 - Polymer length', y=1.05)


  fig.subplots_adjust(wspace=0, hspace=0)

   axs[0].set_xlim([0,19])
   axs[1].set_xlim([0,19])
   axs[2].set_xlim([0,19])
   axs[3].set_xlim([0,19])
   axs[0].legend()

   axs[1].legend()
   axs[2].legend()
   axs[3].legend()
   plt.savefig('plot_sp_m3e7.pdf')
   plt.show()

Where SansItalic is a simple class self done in which i just define the fonts and some rc-parameters with this code I obtain the four subplot without space, but I would like to have a normal gaps in the last this is what I obtain now : enter image description here


替代方案@GlobalTraveler 的回答 https://stackoverflow.com/a/54746353/1356000是链接两个 Gridspec 定义。看在这里了解更多信息 https://matplotlib.org/users/gridspec.html关于 GridSpec 提供的可能性。

outer_gs = matplotlib.gridspec.GridSpec(2,1, height_ratios=[3,1], hspace=0.2)
inner_gs = matplotlib.gridspec.GridSpecFromSubplotSpec(3,1, subplot_spec=gs0[0], hspace=0)

fig = plt.figure()
ax1 = fig.add_subplot(inner_gs[0])
ax2 = fig.add_subplot(inner_gs[1])
ax3 = fig.add_subplot(inner_gs[2])
ax4 = fig.add_subplot(outer_gs[1])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matplotlib 子图没有间隙,但最后一个 的相关文章

  • 如何使用 Python 裁剪图像中的矩形

    谁能给我关于如何裁剪两个矩形框并保存它的建议 我已经尝试过这段代码 但效果不佳 import cv2 import numpy as np Run the code with the image name keep pressing spa
  • Python GTK + webkit - 在 gtk.main() 之后插入 JavaScript

    我在终端中尝试了这个 一切正常 但是如果我在脚本内运行这个 我无法在 gtk main 之后插入 JavaScript import gtk import webkit w gtk Window b webkit WebView w add
  • Python 的 mysqldb 晦涩文档

    Python 模块 mysqldb 中有许多转义函数 我不理解它们的文档 而且我努力查找它们也没有发现任何结果 gt gt gt print mysql escape doc escape obj dict escape any speci
  • 将一维数组转换为下三角矩阵

    我想将一维数组转换为较低的零对角矩阵 同时保留所有数字 我知道numpy tril函数 但它用零替换了一些元素 我需要扩展矩阵以包含所有原始数字 例如 10 20 40 46 33 14 12 46 52 30 59 18 11 22 30
  • Django 不会以奇怪的错误“AttributeError: 'module' object has no attribute 'getargspec'”启动

    我对 Django 的内部结构有点缺乏经验 所以我现在完全陷入困境 它昨天起作用了 但我不记得我改变过任何重要的东西 当我转身时DEBUG True任何恰好位于列表中第一个的模块上都有堆栈跟踪 Traceback most recent c
  • NumPy 和 SciPy - .todense() 和 .toarray() 之间的区别

    我想知道使用是否有什么区别 优点 缺点 toarray vs todense 在稀疏 NumPy 数组上 例如 import scipy as sp import numpy as np sparse m sp sparse bsr mat
  • Django 模型字段默认基于另一个模型字段

    我使用 Django Admin 构建一个管理站点 有两张表 一张是ModelA其中有数据 另一个是ModelB里面什么也没有 如果一个模型字段b b in ModelB为None 可以显示在网页上 值为ModelA的场a b 我不知道该怎
  • 返回上个月的日期时间对象

    如果 timedelta 在它的构造函数中有一个月份参数就好了 那么最简单的方法是什么 EDIT 正如下面指出的那样 我并没有认真考虑这一点 我真正想要的是上个月的任何一天 因为最终我只会获取年份和月份 因此 给定一个日期时间对象 返回的最
  • 在 iPython/pandas 中绘制多条线会生成多个图

    我试图了解 matplotlib 的状态机模型 但在尝试在单个图上绘制多条线时遇到错误 据我了解 以下代码应该生成包含两行的单个图 import pandas as pd import pandas io data as web aapl
  • uri 警告中缺少端口:使用 Python OpenCV cv2.VideoCapture() 打开文件时出错

    当我尝试流式传输 ipcam 时 出现了如下所示的错误 tcp 000000000048c640 uri 中缺少端口 警告 打开文件时出错 build opencv modules videoio src cap ffmpeg impl h
  • 如何正确导入主代码和模块中同时使用的模块?

    假设我有一个主脚本 main py 它导入另一个 python 文件import coolfunctions另一个 import chores 现在 假设 Coolfunctions 也使用家务活中的东西 因此我声明import chore
  • 根据第三个变量更改散点图中的标记样式

    我正在处理多列字典 我想绘制两列 然后根据第三列和第四列更改标记的颜色和样式 我很难改变 pylab 散点图中的标记样式 我的方法适用于颜色 不幸的是不适用于标记样式 x 1 2 3 4 5 6 y 1 3 4 5 6 7 m k l l
  • 在seaborn中对箱线图x轴进行排序

    我的数据框round data看起来像这样 error username task path 0 0 02 n49vq14uhvy93i5uw33tf7s1ei07vngozrzlsr6q6cnh8w 39 png 1 0 10 n49vq
  • 如何使用 django-pyodbc (ubuntu 16.04) 配置数据库设置 Django-MSSQL?

    我是 Django 新手 目前正在尝试使用另一个数据库来保存我的模型 即MS SQL 我的数据库部署在docker容器中 903876e64b67 microsoft mssql server linux bin sh c opt mssq
  • 线性同余生成器 - 如何选择种子和统计检验

    我需要做一个线性同余生成器 它将成功通过所选的统计测试 我的问题是 如何正确选择发电机的数字以及 我应该选择哪些统计检验 我想 均匀性的卡方频率测试 每代收集10 000个号码的方法 将 0 1 细分为10个相等的细分 柯尔莫哥洛夫 斯米尔
  • 更换壳牌管道[重复]

    这个问题在这里已经有答案了 在 subprocess 模块的 Python 2 7 文档中 我找到了以下片段 p1 Popen dmesg stdout PIPE p2 Popen grep hda stdin p1 stdout stdo
  • 在Python中连续解析文件

    我正在编写一个脚本 该脚本使用 HTTP 流量行解析文件 并取出域 目前仅将它们打印到屏幕上 我正在使用 httpry 将流量连续写入文件 这是我用来删除域名的脚本 usr bin python import re input open r
  • 在 scipy 中创建新的发行版

    我试图根据我拥有的一些数据创建一个分布 然后从该分布中随机抽取 这是我所拥有的 from scipy import stats import numpy def getDistribution data kernel stats gauss
  • 如何从 nltk 下载器中删除数据/模型?

    我在 python3 NLTK 中安装了一些 NLTK 包 通过nltk download 尝试过它们 但不需要它们 现在想删除它们 我怎样才能删除例如包large grammars来自我的 NLTK 安装 我不想删除完整的 NLTK 安装
  • 使用 SERVER_NAME 时出现 Flask 404

    在我的 Flask 配置中 我将 SERVER NAME 设置为 app example com 之类的域 我这样做是因为我需要使用url for with external网址 如果未设置 SERVER NAME Flask 会认为服务器

随机推荐