WedX - журнал о программировании и компьютерных науках

Текст Matlab переполняет легенду

Очень раздражает то, что на графике достаточно размера, чтобы расширить легенду, но он не изменяет размер автоматически в соответствии с содержимым. Любое предложение о том, как это исправить? (латексный интерпретатор настроен на легенду)

Ошибка, отмеченная красным цветом, когда данные легенды выпадают из поля легенды.

Полностью минимальный рабочий пример моей проблемы:

window=figure('Visible','on');
axes1 = axes('Parent',window);
grid(axes1,'on');
hold(axes1,'all');
set(window, 'Position', [0 0 1000 1000]);

x=rand(1000,1);
y=rand(1000,1);
companyMap='companyname of datapoint'

%draw scatter in window
scatter(x,y,'fill','MarkerFaceColor',[0,0,1],'MarkerEdgeColor',[0,0,1],'Marker','.','SizeData',30,'Parent',axes1,'DisplayName',sprintf('%s Datapoint',strrep(companyMap,'&','\&')));
linFit = fitlm(x,y);
dispName = sprintf('Linear fit: $y=%.3f x+ %.3f$, $R^{2}=%.3f$',linFit.Coefficients.Estimate(2),linFit.Coefficients.Estimate(1),linFit.Rsquared.Ordinary);
if linFit.Coefficients.Estimate(1) < 0
    dispName = strrep(dispName,'+','');
end
%lsline('linewidth',2,'Parent',axes1,'DisplayName',dispName);
line(x,linFit.Fitted,'Parent',axes1,'Tag','lsline','Color',[0 0 0],'DisplayName',dispName,'linewidth',2);
legend1 = legend(axes1,'show');
set(legend1,'Interpreter','latex');
%set(legend1, 'FontSize',7);
set(legend1,'Location','Best');

% Create title
title( { 'tit' }, 'FontSize',20);
% Create xlabel
xlabel( { 'x' } , 'FontSize',16, 'Interpreter','LaTex');
% Create ylabel
ylabel( { 'y' } , 'FontSize',16, 'Interpreter','LaTex');

  • Поскольку вы не предоставили никакого кода, который помог бы нам догадаться, что не так, я предполагаю, что вы действительно использовали ручку и бумагу. Я бы порекомендовал использовать резинку, удалить переполненную линию, растирая, и нарисовать новую. 14.08.2014
  • а, забыл: ;) -› без обид 14.08.2014
  • Можете ли вы опубликовать только соответствующую часть кода? И код должен работать. См. stackoverflow.com/help/mcve. 14.08.2014
  • Я полностью вас понимаю, но почему-то подумал, что моего первого вопроса достаточно... Обфускация кода требует немного времени, я просто ленился, как и положено программисту (в большинстве случаев): P @Luis, один момент 14.08.2014
  • Добавлены запрошенные файлы, отмените минусы :( 14.08.2014
  • использование «лучшего» в качестве размещения не работает для каждой фигуры, и изменение FontSize также не дает желаемого результата. 14.08.2014
  • Для меня ваш код работает так, как должен. 14.08.2014
  • Я использую Matlab R2014a на Windows 8.1. Если вы используете то же самое, я хотел бы получить доказательства вашего утверждения, потому что для меня это не работает. 14.08.2014
  • Разорвать строку с '\n' в sprintf. 14.08.2014
  • Спасибо, Ивон, но, к сожалению, это не очень хорошее решение, поскольку на некоторых графиках сама формула выходит за пределы правой части поля легенды... 14.08.2014
  • [hleg1, hobj1] = legend(axes1,'show'); textobj = findobj(hobj1, 'type', 'text'); set(textobj, 'Interpreter', 'latex'); set(hleg1,'position',[.2,.2,.8,.8])mathworks.com/matlabcentral /ответы/ 14.08.2014
  • благодаря добавлению этого рабочего набора (легенда1, 'позиция', [0,5 0,8 0,4 0,1]) при удалении набора (легенда1, 'Местоположение', 'Лучшее'); 14.08.2014
  • @BigChief - Пожалуйста, добавьте решение, которое сработало для вас, в качестве ответа и примите его, чтобы этот вопрос казался решенным (как он есть на самом деле). 14.08.2014
  • в любом случае, вам нужно доказательство: нажмите на меня! Это то, что дает вашему коду просто с копированием и вставкой из коробки на моей машине. Windows 8.1 и Matlab 2014a. Так что я бы сказал, что вы что-то напортачили с некоторыми настройками, было бы интересно узнать, помог ли перезапуск Matlab? 14.08.2014
  • похоже, вы сжульничали и изменили размер шрифта, все равно я поменяю его на разрешенный 14.08.2014

Ответы:


1

Рабочий пример с набором решений (легенда1, 'позиция', [0,5 0,8 0,4 0,1])

window=figure('Visible','on');
axes1 = axes('Parent',window);
grid(axes1,'on');
hold(axes1,'all');
set(window, 'Position', [0 0 1000 1000]);

x=rand(1000,1);
y=rand(1000,1);
companyMap='companyname of datapoint'

%draw scatter in window
scatter(x,y,'fill','MarkerFaceColor',[0,0,1],'MarkerEdgeColor',[0,0,1],'Marker','.','SizeData',30,'Parent',axes1,'DisplayName',sprintf('%s Datapoint',strrep(companyMap,'&','\&')));
linFit = fitlm(x,y);
dispName = sprintf('Linear fit: $y=%.3f x+ %.3f$, $R^{2}=%.3f$',linFit.Coefficients.Estimate(2),linFit.Coefficients.Estimate(1),linFit.Rsquared.Ordinary);
if linFit.Coefficients.Estimate(1) < 0
    dispName = strrep(dispName,'+','');
end
%lsline('linewidth',2,'Parent',axes1,'DisplayName',dispName);
line(x,linFit.Fitted,'Parent',axes1,'Tag','lsline','Color',[0 0 0],'DisplayName',dispName,'linewidth',2);
legend1 = legend(axes1,'show');
set(legend1,'Interpreter','latex');
%set(legend1, 'FontSize',7);
set(legend1,'position',[0.5 0.8 0.4 0.1])

% Create title
title( { 'tit' }, 'FontSize',20);
% Create xlabel
xlabel( { 'x' } , 'FontSize',16, 'Interpreter','LaTex');
% Create ylabel
ylabel( { 'y' } , 'FontSize',16, 'Interpreter','LaTex');
14.08.2014

Новые материалы

Как создать диаграмму градиентной кисти с помощью D3.js
Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


Для любых предложений по сайту: wedx@cp9.ru