我有一些代码:
def print_fractures(fractures):
# generate ends for the line segments
xpairs = []
ypairs = []
plt.subplot(132)
for i in range(len(fractures)):
xends = [fractures[i][1][0], fractures[i][2][0]]
yends = [fractures[i][1][1], fractures[i][2][1]]
xpairs.append(xends)
ypairs.append(yends)
for xends,yends in zip(xpairs,ypairs):
plt.plot(xends, yends, 'b-', alpha=0.4)
plt.plot()
plt.xlabel("X Coordinates (m)")
plt.ylabel("Y Coordinates (m)")
plt.ylim((0,400))
def histogram(spacings):
plt.subplot(131)
plt.hist(np.vstack(spacings), bins = range(0,60,3), normed=True)
plt.xlabel('Spacing (m)')
plt.ylabel('Frequency (count)')
#plt.title("Fracture Spacing Histogram")
def plotCI(sample, ciHigh, ciLow, avgInts):
plt.subplot(133)
plt.plot(sample,ciHigh)
plt.plot(sample,avgInts)
plt.plot(sample,ciLow)
plt.legend(['Mean + 95% CI', 'Mean', 'Mean - 95% CI'])
plt.title("Intersections vs Number of Wells")
plt.xlabel("# of Wells")
plt.ylabel("# of Intersections for " + str(bedT) + "m bed thickness")
def makeplots(spacings,fractures):
histogram(spacings)
print_fractures(fractures)
plt.axis('equal')
plotCI(sample, ciHigh, ciLow, avgInts)
plt.show()
makeplots(spacings,fractures)
代码生成以下图表:
正如你所看到的,在中心情节中,情节并没有真正居中......我想将x和y轴设置为(0,400)但是我遇到了麻烦。
到目前为止,我已经尝试过:
plt.axis((0,400,0,400))
和
plt.ylim((0,400))
plt.xlim((0,400))
这两个选项对我都不起作用。
答案 0 :(得分:2)
在您的示例中,未显示调用函数的方式/时间。 plt.ion()
/ plt.ioff()
有一些可能的副作用,以及执行xlim()
/ ylim()
命令时实际情节的重点。
要完全控制(特别是当有多个绘图时),通常最好有明确的数字和绘图句柄,例如:
fg = plt.figure(1)
fg.clf() # clear figure, just in case the script is not executed for the first time
ax1 = fg.add_subplot(2,1,1)
ax1.plot([1,2,3,4], [10,2,5,0])
ax1.set_ylim((0,5)) # limit yrange
ax2 = fg.add_subplot(2,1,2)
...
fg.canvas.draw() # the figure is drawn at this point
plt.show() # enter GUI event loop, needed in non-interactive interpreters