Gui*_*ume 7 python matplotlib colorbar
与 contourf 一起使用时如何减少颜色条限制?图表本身的颜色界限用“vmin”和“vmax”很好地设置,但颜色条界限没有被修改。
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(20)
y = np.arange(20)
data = x[:,None]+y[None,:]
X,Y = np.meshgrid(x,y)
vmin = 0
vmax = 15
#My attempt
fig,ax = plt.subplots()
contourf_ = ax.contourf(X,Y,data, 400, vmin=vmin, vmax=vmax)
cbar = fig.colorbar(contourf_)
cbar.set_clim( vmin, vmax )
Run Code Online (Sandbox Code Playgroud)
# With solution from /sf/ask/3754915111/
levels = np.linspace(vmin, vmax, 400+1)
fig,ax = plt.subplots()
contourf_ = ax.contourf(X,Y,data, levels=levels, vmin=vmin, vmax=vmax)
cbar = fig.colorbar(contourf_)
plt.show()
Run Code Online (Sandbox Code Playgroud)
“在 matplotlib 中设置颜色条范围”的解决方案适用于 pcolormesh,但不适用于轮廓。我想要的结果如下所示,但使用的是轮廓。
fig,ax = plt.subplots()
contourf_ = ax.pcolormesh(X,Y,data[1:,1:], vmin=vmin, vmax=vmax)
cbar = fig.colorbar(contourf_)
Run Code Online (Sandbox Code Playgroud)
如果限制被扩展,“ set colorbar range with contourf ”的解决方案就可以了,但如果限制减少,则不行。
我正在使用 matplotlib 3.0.2
以下始终生成一个条形,其颜色与图表中的颜色相对应,但不显示超出范围的值的颜色[vmin,vmax]
。
可以对其进行编辑(请参阅内联注释)以准确地给出您想要的结果,但是条形的颜色仍然与图表中的颜色相对应,这只是由于所使用的特定颜色图(我认为):
# Start copied from your attempt
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(20)
y = np.arange(20)
data = x[:, None] + y[None, :]
X, Y = np.meshgrid(x, y)
vmin = 0
vmax = 15
fig, ax = plt.subplots()
# Start of solution
from matplotlib.cm import ScalarMappable
levels = 400
level_boundaries = np.linspace(vmin, vmax, levels + 1)
quadcontourset = ax.contourf(
X, Y, data,
level_boundaries, # change this to `levels` to get the result that you want
vmin=vmin, vmax=vmax
)
fig.colorbar(
ScalarMappable(norm=quadcontourset.norm, cmap=quadcontourset.cmap),
ticks=range(vmin, vmax+5, 5),
boundaries=level_boundaries,
values=(level_boundaries[:-1] + level_boundaries[1:]) / 2,
)
Run Code Online (Sandbox Code Playgroud)
始终正确处理无法处理外部值的解决方案[vmin,vmax]
:
归档时间: |
|
查看次数: |
9840 次 |
最近记录: |