Изменить свойства участка розы

Я использую функцию rose2 в своем скрипте, чтобы построить график розы. Я работаю с Matlab 2016a и поэтому все еще использую функцию розы. Я использую rose2, чтобы иметь возможность установить максимальное значение для оси r и заполнить треугольники. Я использую «findall», чтобы повернуть расположение меток оси R. Это работает очень хорошо:

maxHistogramValue = 100;

f=figure;

clf

% Set the max value to maxHistogramValue:

polar(0, maxHistogramValue,'-k')

% Set the location of the R-axis labels in degrees.
% Extract all of the 'Text' objects from the polar plot.
ax = findall(f.Children, 'Type', 'Axes');
% Filter the 'Text' objects by the 'HorizontalAlignment' property.
% PLEASE NOTE: This may not generalize to other versions of MATLAB
% where the default 'HorizontalAlignment' value for R-axis labels is not
% set to 'left'.
labels = findall(ax, 'Type', 'Text', 'HorizontalAlignment', 'left');
% Set the degrees of the R-axis Labels.
degrees = 285;
% Update the position of each R-axis label.
for label = labels'
    currentX = label.Position(1);
    currentY = label.Position(2);
    radius = sqrt(currentX^2 + currentY^2);
    newX = cos(degtorad(degrees)) * radius;
    newY = sin(degtorad(degrees)) * radius;
    label.Position = [newX, newY];
end

hold on;

% Now use rose2:

rose2(inp, theta_rad)

%make transparent
alpha(0.5)

view(-90,90)

И я понял, как изменить размер шрифта с помощью:

labels = findall(ax, 'Type', 'Text');
for label = labels'
    label.FontSize = 16;
end 

Но я хочу отображать углы с символом градуса. Я попытался добавить его в цикл, но, во-первых, отображаются неверные числа, а во-вторых, он также меняет ось r, чего я, конечно, не хочу.

labels = findall(ax, 'Type', 'Text');
for label = labels'
    label.FontSize = 16;
    label.String=label.String+char(176);
end

Может ли кто-нибудь помочь, пожалуйста???

Спасибо!

Конечные и Readonly классы в PHP
Конечные и Readonly классы в PHP
В прошлом, когда вы не хотели, чтобы другие классы расширяли определенный класс, вы могли пометить его как final.
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
БЭМ: Конвенция об именовании CSS
БЭМ: Конвенция об именовании CSS
Я часто вижу беспорядочный код CSS, особенно если проект большой. Кроме того, я совершал эту ошибку в профессиональных или личных проектах и...
Революционная веб-разработка ServiceNow
Революционная веб-разработка ServiceNow
В быстро развивающемся мире веб-разработки ServiceNow для достижения успеха крайне важно оставаться на вершине последних тенденций и технологий. По...
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Заголовок веб-страницы играет наиболее важную роль в SEO, он помогает поисковой системе понять, о чем ваш сайт.
Конфигурация Jest в angular
Конфигурация Jest в angular
В этой статье я рассказываю обо всех необходимых шагах, которые нужно выполнить при настройке jest в angular.
1
0
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуйте alpha(0.5) либо в функции rose2, либо в нижней части скрипта, чтобы получить желаемую прозрачность.

Также попробуйте polaraxes определить размер шрифта.

ax = polaraxes;
ax.FontSize = 25;

Спасибо! -Определение альфы внизу скрипта работает отлично. -Но у меня проблемы с поляраксами. Если я использую ваши командные строки, значения отображаются дважды, один раз маленьким и один раз размером шрифта 25, и данные больше не отображаются. В зависимости от того, где я вставляю ваши строки в свой скрипт, я дополнительно получаю следующие ошибки: Ошибка при использовании нового графика (строка 76) Добавление декартова графика к полярным осям не поддерживается. Ошибка в полярности (строка 74) cax = newplot(cax); Ошибка в rose2 (строка 84) h = polar(t,r); Ошибка в RosePlot_PAC (строка 157) rose2(inp, theta_rad)

Lisa 11.01.2023 13:55

Я хотел бы помочь вам больше, но я не могу :( У меня больше нет Matlab, поэтому я не могу протестировать ваш код.

Stewie Griffin 11.01.2023 15:17

Большинство людей имеют доступ к MATLAB здесь: matlab.mathworks.com

iohans 13.01.2023 16:34
Ответ принят как подходящий

Если вы посмотрите на labels, вы увидите, что он содержит больше ярлыков. Вы только хотите изменить labels(1:12):

labels = findall(ax, 'Type', 'Text');
for label = labels(1:12)'
    label.String=[label.String char(176)];
end

Кроме того, ваш label.String=label.String+char(176); не является синтаксисом Matlab.

Другие вопросы по теме