我有一组子图,每个子图都需要一个颜色条。如果我在不设置x限制的情况下绘制每个子图,则x轴会延伸到我的数据域之外并显示大量的空白区域。我正在使用此代码:
#menu {
width: 16em;
height: calc(100% - 5em);
background-color: blue;
position: fixed;
bottom: 0;
left: -12em;
}
#menuIcon {
height: 4em;
width: 4em;
position: relative;
top: 0;
left: 12em;
background-color: green;
}
如果我将import matplotlib.pyplot as plt
from matplotlib.mlab import griddata
from numpy import ma
from mpl_toolkits.axes_grid1 import make_axes_locatable
def plot_threshold(ax):
""" plot boundary condition (solid) and
extrapolated condition(dotted)"""
x = np.arange(0,10,.5)
slide= Threshold(x)
ax.plot(slide[0], slide[1], 'r-',
linewidth=2)
ex_slide = Extrapolated_threshold(x)
ax.plot(ex_slide[0], ex_slide[1], 'r:')
def make_subplot(ax, x, y, zdata, title):
ax.set_title(title, size =14)
CS = ax.tricontourf(x, y, zdata, 100, cmap=clrmap)
plot_threshold(ax)
#TROUBLESOM LINE BELOW
plt.xlim(0,xmax)
# create divider for existing axes instance
divider = make_axes_locatable(ax)
# append axes to rhe right of ax, with 5% width of ax
cax1 = divider.append_axes('right', size='4%', pad = 0.1)
# create color bar in the appneded axes
cbar = plt.colorbar(CS, cax=cax1)
clrmap = plt.cm.viridis
# Three subplots, stacked vertically
fig, axarr = plt.subplots(3, figsize =(8,10), sharex='col')
make_subplot(axarr[0], x, y, z1, "Plot 1")
make_subplot(axarr[1], x, y, z2, 'Plot 2')
make_subplot(axarr[2], x, y, z3, 'Plot 3')
添加到plt.xlim()
函数,则前两个子图的颜色条变得非常狭窄且不可读。第三个子图的颜色条不受影响。
从make_subplot
移除plt.xlim()
并将其添加到函数调用下方,如下所示:
make_subplot
不会调整x限制并调整颜色条。
1)为什么不是make_subplot(axarr[0], x, y, z1, "Plot 1")
plt.xlim(0,14)
make_subplot(axarr[1], x, y, z2, 'Plot 2')
plt.xlim(0,14)
make_subplot(axarr[2], x, y, z3, 'Plot 3')
plt.xlim(0,14)
中的一行对色条的影响不一样?
2)如何在保持快乐色条的同时调整x限制?
答案 0 :(得分:0)
而不是
make_subplot(axarr[0], x, y, z1, "Plot 1")
plt.xlim(0,14)
make_subplot(axarr[1], x, y, z2, 'Plot 2')
plt.xlim(0,14)
make_subplot(axarr[2], x, y, z3, 'Plot 3')
plt.xlim(0,14)
试
make_subplot(axarr[0], x, y, z1, "Plot 1")
axarr[0].set_xlim(0,14)
make_subplot(axarr[1], x, y, z2, 'Plot 2')
axarr[1].set_xlim(0,14)
make_subplot(axarr[2], x, y, z3, 'Plot 3')
axarr[2].set_xlim(0,14)
我认为plt.xlim
作用于色条轴,因为它是调用它时的当前轴。在您的数据显示的轴上调用plt.xlim
(即axarr[i]
)应该可以解决这个问题。
如果这对您不起作用,请按照这些准则https://stackoverflow.com/help/mcve更新您的问题,因为您的代码不能按原样运行。