我正在尝试绘制表面。但是,我不太了解如何更改情节的颜色。我研究并尝试了各种选择,但没有取得太大的成功。这是表面图的代码:
clear all;
[X,Y]=meshgrid(-10:.1:10);
p=X;
[X, Y] = meshgrid(-20:.2:20);
q=Y;
a = 10;
b = 20;
Z=2*a.*p+p.^2-2*b.*q-q.^2;
figure;
H=surf(p,q,Z)
xlim([-10 10]);
ylim([-20 20]);
% colormap jet;
hold on;
view([150 25]);
xlabel('p');
ylabel('q');
zlabel('The Data Z');
print -r600 -depsc Figure.eps;
我用colormap
,jet
或winter
参数尝试了不同的hsv
。我还尝试了类似于以下内容的各种选项:
c = jet(6);
colormap(c);
但是,我得到的只是一个带有深色阴影的人物,如下所示:
我想将表面图的颜色更改为较浅的颜色,例如浅蓝色,青色或浅绿色的阴影。任何帮助,将不胜感激。
预先感谢
A。
答案 0 :(得分:2)
您现在主要看到的是边缘,默认情况下为黑色。您可以做几件事。
H.EdgeColor = 'none';
H.EdgeAlpha = 0.5;
surf
使用非常精细的网格(如现在所述)对数据进行一次绘制,将边缘颜色设置为'none'
,使用mesh
使用粗网格将数据绘制为显示线条,使其更容易看到飞机。 % generate data
a = 10;
b = 20;
xv = -10:.1:10;
yv = -20:.2:20;
[X,Y]=meshgrid(xv,yv);
Z=2*a.*X+X.^2-2*b.*Y-Y.^2;
% make data more course.
xv_course = -10:1:10;
yv_course = -20:1:20;
[Xc,Yc]=meshgrid(xv_course,yv_course);
Zc = 2*a.*Xc+Xc.^2-2*b.*Yc-Yc.^2;
figure(1); clf;
Hs = surf(X,Y,Z, 'EdgeColor', 'none');
colormap cool
hold on;
Hm = mesh(Xc,Yc,Zc, 'EdgeColor', 'k', 'FaceColor', 'none');
view([150 25]);
xlabel('x');
ylabel('y');
zlabel('The Data Z');