2

Matlabでクラスターグラムのフォントサイズを手動で、またはコマンドを記述して変更しようとしています。しかし、それらのどれも機能しませんでした。どこが間違っていたのかわかりません。私もオンラインでグーグルで検索しましたが、答えのない同様の質問しか見つけることができません。これが私が試したことです。

clusterobj = clustergram(data,'Rowlabel',c) % c is a cell array of strings for rowlabel
h = addYLabel(clusterobj);
set(h,'FontSize',2);

またはのようなもの

addYLabel(clusterobj, c, 'FontSize', 2);

また

set(gca,'FontSize',2);

それらのどれも機能しませんでした。c配列の文字列のフォントサイズをもっと小さいサイズに変更したいと思っています。誰かが何か考えを持っていますか?どうもありがとうございます、

4

1 に答える 1

5

これを試して

addYLabel(clusterobj , 'YourLabel', 'FontSize', 4)

これにより、プロットの右側に表示されるyラベル「YourLabel」のサイズが変更されます。

ただし、すべてのテキストラベルを変更する場合は、道路が少し長くなります。TMWサポートページを検索して見つけたこのコードを使用してください:

% Make all handles visible. This is necessary because clustergram
% objects are created with 'HandleVisibility' property set to 'off'.
set(0,'ShowHiddenHandles','on')

% Get all handles from root
allhnds = get(0,'Children');

% Find the handles that correspond to clustergram objects
cgfigidx = strmatch('Clustergram',get(allhnds,'Tag'));
cffighnd = allhnds(cgfigidx);
fch = get(cffighnd,'Children');
fch = fch(strmatch('axes',get(fch,'Type')));

% Find all the text objects
txtobj = findall(fch,'Type','Text');

% Set the font size of all text objects in clustergram (at last!)
set(txtobj,'FontSize',5)

編集: @Jonasコメントを読むだけで、手の込んだコードの代わりに、はるかに簡単でエレガントな方法があります:

figureHandle = gcf;
%# make all text in the figure to size 14 and bold
set(findall(figureHandle,'type','text'),'fontSize',4,'fontWeight','bold')

シャポー、ムッシュージョナス。

于 2013-01-30T00:54:40.213 に答える