Увеличить число градаций колорбара

строится график и нужно увеличить число градаций колорбара, сделать не через 20 единиц, а через 10 задается таким кодом

X, Y = np.meshgrid(columns,index1)
plt.rcParams["figure.figsize"] = (11,8)

fig, ax = plt.subplots()
ax.grid(axis = 'y')
CS=ax.contourf(X,Y,TSR1,cmap='rainbow')
plt.colorbar(CS, label='temp, °C',ax=ax, cmap='rainbow')
CS.clabel(colors='k',fmt='%.0f', fontsize=13)

и получается соответствующий рисунок введите сюда описание изображения


Ответы (1 шт):

Автор решения: strawdog

Используйте параметр levels в методе contourF. На примере из документации matplotlib:

import numpy as np
import matplotlib.pyplot as plt

origin = 'lower'
delta = 0.025

x = y = np.arange(-3.0, 3.01, delta)
X, Y = np.meshgrid(x, y)
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
Z = (Z1 - Z2) * 2

nr, nc = Z.shape
Z[-nr // 6:, -nc // 6:] = np.nan

Z = np.ma.array(Z)
Z[:nr // 6, :nc // 6] = np.ma.masked

interior = np.sqrt(X**2 + Y**2) < 0.5
Z[interior] = np.ma.masked

fig1, ax2 = plt.subplots(constrained_layout=True)
CS = ax2.contourf(X, Y, Z, 10, cmap=plt.cm.bone, origin=origin, levels=50) #<- здесь
cbar = fig1.colorbar(CS)

Со значениями по умолчанию:

введите сюда описание изображения

С явным указанием levels = 50:

введите сюда описание изображения

→ Ссылка