Pylab-调整某些子图的hspace [英] Pylab - Adjust hspace for some of the subplots

查看:93
本文介绍了Pylab-调整某些子图的hspace的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个图,我想要一个面板与其他四个面板分开.我希望其余四个面板共享x轴.该图如下所示.我希望底部的四个面板共享x轴.我尝试过

I have a plot in which I want to have one panel separate from other four panels. I want the rest of the four panels to share the x axis. The figure is shown below. I want the bottom four panels to have shared x-axis. I tried

f = plt.figure()
ax6=f.add_subplot(511)
ax4=f.add_subplot(515)
ax1=f.add_subplot(512,sharex=ax4)
ax2=f.add_subplot(513,sharex=ax4)
ax3=f.add_subplot(514,sharex=ax4)

但是,这对我不起作用.附图是用

However, that does not work for me. The attached figure is made with

f = plt.figure()
ax6=f.add_subplot(511)
ax4=f.add_subplot(515)
ax1=f.add_subplot(512)
ax2=f.add_subplot(513)
ax3=f.add_subplot(514)

,然后将xticks设置为none

and then setting the xticks to none by

ax1.get_xaxis().set_ticklabels([])
ax2.get_xaxis().set_ticklabels([])
ax3.get_xaxis().set_ticklabels([])

使用f.subplots_adjust(hspace = 0)合并所有子图.有没有办法只加入底部的四个面板?

using f.subplots_adjust(hspace=0) joins all the subplots. Is there a way to join only the bottom four panels?

谢谢!

推荐答案

最简单的方法是使用两个单独的 gridspec对象这.这样,您可以为不同的子图组具有独立的边距,填充等.

It's easiest to use two separate gridspec objects for this. That way you can have independent margins, padding, etc for different groups of subplots.

作为一个简单的例子:

import numpy as np
import matplotlib.pyplot as plt

# We'll use two separate gridspecs to have different margins, hspace, etc
gs_top = plt.GridSpec(5, 1, top=0.95)
gs_base = plt.GridSpec(5, 1, hspace=0)
fig = plt.figure()

# Top (unshared) axes
topax = fig.add_subplot(gs_top[0,:])
topax.plot(np.random.normal(0, 1, 1000).cumsum())

# The four shared axes
ax = fig.add_subplot(gs_base[1,:]) # Need to create the first one to share...
other_axes = [fig.add_subplot(gs_base[i,:], sharex=ax) for i in range(2, 5)]
bottom_axes = [ax] + other_axes

# Hide shared x-tick labels
for ax in bottom_axes[:-1]:
    plt.setp(ax.get_xticklabels(), visible=False)

# Plot variable amounts of data to demonstrate shared axes
for ax in bottom_axes:
    data = np.random.normal(0, 1, np.random.randint(10, 500)).cumsum()
    ax.plot(data)
    ax.margins(0.05)

plt.show()

这篇关于Pylab-调整某些子图的hspace的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆