matlab - MATLAB-为什么我的 contourf 拒绝将 .1- -.1 值填充为白色?
问题描述
我正在尝试使用特定的配色方案创建一个轮廓图。我将颜色图定义为特定的矩阵值,并在代码中如此定义。
cb=[.64 .08 .18;1 0 0;1 .41 .16;1 1 .07;1 1 1;0 1 0;0 1 1;.07 .62 1;0 0 1];
这是我的轮廓图脚本。
figure
contourf(X_w,Z_w,w,'LevelList', [-.1 .1 .2 .4 .6],'LineColor','none')
ylim([0 4])
xlim([-4 20])
xticks([-4 -2 0 2 4 6 8 10 12 14 16 18 20])
yticks([0 .5 1 1.5 2 2.5 3 3.5 4])
pbaspect([3 1 1])
colormap(flipud(cb))
colorbar('Ytick',-.6:.2:.6)
caxis([-.6 .6])
它产生的图形是这样的。[1]:https ://i.stack.imgur.com/b7SNv.png
一切都正确,但应该切换白色和绿色。颜色条正确且值正确,但颜色图与颜色条不匹配。绿色应该是白色的,白色应该是绿色的。
有什么建议么?
解决方案
您可能会受益于在所需颜色之间进行插值,从而使您的绘图在颜色之间平滑过渡。可能发生的情况是,您认为为 0 的数据实际上非常小且为负数。我同意 reza 的观点,即需要提供绘图数据以进一步提供帮助。在此之前,请尝试使用该interp1
函数重新定义所需的地图,如下所示:
cb = interp1(1:9,cb,linspace(1,9,128),'pchip');
请注意,我在这里只使用数字 9,因为这就是您拥有的颜色数量。数字 128 只是所需输出点的数量(插值颜色)。
推荐阅读
- c++ - 在 C++ 中销毁动态分配的内存(数组对象)
- python - auth_user.username 给出 'NoneType' 对象没有属性 'username'
- python-3.x - 频繁或批量使用 REST API 端点自动提取事件
- python - 查找图像是亮还是暗
- r - bind_rows_(x, .id) 中的错误:参数 1 必须有名称
- c# - 如何捕获 System.IO.FileSystemWatcher 抛出的异常
- swift - CMSensorRecorder - 读取历史数据有时返回 nil
- javascript - Showing month name from users input using JS switch case
- php - .htaccess 301 路径 URL 重组?
- c# - Active Directory - 用户不是他们所在组的成员