colorbar;
colormap hot;
x = colorbar;
caxis([-450,-100]);
x = set(x,'YTick',-450:25:-100);
ax = gca;
ax.XAxis.Label.String='x';
ax.YAxis.Label.String='y';
set(gca,'YTick',[0 5 10 15 20 25 30 35 40 45 50 55 60]);
set(gca,'XTick',[0 5 10 15 20])
set(gcf,'Color','cyan');
我正在尝试改善下面所示表面的颜色。我该如何调整步骤?使用caxis([-450,-100])
会使步骤线性等于100
。如何在曲面图上获得平滑的颜色?我一直在互联网上阅读它,但我不能这样做,所以我问。谢谢。
答案 0 :(得分:0)
这些参数可以帮助您获得更平滑的情节:
这是一个简单的演示,显示每个参数如何影响生成的图:
f = @(mnp, n, facecolor){ subplot(mnp); ...
surf(peaks(n), 'edgecolor', 'none', ...
'facecolor', facecolor); view(2); ...
title(sprintf('Grid: %d x %d, FaceColor: %s', n, n, facecolor)); ...
colorbar};
f(221, 15, 'flat');
f(222, 15, 'interp');
f(223, 40, 'flat');
f(224, 40, 'interp');
colormap(jet(10))
figure
f(221, 15, 'flat');
f(222, 15, 'interp');
f(223, 40, 'flat');
f(224, 40, 'interp');
colormap(jet(100))
这是输出:
你已经知道:
色彩图的大小决定了色彩之间过渡的平滑程度。具有少量颜色的色彩图在颜色之间具有明显的过渡。较大的色彩映射可以在颜色之间提供更平滑的过渡。
但它可能不会对你的情况做出任何改变,所以继续阅读。
正如您在上面的示例代码中所看到的,绘制了两个不同数量的曲面的绘图。在第一行和第三行中绘制了15 by 15
曲面的网格,而在第二行和第四行中有40 by 40
曲面()。您的数据似乎是5 by 13
值矩阵。如果你有一个在每个(x,y)上给出z值的函数,尝试绘制更多曲面。
您可以看到第一列和第二列之间的差异。这就是表面对象more information about peaks(n)
改变外观的方式。
'flat'
- 使用统一的面部颜色。使用CData
值。第一个顶点的颜色数据决定了整个面的颜色。
'interp'
- 插入面部颜色。每个顶点的CData
值的双线性插值决定了颜色。
您可以使用the FaceColor
property功能生成更多积分。这是一个示例:
% original data (7 by 7)
[X,Y] = meshgrid(-3:3);
Z = peaks(X,Y);
% cubic interpolation of original data(61 by 61)
[XI,YI] = meshgrid(-3:.1:3);
ZI = interp2(X,Y,Z,XI,YI,'cubic');
% plot data (both original and interpolated)
subplot(121);
surf(X, Y, Z, 'edgecolor', 'none');
view(2);axis square
subplot(122);
surf(XI, YI, ZI, 'edgecolor', 'none', 'facecolor', 'interp');
view(2);axis square
colormap(hot(300))
结果: