• Регистрация
URL2000
URL2000 0.00
н/д

Построение графиков на основании полученных данных в Excel

10.03.2020

Здравствуйте! Я в матлабе абсолютный новичок. Пожалуйста, помогите построить графики, как на приведенных картинках. Прикладываю также файл с данными, где желтым показаны сроки эксплуатации, а зеленым - порядковый номер кривых. Я хочу научиться строить такие графики. Если несложно, то, пожалуйста, дайте краткие комметарии того, что прописывается в каждой строке кода. Заранее спасибо всем откликнувшимся!

Теги

    10.03.2020

    Лучший ответ

    • _______ ____________ -1.52
      10.03.2020 12:00

      Если Вы совсем новичок и не дружите с программным кодом, то можно все это сделать через гуй. 

      Последовательность такая 

      1. Вносите в MATLAB Ваши данные, он умеет их импортировать из exel таблиц, если это нужно. Ну или для пробы напишите в консоли команды ниже и поэкспериментируйте с тестовыми данными. 

      x=1:50; y=1:50; i=1:100;

      2. Переходите на вкладку plots

      3. Выбираете необходимые данные в рабочем пространстве и смотрите какие графики из них можно построить.

       

      Смотрите картинку.

       

    Ответы

    • _______ ____________
      _______ ____________ -1.52
      10.03.2020 09:16

      Если Вы совсем новичок и не дружите с программным кодом, то можно все это сделать через гуй. 

      Последовательность такая 

      1. Вносите в MATLAB Ваши данные, он умеет их импортировать из exel таблиц, если это нужно. Ну или для пробы напишите в консоли команды ниже и поэкспериментируйте с тестовыми данными. 

      x=1:50; y=1:50; i=1:100;

      2. Переходите на вкладку plots

      3. Выбираете необходимые данные в рабочем пространстве и смотрите какие графики из них можно построить.

       

      Смотрите картинку.

       

      • URL2000
        URL20000.00
        10.03.2020 11:45

        Сложность в построении вызывает второй график. Строится тонкая линия... 

        Вы бы не могли показать, как с помощью кода выполняются эти построения. 

        Буду очень благодарна! 

      • _______ ____________
        _______ ____________ -1.52
        10.03.2020 12:01

        А вы сначала постройте их в гуе, а потом посмотрите в консоль, там будет описание Ваших действий в виде кода. допустим я из своих a и b построил какой-то график, пусть это будет 

        bar3(b,a)

        затем пишете в консоли:

        help bar3

        И получаете ее сигнатуру с описанием всех параметров, и сможете настроить толщину Вашей линии.

        bar3(Z) creates a 3-D bar chart, where each element in Z corresponds
              to one vertical bar. When Z is a vector, the y-axis scale ranges from
              1 to length(Z). When Z is a matrix, the y-axis scale ranges from 1 to
              the number of rows in Z.
           
              bar3(Y,Z) draws the bars at the locations specified in vector Y.  The 
              y-values can be nonmonotonic, but cannot contain duplicate values.
           
              bar3(...,WIDTH) controls the separation between bars. A WIDTH value
              greater than 1 produces overlapped bars. The default WIDTH value is
              0.8.
           
              bar3(...,STYLE) specifies the bar style, where STYLE is either
              'detached', 'grouped', or 'stacked'. The default STYLE value is
              'detached'.
          
              bar3(...,COLOR) specifies the line color. Specify the color as one of
              these values: 'r', 'g', 'b', 'y', 'm', 'c', 'k', or 'w'.
           
              bar3(AX,...) plots into the axes AX instead of the current axes.
           
              H = bar3(...) returns a vector of Surface objects.
           
              Example:
                  subplot(1,2,1) 
                  bar3(peaks(5))
                  subplot(1,2,2) 
                  bar3(rand(5),'stacked')
        • URL2000
          URL20000.00
          10.03.2020 12:17

          Огромноое спасибо! Если возникнут вопросы, то снова напишу! Вы бы не могли написать расшифровку кода

           

          subplot(1,2,1) 
                    bar3(peaks(5))
                    subplot(1,2,2) 
                    bar3(rand(5),'stacked')
        • aBoomest
          aBoomest+942.89
          10.03.2020 13:31

          subplot(2,2,1) - размещает на фигуре поле для графика функции

          Первые двкее цифры - 2,2 - две шт. по вертикали, две по горизонтали

          Третья цифра- номер по порядку

          bar3(peaks(5)) - строит столбчатую диаграмму https://hub.exponenta.ru/post/spravochnik-po-matlab-graficheskie-komandy-i-funktsii-vgpotemkin242#bar
          3 - означает что объемную.

          • URL2000
            URL20000.00
            10.03.2020 16:20

            Спасибо Всем, кто откликнулся! У меня получился странный трехмерный график. По оси z должны идти вероятности, по оси х - годы, а по оси y - порядковые номера. У меня все наоборот. Как их поменять местами?

            • aBoomest
              aBoomest+942.89
              10.03.2020 19:41

              А как строили? Например surf(X,Y,Z) - по-моему тут очевидно.

              PS: Можно просто повернуть. 9-я по счету кнопочка (после кнопки с рукой). Жмете, и далее как душе угодно! А где у вас что на осях - не ясно. Ибо не всегда такой "просто поворот" возможн, если тройка меяется с правой на левую.

              PSPS: предполагаю, что стоит еще почитать про функцию meshgrid.

            • URL2000
              URL20000.00
              10.03.2020 21:50

              Все равно я что-то делаю не так... Прошу прощения за свою наглость, но помогите, пожалуйста, либо с кодом для этих графиков, либо с порядком действий для построения каждого из трех графиков. Получается не понятно что 

              • aBoomest
                aBoomest+942.89
                11.03.2020 05:45

                вы файл-то приложите, или конкретные вопросы.

              • URL2000
                URL20000.00
                11.03.2020 06:45

                Нужно построить графики как на картинках, которые находятся во вложении в самом первом сообщении в этой темы. Данные Excel для построения также есть во вложении в самом первом сообщении этой темы.

                В файле Excel желтым показаны сроки эксплуатации, а зеленым - порядковый номер графиков.

                Пожалуйста, напишите или код, или порядок действий для построения. Но очень большая просьба: в случае, если построение будет с помощью кода, дайте пояснения к действиям. 

                P. S. Повторно смогу приложить файлы после обеда.

                 

                Спасибо всем откликнувшимся! 

                • aBoomest
                  aBoomest+942.89
                  11.03.2020 07:18

                  Скачал картинку нумэр три.

                  %Z - ваши данные
                  y = 0:5:125;
                  x =1:24;
                  [X,Y] = meshgrid(x,y);
                  plot3(X,Y,Z);

                  все как на картинке, только развернуть (как писалось выше) и настроить колористику и внешний вид - это уж на любителя.

                • URL2000
                  URL20000.00
                  11.03.2020 07:36

                  Спасибо! А как быть с первым и вторым графиком? 

                  • aBoomest
                    aBoomest+942.89
                    11.03.2020 07:56

                    Откуда ж я знаю о чем эти графики и какая у вас задача?

                    ЦИТАТА

                    "Я хочу научиться строить такие графики."

                    Построена кривуля по вашим данным из таблицы.
                    С виду на рис. это все разные вещи с разными данными. Хотя всяко может быть.

                  • URL2000
                    URL20000.00
                    11.03.2020 08:23

                    Нет, эти графики по одним и тем же данным. 

                    В примере одни данные, мой расчёт дал другие данные

                    • aBoomest
                      aBoomest+942.89
                      11.03.2020 10:16

                      Сомнительно конечно.

                      PS: ЦИАТА

                      . . . о чем эти графики и какая у вас задача . . . 

                      PSPS: добавьте

                      plot(y,Z)

                      и вероятно это половина 1го получится.

                    • URL2000
                      URL20000.00
                      11.03.2020 10:29

                      Задача: по формулам в метод. указания оценить надёжность здания для различных сроков эксплуатации, начиная с момента постройки до окончания нормативного срока службы с шагом 5 лет. По полученным данным построить графики зависимости надёжности от срока службы. Примеры графиков приведены ниже. Т. е. ниже приведены примеры графиков, которые мне нужно построить по данным расчёта в Excel

                      • aBoomest
                        aBoomest+942.89
                        11.03.2020 11:28

                        Похоже кардинально чего-то не понимаю. По ппорядку:
                        1. У вас есть расчет. Его результат в таблице экселя.
                        Все верно?
                        2. Если да, то графики что получаются похожи на ваши примеры?
                        С виду очень похожи.
                        3. Вопрос дальнейший в чем, не могу уловить?

                      • URL2000
                        URL20000.00
                        11.03.2020 11:32

                        1. Да, все верно

                        2. Я пока на работе, вечером буду пробовать.

                        Как я поняла, пока мне предложили решение только для 3 графика. Еще остаётся два

                        • URL2000
                          URL20000.00
                          12.03.2020 19:48

                          aBoomest, пожалуйста, скажите, что мне нужно подставлять в код, приведенный ниже, вместо "%Z - ваши данные"

                          %Z - ваши данные
                          y = 0:5:125;
                          x =1:24;
                          [X,Y] = meshgrid(x,y);
                          plot3(X,Y,Z);

                           

                          Развернуть график не получаетя... У меня нет 9-ой кнопки после руки (скрин я приложила)

                           

                          P.S. второй график я с горем построила, но линии получаются очень тонкие. Как их сделать такими же, как в примере со второй картинки?

                           

                          Спасибо всем откликнувшимся!

                           

                          • aBoomest
                            aBoomest+942.89
                            12.03.2020 20:07

                            Z - это массив значений из вашего экселя размером помнится 126 на 24. Судя по приложеной вами картинке, вы вроде все правильно сделали.

                            FP. Что значит нет? Вы красным обвели на панели 8-ю кнопочку по счету. Следующая со стрелочкой круглой направленной против часовой стрелки вокрух кубика - это кнопка номер 9. (чуть не сказал 9 и 3/4). Жмете кнопку. Курсор мыши у вас тоже становится в виде круглой стрелки. А затем мышкой "хватаете" и поворачиваете так как вам надо.

                            Thikness = ваша толщина;
                            plot(x,y,'LineWidth',Thikness);

                            Вот тут вполне подробно все.

                            PS: Вопрос позвольте, с вашего разрешения? Вы что именно в matlab делаете? Расчеты? Модели? Или только рисование графиков, а все остальное ещё где-то (на бумаге)? 

                            • aBoomest
                              aBoomest+942.89
                              12.03.2020 20:54

                              толькоконечно

                              plot3(x,y,z,'LineWidth',Thikness);

                               

                            • URL2000
                              URL20000.00
                              12.03.2020 21:23

                              Завтра буду опять пытаться строить эти два графика и ещё первый... Т. е. для Z мне нужно в исходном файле выделить все значения надёжности? Как это должно выглядеть? Z=и указать диапазон ячеек. Я понимаю, что вопросы кажутся наивным, но для меня это проблема. Расчёты я делаю в Excel, как по заданию, а графики нужно построить в Matlab, используя импорт таблиц из Excel. 

                              Когда я училась на бакалвриате у нас не было Matlab, но в магистратуре дали вот такое задание. 

                               

                              • aBoomest
                                aBoomest+942.89
                                13.03.2020 05:25

                                Расчёты я делаю в Excel, как по заданию, а графики нужно построить в Matlab, используя импорт таблиц из Excel. 

                                FP^2. Странно. Бывает же.

                                Т. е. для Z мне нужно в исходном файле выделить все значения надёжности?

                                Да

                                Способов можно придумать море, возможно преподаватель хочет что-то конкретного. Стоит почитать МУ по работе. А так с ходу . . .
                                1. Копирнуть таблицу прямо в скрипт. Добавить кв.скобки в начале и в конце и имя переменной . . . .

                                A = [зн.11 зн.12 . . . зн.1N;...
                                     зн.21 зн.22 . . . зн.2N;...
                                     зн.M1 зн.M2 . . . зн.MN...
                                    ];
                                зн.MN - значение из таблицы с порядковым номером M и N. 

                                2. Создать в workspace переменнную:
                                - пр.кнопкой в области WS - команда New.
                                - Задаете имя.
                                - Дв.нажатием открываете содержимое (пока пустое).
                                - CtrlC -> CtrV из экселя.

                                3. Использовать

                                Z = xlsread('имя файла','диапазон ячеек');

                                4. Думаю еще вариантов возможно . . . . .

                                • URL2000
                                  URL20000.00
                                  13.03.2020 18:03

                                  1. Что я неправильно пишу в коде? толщина линий не меняется

                                  2.  если просто рассматривать график без изменения толщин линий, то как изменить градацию шкалы (выделено красным на рисунке). Нужно, чтобы начиналась с 0 до 125 с шагом 20 лет

                                  3. Такая же проблема, как и в п.2, с графиком в виде поверхности. Его строю через GUI, как советовали в начале темы

                                  Пожалуйста, подскажите, как можно решить эти вопросы...

                                  • URL2000
                                    URL20000.00
                                    13.03.2020 18:03
                                    • URL2000
                                      URL20000.00
                                      13.03.2020 18:04
                                      • aBoomest
                                        aBoomest+942.89
                                        16.03.2020 05:30

                                        1. 30 ????? поставьте 2 или 3. Хотя просто ради интереса попробовал 30 - тоже нормально рисует, только линии на столько толстые, что совершенно ничего не понятно.

                                        2.1 С т.з. редактирования графика. Кнопка Show plot tools and dock figure (16-я кнопка на панели). Тыкаете (один раз) в поле графика. На вкладке (X Axis или какой вам нужно) справа на краю есть кнопка Ticks... Появится окно с таблицей.
                                        Столбец Locatons  - это значения меток где она находится (значение координаты).
                                        Столбец Labels - это то что написано. По идее обычно они одинаковые (так по умолчанию и будет) но вы во втором столбце можете написать все что угодно.
                                        2.2.1 С т.з. исходных данных. Если вам нужен другой шаг, так вы в своих переменных только оставьте то что вам нужно и все. Это все можно в матлаб сделать. (урезать массивы)
                                        2.2.2 А можно и в экселе таблицу иcходную . . .  переделайте так как вам надо.

                                        3. . . . . . .

                                        4. z и Z разные