【问题标题】:How do I change color of surface plot in Matlab如何在 Matlab 中更改曲面图的颜色
【发布时间】:2019-10-27 12:56:54
【问题描述】:

我正在尝试绘制一个曲面。但是,我不太了解如何更改情节的颜色。我研究并尝试了各种选择,但没有取得多大成功。下面是曲面图的代码:

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;

我尝试了不同的colormapjetwinterhsv 参数。我还尝试了类似于以下的各种选项:

c = jet(6);
colormap(c);

但是,我得到的只是一个带有如下阴影的图形:

我想将表面图的颜色更改为更浅的颜色,例如浅蓝色、青色或浅绿色的色调。对此的任何帮助将不胜感激。

提前致谢,

一个。

【问题讨论】:

    标签: matlab plot matlab-figure surface


    【解决方案1】:

    您现在主要看到的是边缘,默认情况下是黑色的。您可以做几件事。

    1. 完全隐藏边缘
    H.EdgeColor = 'none';
    
    1. 为边缘设置一些 alpha 值(透明度)
    H.EdgeAlpha = 0.5;
    
    1. 使用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');
    

    【讨论】:

    • 这真的很有帮助,太好了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    • 2018-03-13
    • 2014-01-03
    • 1970-01-01
    相关资源
    最近更新 更多