Programming with MATLAB | ![]() ![]() |
ポートフォリオpie3メソッド
ポートフォリオクラスは、MATLAB関数pie3
を多重定義して、ポートフォリオオブジェクトを受け入れ、クライアントのポートフォリオ全体の中で個々の資産の割合を示す3次元円グラフを表示します。MATLABは、入力引数が単一のポートフォリオオブジェクトの場合、pie3
の@portfolio/pie3.m
バージョンを呼び出します。
function pie3(p) % PIE3 ポートフォリオの3-D pie チャートを作成 stock_amt = 0; bond_amt = 0; savings_amt = 0; for i=1:length(p.ind_assets) if isa(p.ind_assets{i},'stock') stock_amt = stock_amt + ... get(p.ind_assets{i},'CurrentValue'); elseif isa(p.ind_assets{i},'bond') bond_amt = bond_amt + ... get(p.ind_assets{i},'CurrentValue'); elseif isa(p.ind_assets{i},'savings') savings_amt = savings_amt + ... get(p.ind_assets{i},'CurrentValue'); end end i = 1; if stock_amt ~= 0 label(i) = {'Stocks'}; pie_vector(i) = stock_amt; i = i +1; end if bond_amt ~= 0 label(i) = {'Bonds'}; pie_vector(i) = bond_amt; i = i +1; end if savings_amt ~= 0 label(i) = {'Savings'}; pie_vector(i) = savings_amt; end pie3(pie_vector,label) set(gcf,'Renderer','zbuffer') set(findobj(gca,'Type','Text'),'FontSize',14) cm = gray(64); colormap(cm(48:end,:)) stg(1) = {['Portfolio Composition for ',p.name]}; stg(2) = {['Total Value of Assets: $',num2str(p.total_value)]}; title(stg,'FontSize',12)
多重定義されたpie3
メソッドは、三つの部分から構成されています。
get
メソッドを使って、個々の包含されているオブジェクトのCurrentValue
プロパティにアクセスします。各クラスのトータル価値が加算されます。pie3
関数を呼び込み、あるフォントを作成し、カラーマップを調整し、タイトルを加えます。
![]() |
ポートフォリオdisplayメソッド | ポートフォリオの作成 | ![]() |