python-3.x - 我的 cmap 不会在 0 左右分开,到底出了什么问题?
问题描述
我正在尝试用一种颜色表示正值和一种颜色表示负值的配色方案绘制等高线图。我尝试使用Colorplot 中区分正值和负值的答案,但无济于事。我在下面附上了一段代码,使用这段代码,cmap 不会在 0 处分隔红色和蓝色,而是在 -40 处。究竟是什么问题?
import numpy as np
from matplotlib.colors import BoundaryNorm
from matplotlib.ticker import MaxNLocator
Vr=1438.7228 #some constants
Va=626.8932
dr=3.11
da=1.55
def func(x,y):
repulsive = Vr*np.log( ((y+x)**2 + dr**2)/((y-x)**2 + dr**2) )
attractive = Va*np.log( ((y+x)**2 + da**2)/((y-x)**2 + da**2) )
return (1.0/(4.0*x*y))*(repulsive-attractive)
x = np.linspace(1e-4,10,100)
y = np.linspace(1e-4,10,100)
X, Y = np.meshgrid(x, y)
Z = func(X,Y)
levels = MaxNLocator(nbins=15).tick_values(Z.min(), Z.max())
cmap = plt.get_cmap('RdBu')
norm = BoundaryNorm(levels, ncolors=cmap.N, clip=True)
sc = plt.contourf(X, Y, Z, norm=norm, cmap=cmap)
plt.colorbar(sc)
plt.show()
解决方案
推荐阅读
- spring-boot - Spring Cloud Config Client - 具有相同前缀的聚合配置
- debugging - 在调试模式下运行 NPX 命令
- r - RStudio hist() 错误:x 必须是数字,当所有列都是数字时
- parsing - 为什么我的 PDDL 没有编译?解析错误
- python - 有没有办法从单个列表中制作字典,其中字典的键和值取自特定索引
- function - 变量似乎在 PowerShell 中的函数内部不起作用
- reactjs - 在反应js中的功能组件中单击按钮时的条件渲染
- node.js - 图片上传的意图
- http - 如何为 YouTube 直播添加字幕?
- c++ - 如何拥有可变数量的未知确定类型的参数?