Я хочу обновить цветовую карту панели цветов в зависимости от выбора переключателя. Проблема в том, что когда я выбираю цветовую карту, она меняет только цветовую карту графика, а не цветную шкалу. Я попытался использовать пакет make_axes_locatable, но так как я использую axes.set_aspect и axes.set_adjustable, он портит форму цветовой шкалы. Итак, мне нужно найти способ обновить цветовую панель, не удаляя ее. Вот изображение проблемы:
До изменения:
После изменения:
Вот соответствующий код из моих функций:
def pickmap(): #This is the function called when radio button is clicked
global plotList
global cb
global cb2
global colormap
cb.set_cmap(colormap.get())
cb2.set_cmap(colormap.get())
for i in plotList:
i.remove()
plotList = []
plot()
locCount = True
def plot():
global figStress
global figDisp
global plotList
global locCount
global cb
global cb2
... #I have some unrelated code to the topic
ax = figDisp.add_subplot(111)
dx = figStress.add_subplot(111)
if locCount:
cb = figDisp.colorbar(ScalarMappable(norm=norm,cmap=plt.get_cmap(colormap.get())))
cb2 = figStress.colorbar(ScalarMappable(norm=norm2,cmap=plt.get_cmap(colormap.get())))
locCount = False #This is to only render colorbar once
ax.relim()
ax.axes.set_aspect('equal')
ax.axes.set_adjustable('datalim')
dx.relim()
dx.axes.set_aspect('equal')
dx.axes.set_adjustable('datalim')
canvasDisp.draw()
canvasStress.draw()