это первый раз, когда я отправляю что-то в stackoverflow, поэтому, пожалуйста, извините меня, если сообщение не высшего качества.MATLAB: создание круговых центрированных текстовых меток для кругового графика
Я пытаюсь сделать фигуру в MATLAB с некоторыми взаимосвязанными узлами, расположенными по кругу, и я хотел бы пометить каждый из этих узлов (например, 1 2 3 и т. Д.). Когда я использую этот пример кода с комментарием «Вращение» (последняя строка), я получаю плохо выровненные текстовые метки. Что я могу сделать, чтобы они были равномерно размещены на графике узла без необходимости поворота текста? Спасибо всем заранее! (Я прикладываю цифру, которую генерирует код).
%# 60-by-60 sparse adjacency matrix
A = bucky();
N = length(A);![enter image description here][1]
%# x/y coordinates of nodes in a circular layout
r = 1;
theta = linspace(0,2*pi,N+1)'; theta(end) = [];
xy = r .* [cos(theta) sin(theta)];
%# labels of nodes
txt = cellstr(num2str((1:N)','%02d'));
%# show nodes and edges
figure(123)
line(xy(:,1), xy(:,2), 'LineStyle','none', ...
'Marker','.', 'MarkerSize',15, 'Color','g')
hold on
gplot(A, xy, 'b-')
axis([-1 1 -1 1]); axis equal off
hold off
%# show node labels
h = text(xy(:,1).*1.05, xy(:,2).*1.05, txt, 'FontSize',8);
%set(h, {'Rotation'},num2cell(theta*180/pi))
Большое спасибо за ваш ответ. Я тоже пробовал это, как вы говорите, это смягчает проблему, но не совсем решает ее. Это становится очевидным, если я использую ваши строки кода с радиальным смещением до 1.01. Возможно, есть и другие предложения? – user3895311
Если вы попробуете установить (h, {'edgecolor'}, {'black'}), вы получите больше информации в текстовом поле. С радиальным умножителем до 1,0, он выглядит довольно сосредоточенным для меня. Я не совсем понимаю, как это происходит. –
Я думаю, вы правы: S большое спасибо за вашу помощь! – user3895311