2 つの y ベクトルと 1 つの x ベクトルがある場合:
y1 = [0.1,0.2,0.5,0.6];
y2 = [0.3,0.4,0.7,0.8];
x = 1:length(y1);
異なるマーカーと異なる色を使用して、同じプロットにすべての情報をプロットするにはどうすればよいですか。私は次のことを試しました:
cols = {'k','r','b',[0,0.5,0]};
markers = {'s','o','d','v'};
for i = 1:4;
plot(x(i),y1(i),markers{i},'color',cols{i},'MarkerEdgeColor',...
cols{i},'MarkerFaceColor','w');
hold on
end
ax1 = gca;
ax2 = axes('Position',get(ax1,'Position'),...
'YAxisLocation','right','XColor','k','YColor','k');
linkaxes([ax1,ax2],'x');
for i = 1:4;
plot(x(i),y2(i),markers{i},'color',cols{i},'MarkerEdgeColor',...
cols{i},'MarkerFaceColor',cols{i},'Parent',ax2);
hold on;
end
しかし、これは最初のプロットを上書きするようです。ここでの私の目的は、最初の 4 つのポイント (y1) を、マーカーと色が定義された状態で描画することですが、マーカーの面は白で描画します。次に、同じ図に、y2 の値を持つ 2 番目の y 軸 (右側) を含めたいと考えていますが、今回は「cols」に従って色付けされたマーカー面を使用します。これどうやってするの?
添加:
plotyy を使用する場合
for i = 1:4;
[ax,h1,h2] = plotyy(x(i),y1(i),x(i),y2(i));
hold on
set(h1,'linestyle','none','marker',markers{i},'MarkerEdgeColor',...
cols{i},'MarkerFaceColor',cols{i});
set(h2,'linestyle','none','marker',markers{i},'MarkerEdgeColor',...
cols{i},'MarkerFaceColor','w');
set(ax,{'ycolor'},{'k';'k'},{'xcolor'},{'k';'k'});
end
xaxis の値は正しく表示されません。これらは同じですが、プロット上で整列していません。