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 для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


Для любых предложений по сайту: [email protected]