5

因此,当我尝试使用绘制多个子图时,pyplot.subplots我得到如下信息:

四个子图

我怎么能有:

  1. 每个子图的多个独立轴
  2. 每个子图的轴
  3. 使用子图在每个子图轴上叠加图。我试着做((ax1,ax2),(ax3,ax4)) = subplots,然后做ax1.plot了两次,但结果两者都没有出现。

图片代码:

import string
import matplotlib
matplotlib.use('WX')

import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import numpy as np
from itertools import izip,chain


f,((ax1,ax2),(ax3,ax4)) = plt.subplots(2,2,sharex='col',sharey='row')

ax1.plot(range(10),2*np.arange(10))
ax2.plot(range(10),range(10))
ax3.plot(range(5),np.arange(5)*1000)
#pyplot.yscale('log')
#ax2.set_autoscaley_on(False)
#ax2.set_ylim([0,10])


plt.show()
4

2 回答 2

7

问题 1 和 2:

为此,请显式设置子图选项sharexsharey=False.

替换代码中的这一行以获得所需的结果。

f, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, sharex=False, sharey=False)

或者,这两个选项可以完全省略,这False是默认设置。(如下rubenvb所述)

问题 3:

以下是向其中两个子图添加辅助图的两个示例:

(在之前添加此代码段plt.show()

# add an additional line to the lower left subplot
ax3.plot(range(5), -1*np.arange(5)*1000)

# add a bar chart to the upper right subplot
width = 0.75       # the width of the bars
x = np.arange(2, 10, 2)
y = [3, 7, 2, 9]

rects1 = ax2.bar(x, y, width, color='r')

具有独立轴的子图,以及

于 2014-01-08T07:05:19.533 回答
0

不要告诉它共享轴:

f, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2)

ax1.plot(range(10),2*np.arange(10))
ax2.plot(range(10),range(10))
ax3.plot(range(5),np.arange(5)*1000)

文档

于 2013-05-17T14:17:11.627 回答