График plot, координаты и время

Обсуждение вопросов связанных с компиляцией, созданием GUI приложений.

Модератор: Admin

Deshem
Пользователь
Сообщения: 9
Зарегистрирован: Вт сен 03, 2019 2:59 pm

График plot, координаты и время

Сообщение Deshem » Вт сен 03, 2019 3:06 pm

Добрый день. Рисую график plot(x,y), где x,y получаю из рабочей области. Вопрос. Можно ли (если да, то как) добавить в отображение на самом графике третий параметр - время?

Jey
Пользователь
Сообщения: 2714
Зарегистрирован: Вт сен 12, 2006 2:21 pm

Re: График plot, координаты и время

Сообщение Jey » Ср сен 04, 2019 8:16 am

Трехмерный график?
Или на двухмерном графике точки подписать на самом графике?
Помощь в Матлабе / Matlab, Qt за деньги.
Помощь в html, css, jquery, MVC за деньги.
Помощь в C# / C sharp / Си шарп за деньги.
Вконтакте: https://vk.com/id122995106
или Личное сообщение на форуме.
http://ПунктыПроката.рф

Deshem
Пользователь
Сообщения: 9
Зарегистрирован: Вт сен 03, 2019 2:59 pm

Re: График plot, координаты и время

Сообщение Deshem » Ср сен 04, 2019 8:29 am

Jey писал(а):Трехмерный график?
Или на двухмерном графике точки подписать на самом графике?


Подписать на двумерном графике

Jey
Пользователь
Сообщения: 2714
Зарегистрирован: Вт сен 12, 2006 2:21 pm

Re: График plot, координаты и время

Сообщение Jey » Ср сен 04, 2019 2:51 pm

Deshem писал(а):
Jey писал(а):Трехмерный график?
Или на двухмерном графике точки подписать на самом графике?


Подписать на двумерном графике

https://www.mathworks.com/help/matlab/ref/text.html
Помощь в Матлабе / Matlab, Qt за деньги.
Помощь в html, css, jquery, MVC за деньги.
Помощь в C# / C sharp / Си шарп за деньги.
Вконтакте: https://vk.com/id122995106
или Личное сообщение на форуме.
http://ПунктыПроката.рф

Deshem
Пользователь
Сообщения: 9
Зарегистрирован: Вт сен 03, 2019 2:59 pm

Re: График plot, координаты и время

Сообщение Deshem » Пт сен 06, 2019 10:02 am

Jey писал(а):
Deshem писал(а):
Jey писал(а):Трехмерный график?
Или на двухмерном графике точки подписать на самом графике?


Подписать на двумерном графике

https://www.mathworks.com/help/matlab/ref/text.html


Не совсем то, что нужно.

https://ibb.co/FxbxFp8

Вот у меня есть какая-то траектория. Когда навожу мышку на любую точку траектории, он показывает ее координаты. Так вот, можно ли третьей строчкой показать время в этот момент?

sandy
Эксперт
Сообщения: 5601
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: График plot, координаты и время

Сообщение sandy » Пн сен 09, 2019 9:52 am

С уважением

Александр Сергиенко

Deshem
Пользователь
Сообщения: 9
Зарегистрирован: Вт сен 03, 2019 2:59 pm

Re: График plot, координаты и время

Сообщение Deshem » Пн сен 09, 2019 2:18 pm

sandy писал(а):Наверное как-то так удастся
https://www.mathworks.com/help/matlab/creating_plots/create-custom-data-tips.html


Вот это то, что нужно. Жаль, что это введено в 2019 матлабе. У меня 2018. Но информация есть, может что-то придумаю. Спасибо

sandy
Эксперт
Сообщения: 5601
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: График plot, координаты и время

Сообщение sandy » Пн сен 09, 2019 6:25 pm

Что значит "введено"? Там же ясно написано: "If you are using R2018b or earlier, customize the data tips by setting the UpdateFcn property of the datacursormode object instead of using the DataTipTemplate object." Просто посмотрите соответствующий пример в документации от своей версии.
С уважением



Александр Сергиенко

Deshem
Пользователь
Сообщения: 9
Зарегистрирован: Вт сен 03, 2019 2:59 pm

Re: График plot, координаты и время

Сообщение Deshem » Вт сен 10, 2019 4:46 pm

sandy писал(а):Что значит "введено"? Там же ясно написано: "If you are using R2018b or earlier, customize the data tips by setting the UpdateFcn property of the datacursormode object instead of using the DataTipTemplate object." Просто посмотрите соответствующий пример в документации от своей версии.


Введено - значит функция DataTipTemplate появилась в матлабе 2019, а datacursormode не добавляет строчку

sandy
Эксперт
Сообщения: 5601
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: График plot, координаты и время

Сообщение sandy » Ср сен 11, 2019 8:30 pm

datacursormode не добавляет строчку

Почему не добавляет? Сколько строчек напишете, столько и будет. Проблема в том, как нужные данные внутрь передать, это да. Вот сейчас в R2014a попробовал примерчик сделать с вложенными функциями, работает. Приведенный ниже код нужно сохранить в файл с именем datacursor_example.m

Код: Выделить всё

function datacursor_example
fig = figure;
t = 0:0.01:1;
x = cos(2*pi*t);
y = sin(4*pi*t);
plot(x,y)
dcm_obj = datacursormode(fig);
set(dcm_obj,'UpdateFcn',@datacursor_updatefcn)

function txt = datacursor_updatefcn(~, event_obj)
pos = get(event_obj,'Position');
ind_x = find(pos(1)==x);
ind_y = find(pos(2)==y);
ind = intersect(ind_x, ind_y);
if isempty(ind)
    str_t = 'Time: not found';
else
    ind = ind(1);
    str_t = sprintf('Time: %g', t(ind));
end
txt = {['X-Position: ',num2str(pos(1))],...
         ['Y-Position: ',num2str(pos(2))], str_t};
end

end
С уважением



Александр Сергиенко

Deshem
Пользователь
Сообщения: 9
Зарегистрирован: Вт сен 03, 2019 2:59 pm

Re: График plot, координаты и время

Сообщение Deshem » Пт сен 13, 2019 9:42 am

sandy писал(а):
datacursormode не добавляет строчку

Почему не добавляет? Сколько строчек напишете, столько и будет. Проблема в том, как нужные данные внутрь передать, это да. Вот сейчас в R2014a попробовал примерчик сделать с вложенными функциями, работает. Приведенный ниже код нужно сохранить в файл с именем datacursor_example.m

Код: Выделить всё

function datacursor_example
fig = figure;
t = 0:0.01:1;
x = cos(2*pi*t);
y = sin(4*pi*t);
plot(x,y)
dcm_obj = datacursormode(fig);
set(dcm_obj,'UpdateFcn',@datacursor_updatefcn)

function txt = datacursor_updatefcn(~, event_obj)
pos = get(event_obj,'Position');
ind_x = find(pos(1)==x);
ind_y = find(pos(2)==y);
ind = intersect(ind_x, ind_y);
if isempty(ind)
    str_t = 'Time: not found';
else
    ind = ind(1);
    str_t = sprintf('Time: %g', t(ind));
end
txt = {['X-Position: ',num2str(pos(1))],...
         ['Y-Position: ',num2str(pos(2))], str_t};
end

end


Спасибо. Попробую