Как изменить оси в инструменте филогенетического дерева MATLAB? - PullRequest
2 голосов
/ 13 мая 2011

Я хочу отобразить красивые дендрограммы для некоторых агломерационных кластеров, которые я генерирую на Java.Я записываю кластеры в файл в формате Newick.Затем я могу получить красивую картинку, почти то, что я хочу.

tr = phytreeread('myfile.tree')
phytreetool(tr)

enter image description here

К сожалению, ось X - это не то, что я хочу.Я бы предпочел «повернуть» ось, потому что итерации кластеризации идут справа налево, например, firstName и setFirstName кластеризуются на первой итерации.Кто-нибудь знает, как я могу это сделать, или, по крайней мере, отключить маркировку оси X?(Что ось по умолчанию пытается сказать мне в любом случае?)

Ответы [ 2 ]

2 голосов
/ 13 мая 2011

Во-первых, вам нужно получить доступ к дескриптору для осей, на которых строится дендрограмма.Если открыт только один рисунок, вы можете использовать функцию FINDALL примерно так:

phyAxes = findall(0,'Type','axes');

Теперь то, что вы хотите изменить , не x-направление оси, поскольку это также изменит построенную дендрограмму.Вы действительно хотите изменить только метки , используемые для отметок по оси X .Если вы хотите просто отключить их, вы можете сделать это:

set(phyAxes,'XTick',[]);

Теперь я не уверен, что ось X предназначена для вас.В вашем примере кажется, что каждая точка ветвления расположена в целочисленном значении вдоль оси x, начиная с 0 для самой левой точки ветвления (я полагаю, «корень»).Самая правая ветвь, содержащая firstName и setFirstName, расположена со значением 21. Если вы хотите изменить маркировку оси так, чтобы самая правая ветвь была в 0, а самая левая ветвь была в 21, выможно изменить оси следующим образом:

set(phyAxes,'XTick',0:21,'XTickLabel',num2str((21:-1:0).'));
0 голосов
/ 13 мая 2011

Это может вам помочь?

set(gca,'XDir','reverse')

EDIT Вы можете найти много интересного здесь . Ура!

...