私はcontourf関数を使用して等高線図を作成しています:
等高線を示す平面の上にグリッド線を表示したいと思います。
私は1つの解決策に出くわしましたが、次の2つのコマンドを含む2Dでのみ機能します(つまり、等高線図を2Dで表示する場合)。
grid on
set(gca,'layer','top');
ただし、軸を 3D で表示すると、グリッド線は表示されません。これを簡単に行う方法はありますか?
line
これは、グリッド ラインを書き換えるオブジェクト操作、または gridxyと呼ばれる小さな FEX ツールを使用して実現できます。たとえば、同じプロパティを持つ Figure を再作成してみましょう。
figure
set(gcf,'Renderer','OpenGL')
%# plot surface and contour
Z = peaks;
surf(Z), hold on
[~,h] = contourf(Z); %# get handle to contourgroup object
%# change the ZData property of the inner patches
hh = get(h,'Children'); %# get handles to patch objects
for i=1:numel(hh)
zdata = ones(size( get(hh(i),'XData') ));
set(hh(i), 'ZData',-10*zdata)
end
そして余分なグリッド線を追加します:
v = get(gca);
hg=gridxy(get(gca,'XTick'),get(gca,'YTick'), 'Color',[1,1,1]*0.25,'Linestyle',':');
set(hg,'Zdata',repmat(v.ZLim(1)+eps,[1 numel(get(hg,'Ydata'))]));
しかし、使用しない理由はありますsurfc
か? 例えば:
Z = peaks(20);
surfc(Z);
view(-45, 20);