Как обновить цветовую карту colorbar в Matplotlib, не удаляя ее - PullRequest
0 голосов
/ 29 апреля 2020

Я хочу обновить цветовую карту панели цветов в зависимости от выбора переключателя. Проблема в том, что когда я выбираю цветовую карту, она меняет только цветовую карту графика, а не цветную шкалу. Я попытался использовать пакет make_axes_locatable, но так как я использую axes.set_aspect и axes.set_adjustable, он портит форму цветовой шкалы. Итак, мне нужно найти способ обновить цветовую панель, не удаляя ее. Вот изображение проблемы:

До изменения: enter image description here

После изменения: enter image description here

Вот соответствующий код из моих функций:

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...