내 플롯의 색상 막대를 사용자 정의 높이로 설정하고 싶습니다. 반드시 플롯의 크기와 일치시킬 필요는 없습니다. 사실 나는 그림의 높이와 일치시키기 위해 그것의 위에 제목을 더한 colorbar의 높이를 원합니다. 나는 많은 시간을 요구 된 플롯과 동일한 높이로 년 Colorbar을 가지고 관리matplotlib 색상 막대를 사용자 정의 높이로 변경
ax3 = divider.append_axes('right', size='10%', pad=0.3)
cb = plt.colorbar(Q, cax=ax3, ticks=[0.0, 3.0, 6.0, 9.0, 12.0, 15.0], format='%.1f')
와
, 지금은 그것을 축소하고 싶습니다.
다른 질문에서 제시된 제안에 따라 get_position
으로 마지막 플롯 축의 위치를 얻은 후 색상 막대에 add_axes
이라는 축을 명시 적으로 부여하기로 결정했습니다. 여기 내가하려는 일이 있습니다. 데이터와이 예에서는 어떤 년 Colorbar은 내가 예상 결과를받지 못했습니다 것을 보여주기 위해,이 없습니다 :
from __future__ import unicode_literals
import numpy as np
from scipy.interpolate import griddata
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
from matplotlib.pylab import cm
import matplotlib.colors as colors
from mpl_toolkits.axes_grid1 import make_axes_locatable, axes_size
matplotlib.rcParams.update({'font.size': 8})
fig = plt.figure()
fig.set_size_inches(6.3,6.3)
ax1 = plt.subplot(111)
divider = make_axes_locatable(ax1)
ax2 = divider.append_axes('right', size='100%', pad=0.3)
axes = [ax1, ax2]
ltypes = ['dashed', 'solid']
xi = np.linspace(-18.125, 18.125, 11)
yi = np.linspace(0, 28, 9)
xv, yv = np.meshgrid(xi, yi)
xcOdd = 0.2
zcOdd = 0.725
xcEven = 0.6
zcEven = 0.725
maskRadius = 0.15
for i in range(2):
ax = axes[i]
ax.set_xlabel('distance [m]')
if i == 0:
ax.set_ylabel('depth [m]')
if i == 1:
ax.set_yticklabels([])
ax.invert_yaxis()
ax.tick_params(direction='in')
ax.set_aspect('equal')
odd = Circle((xcOdd, zcOdd), .15, linewidth=1.2, color='k', fill=False)
even = Circle((xcEven, zcEven), .15, linewidth=1.2, linestyle=ltypes[i], color='k', fill=False)
vmax = 15.
vmin = 0.
norm = matplotlib.colors.Normalize(vmin,vmax, clip=False)
color_map = matplotlib.colors.ListedColormap(plt.cm.Greys(np.linspace(0.25, 1, 5)), "name")
ax.add_patch(odd)
pad = 0.03
width = 0.03
pos = ax2.get_position()
ax3 = fig.add_axes([pos.xmax + pad, pos.ymin, width, 0.7*(pos.ymax-pos.ymin) ])
plt.savefig('prova-vect-paper-test-2.eps', format='eps')
왜 get_position 잘못된 BoundingBox의를 반환?
이유는 더 이상이 질문에 commenta과 답변을 볼 수 없습니다? – user2078621
답변을 제공 한 사용자가 문제를 해결하지 못했기 때문에 답변을 삭제했습니다. 실제 문제에 관해서는, 당신의 플롯이 어떻게 보일 것인가에 대해 더 자세히 알고 싶을 것입니다. (또한 어떤 종류의 그림을 보여 주느냐에 따라 달라집니다. 즉, 가로 세로 비율이 같은지 여부입니다.) – ImportanceOfBeingErnest