如何在 Matplotlib 中编辑颜色条,使其在特定颜色和颜色图上分割?
我有用轮廓绘制的 x、y、z 数据。 我的 z 值在此区间 (0, 3.6) 内变化。 我希望所有 <0.35 的 z 值都以蓝色着色(例如,蓝色(Safe 16 SVG Hex3) #0000FF),其余 z 值使用根本不包含蓝色的颜色图,例如 tab20b 。
这是我到目前为止的代码。没有错误,但我没有得到蓝色。
#Grid & Interpolation
X = np.linspace(min(x), max(x),num=444)
Y = np.linspace(min(y), max(y),num=14)
X, Y = np.meshgrid(X, Y) # 2D grid for interpolation
interp = LinearNDInterpolator(list(zip(x, y)), z)
Z = interp(X, Y)
cmap = mpl.cm.get_cmap("tab20b").copy()
cmap.set_under('blue')
bounds = [0,0.35,0.6, 0.8, 1, 1.2, 1.4,1.6,1.8,2,2.2,2.4,2.6,2.8,3,3.2,3.4,3.6]
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)
#Plot
fig,ax1 = plt.subplots(figsize=(20,20))
imcontour=ax1.contourf(X, Y, Z,cmap=cmap,norm=norm,levels=19)
ax1.set_title(survey_name,{'fontsize': 24},weight='bold')
cb1=plt.colorbar(imcontour,orientation="horizontal",pad=0.05,shrink=0.3).set_label(label='Resistivity Ohm-m',size=12)
ax1.set_xlabel("X [m]",{'fontsize': 12})
ax1.set_ylabel("Depth [m]",{'fontsize': 12})
``
我很感谢你的帮助。 谢谢!
I have x, y, z data plotted with contourf.
My z values varies in this interval (0, 3.6).
I want that all the z values <0.35 are colored in blue (for example, blue(Safe 16 SVG Hex3) #0000FF), and the rest of the z values use a colormap that includes no blue at all, for example, tab20b.
This is the code I have so far. No errors, but I don't get the blue color.
#Grid & Interpolation
X = np.linspace(min(x), max(x),num=444)
Y = np.linspace(min(y), max(y),num=14)
X, Y = np.meshgrid(X, Y) # 2D grid for interpolation
interp = LinearNDInterpolator(list(zip(x, y)), z)
Z = interp(X, Y)
cmap = mpl.cm.get_cmap("tab20b").copy()
cmap.set_under('blue')
bounds = [0,0.35,0.6, 0.8, 1, 1.2, 1.4,1.6,1.8,2,2.2,2.4,2.6,2.8,3,3.2,3.4,3.6]
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)
#Plot
fig,ax1 = plt.subplots(figsize=(20,20))
imcontour=ax1.contourf(X, Y, Z,cmap=cmap,norm=norm,levels=19)
ax1.set_title(survey_name,{'fontsize': 24},weight='bold')
cb1=plt.colorbar(imcontour,orientation="horizontal",pad=0.05,shrink=0.3).set_label(label='Resistivity Ohm-m',size=12)
ax1.set_xlabel("X [m]",{'fontsize': 12})
ax1.set_ylabel("Depth [m]",{'fontsize': 12})
`
I appreciate your help.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论