颜色条范围问题 matplotlib python
Problems with colorbar range matplotlib python
我想设置我的颜色栏,这样我就可以看到不同颜色的小值之间的差异。例如:0.4 和 0.6 之间的两种不同颜色。
但是我的最大值是 3,很难看到这个值。
如何为颜色栏中的不同颜色设置不同的间隔,以便看到这种差异?
我尝试了 Boundary norm 和 Log,但没有用
我正在附上一些图来说明。
试试这个:
import matplotlib.pyplot as plt
import numpy as np
delta = 0.025
x = y = np.arange(0, 3.01, delta)
X, Y = np.meshgrid(x, y)
Z1 = plt.mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
Z2 = plt.mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
Z = 10e1 * (Z1*Z2) # Random function creation
levels = np.array([0,0.2,0.4,0.6,0.8,1,2,3])
fig=plt.figure()
ax1 = fig.add_subplot(111)
CF = ax1.contourf(X,Y,Z,
levels = levels,
cmap = plt.cm.spectral
)
CS = ax1.contour(X,Y,Z,
colors = 'k', # Black border
levels = levels
)
cbar = plt.colorbar(CF, ticks=levels, format='%.2f')
plt.show()
我想设置我的颜色栏,这样我就可以看到不同颜色的小值之间的差异。例如:0.4 和 0.6 之间的两种不同颜色。 但是我的最大值是 3,很难看到这个值。 如何为颜色栏中的不同颜色设置不同的间隔,以便看到这种差异? 我尝试了 Boundary norm 和 Log,但没有用 我正在附上一些图来说明。
试试这个:
import matplotlib.pyplot as plt
import numpy as np
delta = 0.025
x = y = np.arange(0, 3.01, delta)
X, Y = np.meshgrid(x, y)
Z1 = plt.mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
Z2 = plt.mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
Z = 10e1 * (Z1*Z2) # Random function creation
levels = np.array([0,0.2,0.4,0.6,0.8,1,2,3])
fig=plt.figure()
ax1 = fig.add_subplot(111)
CF = ax1.contourf(X,Y,Z,
levels = levels,
cmap = plt.cm.spectral
)
CS = ax1.contour(X,Y,Z,
colors = 'k', # Black border
levels = levels
)
cbar = plt.colorbar(CF, ticks=levels, format='%.2f')
plt.show()