bar3 plot でゼロ値を非表示にすることはできますが、回避策は似ていますが、その解決策は直接適用できません。hist3()
画像処理 TB が必要な場合の回避策を次に示します。Toolbox に依存しない提案imdilate()
を希望します(Stats TB のみで問題ありません)。
% Example graph
hist3([2 0; 0 1; 1 1],[2 2])
% handle to graph3d.surfaceplot
h = get(gca,'child');
% retrieve the heights
heights = get(h,'Zdata');
% Index outer heights leaving a contour of zeros
mask = ~logical(imdilate(heights,ones(3)));
% Set the zero heights to NaN
heights(mask) = NaN;
% Final result
set(h,'ZData',heights)
に何が起こるかは次のheights
とおりです。
heights =...
[0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 0 0
0 0 0 0 0 0 1 1 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 1 1 0 0 0 1 1 0 0
0 1 1 0 0 0 1 1 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0]
mask =...
[1 1 1 1 1 0 0 0 0 1
1 1 1 1 1 0 0 0 0 1
1 1 1 1 1 0 0 0 0 1
1 1 1 1 1 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1
0 0 0 0 1 0 0 0 0 1
0 0 0 0 1 0 0 0 0 1
0 0 0 0 1 0 0 0 0 1
0 0 0 0 1 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1]
heights =...
[NaN NaN NaN NaN NaN 0 0 0 0 NaN
NaN NaN NaN NaN NaN 0 1 1 0 NaN
NaN NaN NaN NaN NaN 0 1 1 0 NaN
NaN NaN NaN NaN NaN 0 0 0 0 NaN
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
0 0 0 0 NaN 0 0 0 0 NaN
0 1 1 0 NaN 0 1 1 0 NaN
0 1 1 0 NaN 0 1 1 0 NaN
0 0 0 0 NaN 0 0 0 0 NaN
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN]