実際には、呼び出し中に出力引数を追加する必要があり、pareto
2 つのハンドル (線と棒のシリーズ) と 2 つの軸を取得します。YTickLabel
取得した2軸目のプロパティを取得したい。したがって、上記の呼び出しでは、引数pareto
を指定する必要はないと思います。ax
例:
[handlesPareto, axesPareto] = pareto(explained,X);
このコマンドを使用すると、次のようになります。
RightYLabels = get(axesPareto(2),'YTickLabel')
次の(または同様のもの)が得られます。
RightYLabels =
'0%'
'14%'
'29%'
'43%'
'58%'
'72%'
'87%'
'100%'
実際にできることは、それらを完全に消去して、text
好きなようにカスタマイズできる注釈に置き換えることです。素敵なデモンストレーションについては、こちらをご覧ください。
あなたの問題に(関数ドキュメントのダミー値を使用して)適用すると、次のことができます。
clear
clc
close all
y = [90,75,30,60,5,40,40,5];
figure
[hPareto, axesPareto] = pareto(y);
%// Get the poisition of YTicks and the YTickLabels of the right y-axis.
yticks = get(axesPareto(2),'YTick')
RightYLabels = cellstr(get(axesPareto(2),'YTickLabel'))
%// You need the xlim, i.e. the x limits of the axes. YTicklabels are displayed at the end of the axis.
xl = xlim;
%// Remove current YTickLabels to replace them.
set(axesPareto(2),'YTickLabel',[])
%// Add new labels, in bold font.
for k = 1:numel(RightYLabels)
BoldLabels(k) = text(xl(2)+.1,yticks(k),RightYLabels(k),'FontWeight','bold','FontSize',18);
end
xlabel('Principal Component','fontweight','b','fontsize',20)
ylabel('Variance Explained (%)','fontweight','b','fontsize',20)
これにより、次のようになります。
もちろん、このように必要なものをすべてカスタマイズできます。