Предположим, у меня есть два 2D-массива, приведенных ниже, для которых я хочу построить contourf
график. Я построю два contourf
, используя два вспомогательных участка.
import numpy as np
import matplotlib.pyplot as plt
a = np.array([
[1, 2, 2],
[0, 1, 2],
[0, 0, 1],
])
b = np.array([
[4, 5, 5],
[3, 4, 5],
[3, 3, 4],
])
Технические характеристики:
- Я хочу, чтобы на каждом из моих вспомогательных участков была одна цветная полоса [Решено].
- Я хочу, чтобы обе мои цветовые полосы имели отметки от 0 до 5 [Не решено].
- Я хочу, чтобы требуемые цвета внутри контуров и цветовых панелей отражали истинный диапазон от 0 до 5 [Решено].
В настоящее время у меня есть следующий код, который решает два из три требования.
z1lim = [0, 5]
levels = 5
ticks = np.linspace(*z1lim, levels)
fig, ax = plt.subplots(ncols=2, figsize=(16, 6))
# contourf 0
cntf0 = ax[0].contourf(
a,
cmap='viridis',
levels=levels,
vmin=z1lim[0],
vmax=z1lim[1],
)
# colorbar 0
cbar0 = fig.colorbar(
cntf0,
ticks=ticks,
ax=ax[0]
)
# contourf 1
cntf1 = ax[1].contourf(
b,
cmap='viridis',
levels=levels,
vmin=z1lim[0],
vmax=z1lim[1],
)
# colorbar 1
cbar1 = fig.colorbar(
cntf1,
ticks=ticks,
ax=ax[1]
)
Текущие графики
Глядя на текущие результаты, я не могу иметь цветовые полосы с диапазоном от 0 до 5. Было бы замечательно, если бы кто-нибудь мог дать мне рабочий код, который бы приводил к тому, что цветные полосы имеют отметки от 0 до 5.