Как управлять метками вторичной оси Y цветовой панелиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как управлять метками вторичной оси Y цветовой панели

Сообщение Anonymous »

У меня есть цветная полоса, отображающая журнал вероятности для некоторых данных. Мне нужен второй набор тиков для цветовой панели, которая отображает «необработанные» значения вероятности. У меня это работает, но я изо всех сил пытаюсь контролировать расположение и количество тиков для второго набора тиков. Мой код ниже. Если я увеличу количество запрошенных галочек, я просто получу более узкую группу галочек в верхней части панели, что сделает ее нечитаемой, а это в любом случае не то, что мне нужно. Мне бы хотелось еще несколько ниже, представляющих вероятности ниже 0,1. На изображениях разница связана с cbar_nbins_2 = 10 и cbar_nbins_2 = 15, что действительно имеет влияние, хотя ясно, что я не получаю «именно» то, о чем прошу ( например, я не получаю ровно 10 или 15 тиков и не получаю их там, где хочет мой разум). Как придерживаться, скажем, 10 тиков, но иметь 3 ниже 0,1? Я не хочу/не хочу, чтобы они совпадали с первым набором тиков, мне просто нужно, может быть, 5–7 между 0 и 0,1, а затем 3–5 между 0,1 и 0,0001.

Код: Выделить всё

cbar_label = "Log base 10 of probability"
cbar_fontSize = 15
cbar_nBins = 25

cbar = plt.colorbar(mesh1, ax=axs.ravel().tolist())
cbar.ax.set_ylabel(cbar_label, fontsize = cbar_fontSize)
cbar.ax.locator_params(nbins=cbar_nBins)

cbar_tick_labels_pre = [float(t.get_text().replace('−','-')) for t in cbar.ax.get_yticklabels()]
cbar_round = 4
cbar_tick_labels = [round(10**t, cbar_round) for t in cbar_tick_labels_pre]

cbar_label_2 = "probability"

# define functions that relate the two colorbar scales
# e.g., Celcius to Fahrenheit and vice versa
def logP_to_P(x):
val = 10**(np.ma.masked_invalid(x))
return np.ma.masked_invalid(val)
def P_to_logP(x):
val = np.log10(np.ma.masked_invalid(x))
return np.ma.masked_invalid(val)

# create a second axes
cbar2 = cbar.ax.secondary_yaxis('left',functions=(logP_to_P,P_to_logP))
cbar2.set_ylabel(cbar_label_2, fontsize = cbar_fontSize, y=0.87)

#cbar_nBins_2 = 15
cbar_nBins_2 = 10

cbar2.locator_params(nbins=cbar_nBins_2)
Изображение


Подробнее здесь: https://stackoverflow.com/questions/787 ... axis-ticks
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Линия тренда matplotlib с временными метками по оси X, плавает по оси Y
    Anonymous » » в форуме Python
    0 Ответы
    249 Просмотры
    Последнее сообщение Anonymous
  • Matplotlib + Latex Rendering/winx(): неправильный шрифт на вторичной оси Y?
    Гость » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Гость
  • Неожиданный переворот вторичной оси Y на графике фрейма данных
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Matplotlib не использует согласованные шрифты, когда uselatex = true для вторичной оси X
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Совместное использование вторичной оси Y на фасетных графиках, созданных в цикле
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»