简体   繁体   English

如何为轮廓 plot 扩展 matplotlib 颜色条?

[英]How to extend matplotlib colorbar for contourf plot?

The following code produces a contourf plot.以下代码生成轮廓 plot。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10)

X, Y = np.meshgrid(x, x)

F = np.sin(X)*np.cos(Y)

v = np.linspace(-2, 2,10)
plt.contourf(X, Y, F, 500)
cb = plt.colorbar()

F ranges from -1 to 1 so my colorbar has these as its minimum and maximum values. F的范围从 -1 到 1,因此我的颜色条将这些作为其最小值和最大值。 I want the colorbar to range from -2 to 2. I have tried to set the ticks to range from -2 to 2 however this does not work.我希望颜色条的范围为 -2 到 2。我尝试将刻度设置为从 -2 到 2 的范围,但这不起作用。 Any suggestions?有什么建议么?

works if you create the colorbar manually:如果您手动创建颜色条,则有效:

import numpy as np
import matplotlib as mpl

x = np.linspace(0,10)
X, Y = np.meshgrid(x, x)
F = np.sin(X)*np.cos(Y)

v = np.linspace(-2, 2,10)

f, ax = plt.subplots()
cont = ax.contourf(X, Y, F, 500, vmin=-2, vmax=2, ticks=v)
cax, _ = mpl.colorbar.make_axes(ax)
cbar = mpl.colorbar.ColorbarBase(cax, cmap=cont.cmap, norm=cont.norm)
cbar.set_ticks([v.min(), *np.linspace(F.min(), F.max(), 11), v.max()])

在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM