【问题标题】:Plotting grids across the subplots Python matplotlib在子图中绘制网格 Python matplotlib
【发布时间】:2019-02-05 07:10:27
【问题描述】:

我尝试了以下方法:

d = [1,2,3,4,5,6,7,8,9]
f = [0,1,0,0,1,0,1,1,0]
fig = plt.figure()
fig.set_size_inches(30,10)
ax1 = fig.add_subplot(211)
line1 = ax1.plot(d,marker='.',color='b',label="1 row")
ax2 = fig.add_subplot(212)
line1 = ax2.plot(f,marker='.',color='b',label="1 row")
ax1.grid()
ax2.grid()
plt.show()

我得到以下输出:

但我期待以下输出:

我怎样才能得到跨越两个地块的网格?

【问题讨论】:

  • @SpghttCd 那是用于matlab的。这个问题要求Python
  • 对不起,我知道最近几个月matplotlib有这个问题,所以我选的太快了。
  • 此链接here 可能会有所帮助。虽然它不完全是网格线,但您可以将它们变黑变细以使它们看起来像一个

标签: python python-3.x matplotlib


【解决方案1】:

一个选项是创建一个图,然后仅偏移数据。所以一组情节在另一组之上。

【讨论】:

  • 感谢您的回复。请你举个例子,因为你看到我已经给出了我试图绘制的数据。您的答案看起来像评论,但由于您的分数较低,因此您无法发表评论。如果你举个例子,那么它对每个人都会更有帮助。
【解决方案2】:

这是我的解决方案:

import matplotlib.pyplot as plt

x1 = [1,2,3,4,5,6,7,8,9]
x2= [0,1,0,0,1,0,1,1,0]
x3= range(-10,0)
# frameon=False removes frames
# fig, (ax1,ax2, ax3) = plt.subplots(nrows=3, sharex=True, subplot_kw=dict(frameon=False))
fig, (ax1,ax2, ax3) = plt.subplots(nrows=3, sharex=True)
# remove vertical gap between subplots
plt.subplots_adjust(hspace=.0)

ax1.grid()
ax2.grid()
ax3.grid()

ax1.plot(x1)
ax2.plot(x2)
ax3.plot(x3)

无框subplot_kw=dict(frameon=False):

【讨论】:

    【解决方案3】:

    没有用于创建子图间网格的内置选项。在这种情况下,我会说一个简单的选择是在背景中创建第三个轴,在 x 方向上使用相同的网格,这样可以在两个子图之间看到网格线。

    import matplotlib.pyplot as plt
    
    d = [1,2,3,4,5,6,7,8,9]
    f = [0,1,0,0,1,0,1,1,0]
    
    fig, (ax1,ax2) = plt.subplots(nrows=2, sharex=True)
    ax3 = fig.add_subplot(111, zorder=-1)
    for _, spine in ax3.spines.items():
        spine.set_visible(False)
    ax3.tick_params(labelleft=False, labelbottom=False, left=False, right=False )
    ax3.get_shared_x_axes().join(ax3,ax1)
    ax3.grid(axis="x")
    
    
    line1 = ax1.plot(d, marker='.', color='b', label="1 row")
    line1 = ax2.plot(f, marker='.', color='b', label="1 row")
    ax1.grid()
    ax2.grid()
    plt.show()
    

    【讨论】:

    • 它的一个伟大的分享..让我试试看。
    猜你喜欢
    • 1970-01-01
    • 2022-08-16
    • 2020-08-15
    • 2013-12-20
    • 1970-01-01
    • 2011-07-06
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多