我有一组子图,每个子图都需要一个颜色条。如果我绘制每个子图而不设置x限制,x轴将延伸到我的数据域之外,并显示大量的白色空间。我使用以下代码:
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
函数中,顶部两个子图的颜色条会变得非常窄,无法读取,第三个子图的颜色条不受影响。
从make_subplot
中删除plt.xlim()
并将其添加到函数调用下面,如下所示:
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)
型
不调整x限制并挤压颜色条。
1)为什么make_subplots
中的线条对颜色条的影响不一样?
2)如何调整x限制,同时保持满意的颜色条?
的数据
1条答案
按热度按时间az31mfrm1#
而不是
字符串
尝试
型
我假设
plt.xlim
作用在colorbar轴上,因为它是调用时的当前轴。在显示数据的轴上调用plt.xlim
(即axarr[i]
)应该可以解决这个问题。