matlab 中用ezplot画的多个图形怎么分别设置线条不同的颜色

matlab 中用ezplot画的多个图形怎么分别设置线条不同的颜色,第1张

你好!

默认的话每个图形都是不一样的颜色的,制定的话,在函数后面加上参数:'B'或者'Y'

B指蓝色,Y指黄色,K是黑色,当然,你可以给全称,如‘YELLOW'或者’RED‘

仅代表个人观点,不喜勿喷,谢谢。

Marker会出现在所有数据点上,不可能控制其间距。

要想不丢失数据而使得Marker稀疏,一种变通的做法是,在原图的基础上另外绘制一条曲线,该曲线专门用于绘制Marker,其数据由原曲线的数据提取。

下面的代码演示了实现方法,但需要注意的是,目前只适合图形中只有一条曲线的情况,如果有多条曲线,还需进行一些修改。

syms xGstar yArstar

D1=1.5 D2=1.6 K=4 phi=0.01

acstar1 = (0.5*sqrt(pi)*K*phi)^(2/(1-D1))*xGstar^2

acstar2 = (0.5*sqrt(pi)*K*phi)^(2/(1-D2))*xGstar^2

h = ezplot(sqrt(xGstar/pi)*(yArstar/3)^0.75*log(yArstar/(3*acstar1))+ ...

    K*phi*yArstar^0.75*(3*acstar1)^0.25-3e-4,[1e-9,1e-5,1e-5,5.0e-1])

set(h,'LineStyle','-','color','k')

 

X = get(h, 'x')

Y = get(h, 'y')

dX = max(X) - min(X)

dY = max(Y) - min(Y)

e = 0.01   % 距离系数,越小则越密集

clear x y

x(1) = X(1)

y(1) = Y(1)

for i = 2 : length(X)

    if sqrt( ((X(i)-x(end))/dX)^2 + ((Y(i)-y(end))/dY)^2 ) >= e

        x(end+1) = X(i)

        y(end+1) = Y(i)

    end

end

 

% 使用相同的颜色和线宽绘制Marker

hold on

plot(x,y,'o','color',get(h,'color'),'linewidth',get(h,'linewidth'))


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11552401.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存