我想使用 matlab 中的plot3函式繪制一個三維折線圖。以下代碼用于繪制具有指定顏色名稱 'r'、'g'、'k' 等的線條。但是,當我使用 RGB 三元組將第一種顏色替換為 'myGreen' 時,會出現錯誤:' Error using plot3 向量的長度必須相同。'
我該如何解決這個問題?
[xx,zz]=meshgrid(1:230,1:4);
x1=(xx(1,:));
x2=(xx(2,:));
x3=(xx(3,:));
x4=(xx(4,:));
z1=(zz(1,:));
z2=(zz(2,:));
z3=(zz(3,:));
z4=(zz(4,:));
yy=rand(230,4);
y1=(yy(:,1));
y2=(yy(:,2));
y3=(yy(:,3));
y4=(yy(:,4));
% custom colour
myGreen=[0 0.5 0];
index={'data1','data2','data3','data4'}
figure
% It works and produces the attached figure
plot3(x1',z1',y1','r',x2',z2',y2','m', x3',z3',y3','b',x4',z4',y4','k')
% It doesn't work
plot3(x1',z1',y1','Color',myGreen,x2',z2',y2','m', x3',z3',y3','b',x4',z4',y4','k')
set(gca,'YTick',1:4,'YTickLabel',index)
grid on
xlabel('xlabel','FontSize',10);
zlabel('zlabel','FontSize',10)
axis tight

uj5u.com熱心網友回復:
根據plot3檔案,該函式接受多種語法:
plot3(X,Y,Z)
plot3(X,Y,Z,LineSpec)
plot3(X1,Y1,Z1,...,Xn,Yn,Zn)
plot3(X1,Y1,Z1,LineSpec1,...,Xn,Yn,Zn,LineSpecn)
plot3(___,Name,Value)
etc...
示例中的作業線:
plot3(x1',z1',y1','r',x2',z2',y2','m', x3',z3',y3','b',x4',z4',y4','k')
對應語法
plot3(X1,Y1,Z1,LineSpec1,...,Xn,Yn,Zn,LineSpecn)
在非作業行中,您已有效地將LineSpec1( 'r') 替換為Name,Valuepair 'Color',myGreen。但是沒有語法plot3(X1,Y1,Z1,Name,Value,...,Xn,Yn,Zn,LineSpecn)。
Name,Value對僅在引數串列的末尾接受并適用于所有系列。plot3您可以通過拆分呼叫并使用hold將它們全部保持在同一軸上來實作看似預期的行為:
plot3(x1',z1',y1','Color',myGreen)
hold on
plot3(x2',z2',y2','m')
plot3(x3',z3',y3','b')
plot3(x4',z4',y4','k')
uj5u.com熱心網友回復:
像現在一樣繪制,保存手柄,然后更改第一個手柄的顏色。
h=plot3(x1',z1',y1','r',x2',z2',y2','m', x3',z3',y3','b',x4',z4',y4','k');
set(h(1),'Color',myGreen);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/426529.html
