Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
4 / 4 / 0
Регистрация: 28.02.2013
Сообщений: 35

Как нарисовать двойную стрелку под графиком?

26.02.2014, 18:05. Показов 2603. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята, а подскажите пожалуйста, как нарисовать двойную стрелку под графиком. Т.е. есть гистограмма, которая строится по значениям. Необходимо под графиком нарисовать двойную стрелку, которая бы характеризовала изменения от max(x) до min (x).
Перепробовала много различных вариантов, мне понравилась функция annotation('doublearrow', [], []), но матлаб пишет, что annotation изменяется в пределах от 0 до 1. В приложении пример того, что нужно. Стрелочка прекрасно рисуется в edit, но так как гистограмм 20 штук и считаются они в цикле, очень бы хотелось стрелочку тоже в цикл вогнать... Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.02.2014, 18:05
Ответы с готовыми решениями:

Как нарисовать стрелку ?
Что надо добавить в этот код чтобы вместо линии рисовалась стрелка? var line = new Line { Stroke = Brushes.Black, X1 =...

Как нарисовать стрелку
Здравствуйте. У меня имеются две точки с координатами, заранее они неизвестны, т.к. координаты вносятся по нажатию мыши. Задача состоит в...

как нарисовать стрелку в GDI+?
Кто-нибудь подскажите как нарисовать стрелку.я нарисовал линию, теперь чтобы получилась стрелка мне надо построить треугольник на конце...

5
Эксперт по электронике
 Аватар для R2D2
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,488
26.02.2014, 18:06
kreozotica, выложите пожалуйста свой код.
0
4 / 4 / 0
Регистрация: 28.02.2013
Сообщений: 35
27.02.2014, 00:12  [ТС]
Не обращайте внимание на начало, где происходит разбиение общего файла со 178 станциями по 45 годам, на четыре 11-летних периода, по каждому из которых происходит расчет.

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 load c:\data\ETR\hist\august_spi_60.txt;
 s=august_spi_60;
  
  nyear=45;
stm = reshape (s(:,4),[45 178]); 
tt=ones(11,1); 
timep = [tt; 2*tt; 3*tt; 4*tt; 4]; 
time = 1966:2010; 
 
for i = 1:4 %4 столбца
    x = stm (timep==i,:);
    x = x(:);
    N=length(x);
 
hold off
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%гистограмма%%%%%%%%%%%
[n,xout]=hist(x,-5:0.1:4); %
nout=n/N*100;
bar(xout, nout, 'y')
maxn = max(nout)+1;
 
 
end
Раз я прилагаю код, еще вопрос - можно ли прописать цвет гистограммы к примеру какой-нибудь [0.1 0.6 0,7] или только стандартные y,r,b... и т.д. ?
это относится к вот этой строке ->

Matlab M
1
bar(xout, nout, 'y')
файл с данными во вложении...если понадобится august_spi_60.rar
0
Эксперт по электронике
 Аватар для R2D2
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,488
27.02.2014, 11:35
kreozotica, есть крутая функция dsxy2figxy. Если она есть в составе твоего матлаба, то можешь сразу запускать нижеследующий код. Если нет - скопируй ее отсюда и сохрани с соответствующим именем.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
clc; close all; clear;
load august_spi_60.txt;
 s=august_spi_60;
  
  nyear=45;
stm = reshape (s(:,4),[45 178]); 
tt=ones(11,1); 
timep = [tt; 2*tt; 3*tt; 4*tt; 4]; 
time = 1966:2010; 
figure('units', 'normalized', 'position', [.1 .1 .8 .8])
for k = 1:4 %4 столбца
    x = stm (timep==k,:);
    x = x(:);
    N=length(x);
 
hold off
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%гистограмма%%%%%%%%%%%
subplot(2,2,k)
[n,xout]=hist(x,-5:0.5:4); %
nout=n/N*100;
hB = bar(xout, nout);
set(hB, 'facecolor', [126 230 208]/255)
maxn = max(nout)+1;
axx = [-3*var(x) 3*var(x)];
axy = [-0.5 -0.5];
[arrowx,arrowy] = dsxy2figxy(gca, axx, axy);
annotation('doublearrow', arrowx, arrowy)
 
end
1
4 / 4 / 0
Регистрация: 28.02.2013
Сообщений: 35
27.02.2014, 16:05  [ТС]
Спасибо большое!!! Да, внесла эту функцию в матлаб!

Добавлено через 17 минут
Я немного подкорректировала Ваш код под свои нужды, так как необходимо, чтобы стрелочка показывала размах, значения от максимума до минимума. Подскажите пожалуйста, теперь стрелочки в цикле наслаиваются друг на друга, т.е. они не обновляются.
код вот такой:

Matlab M
1
2
3
4
5
6
hold off
%%%%%%%%%%%%%%%%%%%%%%%%%размах%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
axx = [max(x) min(x)]
axy = [-0.5 -0.5];
[arrowx,arrowy] = dsxy2figxy(gca, axx, axy);
annotation('doublearrow', arrowx, arrowy)
hold off не помогает, или нужно использовать что-то другое?
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
03.03.2014, 13:19
kreozotica, дело в том, что стрелка это элемент графического окна, но не график, поэтому hold off на нее не действует - нужно очищать все окно: clf
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.03.2014, 13:19
Помогаю со студенческими работами здесь

Как нарисовать стрелку на Image
Подскажите как нарисовать стрелку на Image?

как нарисовать стрелку в конце дуги?
всем здравствуйте! возникла у меня такая проблема: есть дуга (может быть повёрнут относительно своего цента как угодно), требуется...

Нарисовать стрелку как у аналоговых приборов
Доброго времени суток. Подскажите, как можно нарисовать стрелку как у аналоговых приборов ? Например:

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

Как нарисовать стрелку с наконечником не на конце?
Здравствуйте! Рисую стрелку этим кодомprocedure arrow(nachalo,konec:tpoint); var B, deltaX, deltaY: Extended; begin ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip . . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru