Тиковое позиционирование Matplotlib - переключаться между версиями Matplotlib? - PullRequest
1 голос
/ 03 мая 2019

Matplotlib, похоже, изменил способ установки небольших тиков цветовой полосы.Минимальный пример ниже.В matplotlib 2.2.3 этот код создает 11 второстепенных тиков между 0 и 10, в matplotlib 3.0.3 между 0 и 1. Есть ли какая-либо ссылка на это?Я не смог найти что-либо в журналах изменений.

import numpy as np
import matplotlib
import matplotlib.pyplot as plt

np.random.seed(1000)
im = plt.imshow(np.random.rand(10,10) * 10)
cbar = plt.colorbar()
plt.clim(0,10)
cax = cbar.ax
cax.yaxis.set_ticks(np.linspace(0,1,11),minor=True)

1 Ответ

1 голос
/ 03 мая 2019

Вы правы, в версии 3 произошли серьезные изменения в цветовых полосах, о которых, к сожалению, не все хорошо известно. Это как-то скрыто в этом Что нового?

Пометки для цветовой шкалы теперь корректируются по размеру цветовой полосы
Тики цветовой полосы теперь корректируются по размеру цветовой полосы, если цветовая полоса сделана из сопоставляемого, который не является контуром или не имеет BoundaryNorm, или границы не указаны. Если указаны границы и т. Д., Цветовая панель сохраняет исходное поведение.

Это также означает, что цветовая шкала теперь масштабируется как любая другая ось. Это означает, что если вы хотите иметь 11 тиков в диапазоне от 0 до 10, вам нужно будет использовать

ticks = np.linspace(0,10,11)
cbar.ax.xaxis.set_ticks(ticks,minor=True)

enter image description here

...