Данный макрос производит поиск фигур (графических объектов) на всех листах текущей книги Excel,
и выводит следующую информацию по каждой найденной фигуре:
- Название фигуры (графического объекта)
- Координаты верхнего левого угла
- Координаты правого нижнего угла
- Размеры фигуры (ширина, высота)
- Тип фигуры (свойство Type типа MsoShapeType)
- Тип автофигуры (свойство AutoShapeType типа MsoAutoShapeType)
Вывод информации производится в окно Immediate
Sub ВыводСпискаАвтофигурСКоординатами() Dim sh As Worksheet, sha As Shape For Each sh In ThisWorkbook.Worksheets Debug.Print "=== Лист «" & sh.Name & "» - количество фигур: " & sh.Shapes.Count & " ===" For Each sha In sh.Shapes n = n + 1: Debug.Print " Фигура №" & n & " с названием «" & sha.Name & "»" Debug.Print " Координаты верхнего левого угла: X=" & sha.Left & "; Y=" & sha.Top Debug.Print " Координаты правого нижнего угла: X=" & sha.Left + sha.Width & "; Y=" & sha.Top + sha.Height Debug.Print " Размеры фигуры: ширина=" & sha.Width & "; высота=" & sha.Height Debug.Print " Тип фигуры: " & sha.Type & "; тип автофигуры: " & sha.AutoShapeType Next sha Debug.Print "=== Конец просмотра листа «" & sh.Name & "» ===" & vbNewLine Next sh End Sub
В прикреплённом файле нажмите кнопку «Запуск» для запуска макроса
Результат работы макроса:
=== Лист «Лист1» - количество фигур: 4 === Фигура №1 с названием «КнопкаЗапуска» Координаты верхнего левого угла: X=48; Y=25,5 Координаты правого нижнего угла: X=144; Y=51 Размеры фигуры: ширина=96; высота=25,5 Тип фигуры: 1; тип автофигуры: 5 Фигура №2 с названием «AutoShape 2» Координаты верхнего левого угла: X=105; Y=121,5 Координаты правого нижнего угла: X=216; Y=213,75 Размеры фигуры: ширина=111; высота=92,25 Тип фигуры: 1; тип автофигуры: 89 Фигура №3 с названием «Солнце» Координаты верхнего левого угла: X=255; Y=49,5 Координаты правого нижнего угла: X=315,75; Y=107,25 Размеры фигуры: ширина=60,75; высота=57,75 Тип фигуры: 1; тип автофигуры: 23 Фигура №4 с названием «Oval 4» Координаты верхнего левого угла: X=341,25; Y=154,5 Координаты правого нижнего угла: X=459; Y=197,25 Размеры фигуры: ширина=117,75; высота=42,75 Тип фигуры: 1; тип автофигуры: 9 === Конец просмотра листа «Лист1» === === Лист «Лист2» - количество фигур: 2 === Фигура №5 с названием «WordArt 1» Координаты верхнего левого угла: X=78,75; Y=27,75 Координаты правого нижнего угла: X=170,25; Y=120,75 Размеры фигуры: ширина=91,5; высота=93 Тип фигуры: 15; тип автофигуры: -2 Фигура №6 с названием «Стрелка» Координаты верхнего левого угла: X=202,5; Y=81 Координаты правого нижнего угла: X=277,5; Y=188,25 Размеры фигуры: ширина=75; высота=107,25 Тип фигуры: 9; тип автофигуры: -2 === Конец просмотра листа «Лист2» ===
Скриншот результата: http://ExcelVBA.ru/pictures/20110925-5vf-80kb.jpg
А следующий код назначает всем автофигурам макрос с названием МакросДляФигуры:
Sub НазначениеОдногоМакросаВсемФигурам() Dim Sh As Worksheet, sha As Shape For Each Sh In ActiveWorkbook.Worksheets ' перебираем все листы в активной книге For Each sha In Sh.Shapes ' перебираем все фигуры на очередном листе ' назначаем макрос только тем фигурам, которым ещё не назначены макросы If sha.OnAction = "" Then sha.OnAction = "МакросДляФигуры" Next sha Next Sh End Sub
Назначенный макрос выводиn во вторую строку активного листа Excel информацию о выделенной фигуре: координаты, размеры, и название фигуры:
(см. пример в прикреплённом файле — пощелкайте на фигурах, кроме зеленой кнопки)
Sub МакросДляФигуры() On Error Resume Next ' получаем ссылку на фигуру, с которой был вызван этот макрос Dim sha As Shape: Set sha = ActiveSheet.Shapes(Application.Caller) ' заносим в диапазон ячеек a2:f2 координаты и размеры выделенной фигуры Range("a2:f2").Value = Array(sha.Left, sha.Top, _ sha.Left + sha.Width, sha.Top + sha.Height, _ sha.Width, sha.Height) sha.Select ' выделяем фигуру, которая запустила макрос End Sub
Работа с фигурами в VBA Excel: создание фигур методом Shapes.AddShape, типы фигур (MsoAutoShapeType), обращение к фигурам и изменение их свойств. Примеры.
Объекты для работы с фигурами
Фигуры в VBA Excel представлены тремя объектами:
Объект | Описание |
---|---|
Shapes | Коллекция всех фигур на рабочем листе. Используется для создания новых фигур, для обращения к одной фигуре по имени и для перебора фигур циклом. |
ShapeRange | Коллекция нескольких фигур, аргументом которой является массив имен выбранных объектов. Используется для редактирования сразу всех фигур, входящих в эту коллекцию. |
Shape | Объект, представляющий одну фигуру. Используется для редактирования одной этой фигуры. |
Фигуры в VBA Excel создаются методом Shapes.AddShape.
Синтаксис метода AddShape
Shapes.AddShape (Type, Left, Top, Width, Height) |
Shapes — выражение, возвращающее коллекцию фигур на рабочем листе, например: ActiveSheet.Shapes.
Параметры метода AddShape
Параметр | Описание |
---|---|
Type | Константа из коллекции MsoAutoShapeType, определяющая тип создаваемой фигуры. |
Left | Расстояние от левой границы фигуры до левой границы табличной части рабочего листа в пунктах.. Тип данных — Single. |
Top | Расстояние от верхней границы фигуры до верхней границы табличной части рабочего листа в пунктах.. Тип данных — Single. |
Width | Ширина фигуры по внешним границам в пунктах. |
Height | Высота фигуры по внешним границам в пунктах. |
Все параметры метода Shapes.AddShape являются обязательными.
Константы MsoAutoShapeType
Константы коллекции MsoAutoShapeType, определяющие основные типы создаваемых фигур:
Константа | Значение | Тип фигуры |
---|---|---|
msoShapeRectangle | 1 | Прямоугольник |
msoShapeParallelogram | 2 | Параллелограмм |
msoShapeTrapezoid | 3 | Трапеция |
msoShapeDiamond | 4 | Ромб |
msoShapeRoundedRectangle | 5 | Прямоугольник: скругленные углы |
msoShapeOctagon | 6 | Восьмиугольник (октаэдр) |
msoShapeIsoscelesTriangle | 7 | Равнобедренный треугольник |
msoShapeRightTriangle | 8 | Прямоугольный треугольник |
msoShapeOval | 9 | Овал |
msoShapeHexagon | 10 | Шестиугольник (гексаэдр) |
msoShapeCross | 11 | Крест |
msoShapeRegularPentagon | 12 | Пятиугольник (пентаэдр) |
msoShapeCan | 13 | Цилиндр |
msoShapeCube | 14 | Куб |
msoShapeDonut | 18 | Круг: прозрачная заливка (кольцо) |
msoShapeLightningBolt | 22 | Молния |
msoShapeSun | 23 | Солнце |
msoShapeMoon | 24 | Месяц (луна) |
msoShape5pointStar | 92 | Звезда: 5 точек (пятиконечная) |
msoShapeCloud | 179 | Облако |
Все доступные константы из коллекции MsoAutoShapeType смотрите на сайте разработчиков.
Создание объекта ShapeRange
Создание коллекции ShapeRange из выбранных фигур:
Dim myShapeRange As ShapeRange Set myShapeRange = ActiveSheet.Shapes.Range(Array(«Пятиугольник 140», «Солнце 141», «Облако 144»)) |
Объектная переменная myShapeRange не обязательна, можно обратиться непосредственно к возвращенной коллекции, например, присвоив всем ее элементам синий цвет:
ActiveSheet.Shapes.Range(Array(«Пятиугольник 140», «Солнце 141», «Облако 144»)).Fill.ForeColor.RGB = vbBlue |
Примеры работы с фигурами
Пример 1
Создание пяти разных фигур из кода VBA Excel методом Shapes.AddShape:
Sub Primer1() With ActiveSheet.Shapes ‘При создании фигуры без присвоения ее переменной скобки не нужны .AddShape msoShapeCube, 30, 40, 72, 72 .AddShape msoShapeIsoscelesTriangle, 130, 40, 72, 72 .AddShape msoShapeSun, 230, 40, 72, 72 .AddShape msoShapeLightningBolt, 330, 40, 72, 72 ‘Чтобы выбрать фигуру, параметры необходимо заключить в скобки .AddShape(msoShapeCloud, 430, 40, 72, 72).Select End With End Sub |
Результат работы кода:
Пример 2
Работа с одной фигурой:
Sub Primer2() Dim myShape As Shape ‘Создаем фигуру «Месяц» и присваивает ссылку на нее переменной myShape Set myShape = ActiveSheet.Shapes.AddShape(msoShapeMoon, 50, 50, 80, 80) With myShape ‘Меняем высоту и ширину фигуры .Height = 150 .Width = 100 ‘Меняем цвет фигуры .Fill.ForeColor.RGB = vbYellow ‘Поворачиваем фигуру влево на 40 градусов .Rotation = —40 End With End Sub |
Пример 3
Редактирование одновременно нескольких фигур с помощью коллекции ShapeRange:
Sub Primer3() With ActiveSheet.Shapes.Range(Array(«Овал 1», «Овал 2», «Овал 3»)) ‘Меняем цвет всех фигур из коллекции ShapeRange .Fill.ForeColor.RGB = vbBlue ‘Задаем высоту и ширину овалов .Height = 150 .Width = 50 ‘Поворачиваем фигуры вправо на 45 градусов .Rotation = 45 End With End Sub |
Пример 4
Редактирование одновременно всех фигур на рабочем листе с помощью коллекции ShapeRange:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub Primer4() Dim myShapeRange As ShapeRange, i As Integer, _ myShape As Shape, myArray() As String ‘Задаем массиву размерность от 1 до количества фигур на листе ReDim myArray(1 To ActiveSheet.Shapes.Count) ‘Проходим циклом по всем фигурам коллекции и записываем их имена в массив For Each myShape In ActiveSheet.Shapes i = i + 1 myArray(i) = myShape.Name Next ‘Создаем коллекцию ShapeRange и присваиваем ссылку на нее переменной myShapeRange Set myShapeRange = ActiveSheet.Shapes.Range(myArray) With myShapeRange ‘Изменяем цвет всех фигур на рабочем листе .Fill.ForeColor.RGB = RGB(100, 150, 200) ‘Поворачиваем все фигуры вокруг вертикальной оси .Flip msoFlipVertical End With End Sub |
Пример 5
Добавление надписи (текста) на фигуру:
Sub Primer5() Dim myShape As Shape Set myShape = ActiveSheet.Shapes.AddShape(msoShapeCloud, 50, 30, 300, 300) With myShape.TextFrame2 ‘Добавление текста на фигуру .TextRange.Characters.Text = «Объект TextFrame представляет текстовую рамку в объекте Shape. Содержит текст в текстовом кадре, а также свойства и методы, которые контролируют выравнивание и закрепление текстового кадра.» ‘Задаем курсивное начертание .TextRange.Characters.Font.Italic = True ‘Указываем размер шрифта .TextRange.Characters.Font.Size = 13 ‘Отступ левой границы текстового поля от левой внутренней границы фигуры .MarginLeft = 30 ‘Отступ верхней границы текстового поля от верхней внутренней границы фигуры .MarginTop = 20 End With End Sub |
Результат работы кода:
Изменить цвет текста, например на черный, можно двумя способами:
‘С помощью константы MsoThemeColorIndex myShape.TextFrame2.TextRange.Characters.Font.Fill.ForeColor.ObjectThemeColor = msoThemeColorDark1 ‘С помощью цветовой модели RGB myShape.TextFrame2.TextRange.Characters.Font.Fill.ForeColor.RGB = RGB(0, 0, 0) |
С константами из коллекции MsoThemeColorIndex вы можете ознакомиться на сайте разработчиков.
Пример 6
Удаление фигур с рабочего листа из кода VBA Excel с помощью метода Delete.
Удаление одной фигуры:
ActiveSheet.Shapes(«Ромб 5»).Delete |
Удаление нескольких фигур:
ActiveSheet.Shapes.Range(Array(«Овал 1», «Овал 2», «Овал 3»)).Delete |
Удаление всех фигур с рабочего листа с помощью цикла:
Sub Primer6() Dim myShape As Shape For Each myShape In ActiveSheet.Shapes myShape.Delete Next End Sub |
В 7 примере рассмотрено удаление всех фигур без цикла.
Пример 7
Выделение всех фигур на рабочем листе:
ActiveSheet.Shapes.SelectAll |
Выбор всех фигур и удаление выбранного (всех фигур):
Sub Primer7() ActiveSheet.Shapes.SelectAll Selection.Delete End Sub |
Продолжение темы в статье VBA Excel. Копирование, перемещение и поворот фигур.
art013 Пользователь Сообщений: 166 |
Всем доброго дня обращался к вам с просьбой помочь макросом назначать координаты из ячеек на фигуры, отдельное спасибо Все_просто за помощь! |
Юрий М Модератор Сообщений: 60585 Контакты см. в профиле |
#2 22.12.2014 11:27:23
Вы просто хотите узнать — да или нет? )) |
||
art013 Пользователь Сообщений: 166 |
Юрий М, |
Sanja Пользователь Сообщений: 14838 |
#4 22.12.2014 12:43:22
если координаты вводятся вручную можно так
Согласие есть продукт при полном непротивлении сторон. |
||||
art013 Пользователь Сообщений: 166 |
Sanja, а можно в исполнении для кнопки, и можно жестко к диапазону привязаться, значения берутся с другого листа и рассчитываются по формуле, только в одно место |
art013 Пользователь Сообщений: 166 |
Sanja, необходимо чтобы макрос каждый раз все перерисовывал исходя из новых данных |
Sanja Пользователь Сообщений: 14838 |
#7 22.12.2014 13:15:26
конечно можно. Попробуйте сами. тем более начало положено… Согласие есть продукт при полном непротивлении сторон. |
||
art013 Пользователь Сообщений: 166 |
Sanja, чтобы, например, я мог скопировать новые координаты в эту таблицу, запустить макрос и он бы построил фигуры по ним… Мне кажется это не просто в исполнении.. буду очень признателен! |
Sanja Пользователь Сообщений: 14838 |
Так? Прикрепленные файлы
Согласие есть продукт при полном непротивлении сторон. |
art013 Пользователь Сообщений: 166 |
#10 22.12.2014 13:45:34 Sanja, так! Замечательно! Не думал что все так просто! =)) |
Как определить координаты крайних фигур на листе |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Определение координат центров, помеченных автофигур
17.08.2017, 22:33. Показов 1371. Ответов 2
Добрый вечер, специалисты по экселю.
Помогите решить вопрос.
На листе располагается несколько фигур-овалов, чьи названия приведены в табличке рядом.
Напротив названий фигур — кое-где стоят значения «1».
Как макросом вывести в диапазон P6:Q13 — координаты, помеченных единицами, центрами автофигур ?
(Центр автофигуры-овала — это координаты фигуры — минус значения ширины-высоты этой фигуры, разделенные на два.)
0
Трансформация (преобразование) геометрической фигуры означает ее изменение по определенным правилам. Например, вращение, смещение или изменение масштаба некого прямоугольника на плоскости. Правила, по которым происходит изменение, будем записывать в матричном виде. Используем произведение матриц для применения к фигуре сразу нескольких преобразований. Также используем однородную систему координат (Homogenous Coordinates). Здесь рассмотрим трансформацию в двумерном пространстве с использованием MS EXCEL.
Пусть имеется исходная фигура (трапеция). Нам известны координаты ее вершин, геометрическая фигура построена с помощью
диаграммы типа Точечная
.
СОВЕТ
: О построении диаграмм см. статью
Основы построения диаграмм в MS EXCEL
.
Примечание
: В MS EXCEL есть объект
Фигура
(Вкладка Вставка, группа Иллюстрации, кнопка Фигуры). Так вот, рассматриваемые здесь геометрические фигуры не имеют никакого отношения к этим объектам.
Выделим произвольную вершину трапеции красным цветом и назовем ее опорной точкой. Ее координаты (1;1). Опорную точку будем иногда помещать в центр координат, чтобы упростить преобразования.
Смещение фигуры (Translation)
Для начала, сместим фигуру в заданную точку, задав координаты новой опорной точки: пусть это будет точка (-1;1).
Чтобы получить остальные координаты фигуры после смещения, вычислим координаты
вектора смещения
(translation vector or shift vector), вычтя из новых координат исходные координаты опорной точки (см.
файл примера
).
Теперь, прибавив к исходным координатам координаты
вектора смещения
получим новые координаты фигуры.
Вместо вектора смещения для нахождения новых координат фигуры можно использовать
матричный подход
. Правда, именно для
смещения
фигуры нам для этого придется ввести понятие
однородных координат
(Homogenous Coordinates).
Не вдаваясь в теорию, преобразование к однородным координатам сводится к добавлению для каждой точки фигуры еще одной вспомогательной координаты равной 1. Например, координаты опорной точки будут выглядеть в однородной системе координат как (1;1;1).
В нашем двумерном случае
матрица смещения
будет 3×3.
В серых ячейках содержатся новые координаты опорной точки, остальные элементы матрицы являются элементами единичной матрицы.
Перемножив
матрицу смещения
на координаты исходных точек (в виде столбца), получим новые координаты (в виде столбца). Далее
транспонируем столбец
в строку и получим новые координаты точек фигуры после смещения. Все это можно сделать с помощью
формулы массива
:
=ТРАНСП(МУМНОЖ($A$46:$C$48;ТРАНСП(B39:D39)))
Вращение фигуры (Rotation)
Сначала научимся вращать фигуру относительно центра координат. Угол поворота зададим в градусах, затем переведем в радианы. Повороту против часовой стрелки будет соответствовать положительный угол θ.
Для вычисления координат вершин фигуры после поворота мы будем использовать матрицу поворота 2х2 (rotation matrix).
Новые координаты получаются путем умножения матрицы на известные координаты. В EXCEL это можно реализовать с помощью формулы:
=ТРАНСП(МУМНОЖ($F$7:$G$8;ТРАНСП(B26:C26)))
Для ввода формулы выделите 2 ячейки в строке (куда нужно поместить новые координаты), установите курсор в
Строку формул
, введите формулу, затем нажмите
CTRL+SHIFT+ENTER.
Для ввода угла поворота можно настроить
элемент управления Счетчик
(см.
файл примера
, лист Вращение).
Если вращение нужно осуществить относительно произвольной точки, то нам снова потребуется однородная система координат (см.
файл примера
, лист Вращение (произв точка)).
В данном случае вращение можно представить как последовательность преобразований: смещение точки, вокруг которой будет производиться вращение в центр координат, собственно вращение, затем обратное смещение точки. Таким образом, мы имеем 3 матрицы.
Эти матрицы можно предварительно перемножить и использовать уже одну итоговую матрицу. В
файле примера
реализовано оба варианта.
Масштабирование фигуры (Scaling)
Еще одним типом преобразования является изменение масштаба. Поместим опорную точку фигуры в центр координат.
Матрица изменения масштаба представляет собой диагональную матрицу 2×2, все элементы которой равны. Если элементы больше 1, то фигура увеличивается, если меньше, то уменьшается.
Отражение (Reflection)
Фигуру можно отразить относительно осей координат или произвольной линии.
В
файле примера
настроена специальная форма на основе
элемента управления Переключатель
.
Сдвиг (Shear)
Наконец, последним преобразованием является Сдвиг. Например, при сдвиге по оси Y, точки фигуры смещаются по оси Y пропорционально значению координаты Х (линейное преобразование при котором параллельные прямые остаются параллельными).
Т.к. Х координаты левой стороны квадрата равны 0, то ее смещения не происходит, а сдвигается только правая.
Матрица сдвига выглядит так:
Серия преобразований
Преобразуем квадрат в ромб и повернем его.
Для этого нам потребуется сделать Сдвиг, а затем Вращение (последовательность имеет значение!). Если мы сначала повернем квадрат, а потом сдвинем его, то мы получим другую фигуру (произведение матриц в общем случае не
коммутативно
).
Нам потребуется 4 матрицы: 2 матрицы для смещения фигуры в центр координат и обратно; матрица для Сдвига и матрица для Вращения.
Результирующую матрицу можно получить с помощью одной
формулы массива
:
=МУМНОЖ(МУМНОЖ(МУМНОЖ(J7:L9;N7:P9);R7:T9);V7:X9)
Лепестковая диаграмма по внешнему виду напоминает паутину или звезду. Достаточно специфическое изображение, позволяющее отображать данные каждой категории вдоль отдельной оси. Каждая ось начинается в центре рисунка и заканчивается на внешнем круге.
Что показывает лепестковая диаграмма
Лепестковая диаграмма – разновидность круговой, которая отлично подходит для представления данных, сгруппированных по определенному признаку (по годам, месяцам, категории товаров и т.п.).
В каких ситуациях полезна именно лепестковая диаграмма:
- нужна максимальная наглядность;
- необходимо проиллюстрировать изменчивость показателей сразу по нескольким направлениям;
- важно показать на одном графике зависимость переменных величин от набора стабильных значений.
График паутинообразного типа напоминает по форме колесо. Каждый набор переменных отображается вдоль отдельной оси-спицы. Построение полярной кривой лепестковыми диаграммами выполняется очень просто. Вся графическая область этого типа диаграмм имеет полярную систему координат.
- На пустом листе создаем таблицу с данными. Или запускаем книгу, где хранится готовая информация для диаграммы лепесткового типа. Будьте внимательны: независимые переменные (причины) находятся в строках. Зависимые (воздействия) – в столбцах. Данные имеют одинаковый формат.
- Выделяем данные, которые нужно отобразить на диаграмме. Переходим на вкладку «Вставка» в группу «Диаграммы». Лепестковые находятся в «Других диаграммах». Для примера выберем подтип «заполненной».
- После нажатия ОК появится рисунок. Чтобы изменить цвет заливки, стиль, размер построенной диаграммы, используйте вкладки «Макет», «Формат», «Конструктор». В примере – объемная диаграмма лепесткового типа.
* При выделении ячеек с данными для включения в график названия тоже можно выделять. Excel распознает их и включает в подписи к секторам.
В примере получился такой рисунок, т.к. в таблице только один столбец с переменными значениями. Возьмем для построения диаграммы лепесткового типа данные из другого диапазона:
Добавились столбцы с переменными. Их нужно включить в диаграмму. Для этого щелкаем правой кнопкой мыши по области построения и нажимаем «Выбрать данные». В открывшемся диалоговом окне добавляем элементы легенды.
Получаем такой рисунок:
* Чтобы не перегружать рисунок, количество столбцов с данными не должно быть больше семи.
Построение графика в полярной системе координат с помощью Excel
В разных областях науки и техники существуют декартовые координаты и полярная система координат. Примеры знаменитых кривых в полярных координатах – уравнение кардиоиды, архимедова спираль, уравнение розы и др.
Инструмент «Лепестковая диаграмма» позволяет легко и быстро строить графики в полярной системе координат:
- для каждой категории предусмотрена отдельная ось, а все оси выходят из одной точки – центра;
- значение ряда данных – расстояние от центра до маркера – величина радиуса;
- категория – угловая координата точки – наклон радиуса.
Известны следующие значения точек:
π /8 | π /6 | π /4 | π /3 | 3π/8 | 5π/12 | π/2 | 7 π/12 |
5 π/8 | 4 π/6 | 3 π/4 | 5 π/6 | 7 π*8 | 11 π/12 | π |
Уравнение функции:
r = 3 * sin (6 * φ)/
Заполним таблицу данных в Excel. Программа понимает число π и автоматически рассчитывает синусы.
Формулы для заполнения первого столбца берем из таблицы значений точек:
В соседнем столбце запишем формулу, по которой Excel будет считать значение функции r:
Выделим найденные значения функции. Перейдем на вкладку «Вставка». Подтип лепестковой диаграммы – «Лепестковая с маркерами». Получим в результате вот такой график в системе полярных координат:
На одной графической области в полярных координатах с помощью диаграммы лепесткового типа можно построить два и более графика.
Построение графиков функции в Excel – тема не сложная и Эксель с ней может справиться без проблем. Главное правильно задать параметры и выбрать подходящую диаграмму. В данном примере будем строить точечную диаграмму в Excel.
Учитывая, что функция – зависимость одного параметра от другого, зададим значения для оси абсцисс с шагом 0,5. Строить график будем на отрезке . Называем столбец «х», пишем первое значение «-3», второе – «-2,5». Выделяем их и тянем вниз за черный крестик в правом нижнем углу ячейки.
Будем строить график функции вида y=х^3+2х^2+2. В ячейке В1 пишем «у», для удобства можно вписать всю формулу. Выделяем ячейку В2, ставим «=» и в «Строке формул» пишем формулу: вместо «х» ставим ссылку на нужную ячейку, чтобы возвести число в степень, нажмите «Shift+6». Когда закончите, нажмите «Enter» и растяните формулу вниз.
У нас получилась таблица, в одном столбце которой записаны значения аргумента – «х», в другом – рассчитаны значения для заданной функции.
Перейдем к построению графика функции в Excel. Выделяем значения для «х» и для «у», переходим на вкладку «Вставка» и в группе «Диаграммы» нажимаем на кнопочку «Точечная». Выберите одну из предложенных видов.
График функции выглядит следующим образом.
Теперь покажем, что по оси «х» установлен шаг 0,5. Выделите ее и кликните по ней правой кнопкой мши. Из контекстного меню выберите пункт «Формат оси».
Откроется соответствующее диалоговое окно. На вкладке «Параметры оси» в поле «цена основных делений», поставьте маркер в пункте «фиксированное» и впишите значение «0,5».
Чтобы добавить название диаграммы и название для осей, отключить легенду, добавить сетку, залить ее или выбрать контур, поклацайте по вкладкам «Конструктор», «Макет», «Формат».
Построить график функции в Эксель можно и с помощью «Графика». О том, как построить график в Эксель, Вы можете прочесть, перейдя по ссылке.
Давайте добавим еще один график на данную диаграмму. На этот раз функция будет иметь вид: у1=2*х+5. Называем столбец и рассчитываем формулу для различных значений «х».
Выделяем диаграмму, кликаем по ней правой кнопкой мыши и выбираем из контекстного меню «Выбрать данные».
В поле «Элементы легенды» кликаем на кнопочку «Добавить».
Появится окно «Изменение ряда». Поставьте курсор в поле «Имя ряда» и выделите ячейку С1. Для полей «Значения Х» и «Значения У» выделяем данные из соответствующих столбцов. Нажмите «ОК».
Чтобы для первого графика в Легенде не было написано «Ряд 1», выделите его и нажмите на кнопку «Изменить».
Ставим курсор в поле «Имя ряда» и выделяем мышкой нужную ячейку. Нажмите «ОК».
Ввести данные можно и с клавиатуры, но в этом случае, если Вы измените данные в ячейке В1, подпись на диаграмме не поменяется.
В результате получилась следующая диаграмма, на которой построены два графика: для «у» и «у1».
Думаю теперь, Вы сможете построить график функции в Excel, и при необходимости добавлять на диаграмму нужные графики.
Поделитесь статьёй с друзьями:
Добрый день. А есть возможность в Excele создать график с тремя переменными, но на одном графике? 2 параметра как обычно, координаты х и у, а третий параметр чтоб отражался размером метки? Вот как пример, такой график —
Рубрика Excel
Также статьи о графиках в Экселе:
- Как сделать диаграмму в Эксель?
- Как сделать круговую диаграмму в Экселе?
- Как построить график в Экселе?
- Построение точечной диаграммы в Excel
В Экселе можно результаты расчетов отобразить в виде диаграммы или графика, придавая им большую наглядность, а для сравнения иногда нужно построить два графика рядом. Как построить два графика в Excel на одном поле мы далее и рассмотрим.
Начнем с того, что не каждый тип диаграмм в Экселе сможет отобразить именно тот результат, который мы ожидаем. К примеру, имеются результаты расчетов для нескольких функций на основе одинаковых исходных данных. Если по этим данным строить обычную гистограмму или график, то исходные данные не будут учитываться при построении, а лишь их количество, между которыми будут задаваться одинаковые интервалы.
Выделяем два столбца результатов расчетов и строим обычную гистограмму.
Теперь попробуем добавить еще одну гистограмму к имеющимся с таким же количеством результатов расчетов. Для добавления графика в Экселе делаем активным имеющийся график, выделив его, и на появившейся вкладке «Конструктор» выбираем «Выбрать данные». В появившемся окошке в разделе «Элементы легенды» нажимаем добавить, и указываем ячейки «Имя ряда:» и «Значения:» на листе, в качестве которых будут значения расчета функции «j».
Теперь посмотрим, как будет выглядеть наша диаграмма, если мы к имеющимся гистограммам добавим еще одну, у которой количество значений почти в два раза больше. Добавим к графику значения функции «k».
Как видно, последних добавленных значений гораздо больше, и они настолько малы, что их на гистограмме практически не видно.
Если изменить тип диаграммы с гистограммы на обычный график, результат получится в нашем случае более наглядным.
Если использовать для построения графиков в Экселе точечную диаграмму, то на полученных графиках будет учитываться не только результат расчетов, но и исходные данные, т.е. будет прослеживаться четкая зависимость между величинами.
Для создания точеного графика выделим столбец начальных значений, и пару столбцов результатов для двух разных функций. На вкладке «Вставка» выбираем точечную диаграмму с гладкими кривыми.
Для добавления еще одного графика выделяем имеющиеся, и на вкладке «Конструктор» нажимаем «Выбрать данные».
В новом окошке в графе «Элементы легенды» нажимаем «Добавить», и указываем ячейки для «Имя ряда:», «Значения X:» и «Значения Y:». Добавим таким образом функцию «j» на график.
Теперь добавим функцию «k», у которой совершенно другие исходные данные и их количество.
Как видно, на точечном графике функция «k» практически незаметна, но зато построена с учетом значений по обеим осям.
Построение графиков функций в Excel
Февраль 9th, 2014
Andrey K
Построение графиков функций — одна из возможностей Excel. В этой статье мы рассмотрим процесс построение графиков некоторых математических функций: линейной, квадратичной и обратной пропорциональности.
Функция, это множество точек (x, y), удовлетворяющее выражению y=f(x). Поэтому, нам необходимо заполнить массив таких точек, а Excel построит нам на их основе график функции.
1) Рассмотрим пример построения графика линейной функции: y=5x-2
Графиком линейной функции является прямая, которую можно построить по двум точкам. Создадим табличку
В нашем случае y=5x-2. В ячейку с первым значением y введем формулу: =5*D4-2. В другую ячейку формулу можно ввести аналогично (изменив D4 на D5) или использовать маркер автозаполнения.
В итоге мы получим табличку:
Теперь можно приступать к созданию графика.
Выбираем: ВСТАВКА — > ТОЧЕЧНАЯ -> ТОЧЕЧНАЯ С ГЛАДКИМИ КРИВЫМИ И МАРКЕРАМИ (рекомендую использовать именно этот тип диаграммы)
Появиться пустая область диаграмм. Нажимаем кнопку ВЫБРАТЬ ДАННЫЕ
Выберем данные: диапазон ячеек оси абсцисс (х) и оси ординат (у). В качестве имени ряда можем ввести саму функцию в кавычках «y=5x-2» или что-то другое. Вот что получилось:
Нажимаем ОК. Перед нами график линейной функции.
2) Рассмотрим процесс построения графика квадратичной функции — параболы y=2×2-2
Параболу по двум точкам уже не построить, в отличии от прямой.
Зададим интервал на оси x, на котором будет строиться наша парабола. Выберу .
Задам шаг. Чем меньше шаг, тем точнее будет построенный график. Выберу .
Заполняю столбец со значениями х, используя маркер автозаполнения до значения х=5.
Столбец значений у рассчитывается по формуле: =2*B4^2-2. Используя маркер автозаполнения, рассчитываем значения у для остальных х.
Выбираем: ВСТАВКА — > ТОЧЕЧНАЯ -> ТОЧЕЧНАЯ С ГЛАДКИМИ КРИВЫМИ И МАРКЕРАМИ и действуем аналогично построению графика линейной функции.
Получим:
Чтобы не было точек на графике, поменяйте тип диаграммы на ТОЧЕЧНАЯ С ГЛАДКИМИ КРИВЫМИ.
Любые другие графики непрерывных функций строятся аналогично.
3) Если функция кусочная, то необходимо каждый «кусочек» графика объединить в одной области диаграмм.
Рассмотрим это на примере функции у=1/х.
Функция определена на интервалах (- беск;0) и (0; +беск)
Создадим график функции на интервалах: .
Подготовим две таблички, где х изменяется с шагом :
Находим значения функции от каждого аргумента х аналогично примерам выше.
На диаграмму вы должны добавить два ряда — для первой и второй таблички соответственно
Далее нажимаем кнопочку ДОБАВИТЬ и заполняем табличку ИЗМЕНЕНИЕ РЯДА значениями из второй таблички
Получаем график функции y=1/x
В дополнение привожу видео — где показан порядок действий, описанный выше.
В следующей статье расскажу как создать 3-мерные графики в Excel.
Спасибо за внимание!
Вы можете
оставить комментарий
, или
ссылку
на Ваш сайт.
Душевые термостаты, лучшие модели на
http://tools-ricambi.ru/
изготавливаются из материалов высшего качества
Минчев А.А. 1, Богачева М.Н. 1
1Донской Государственный Технический Университет
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке «Файлы работы» в формате PDF
Программное создание графических фигур на листе Excel является наглядным примером объектно-ориентированного программирования в VBA. С помощью объектной модели графики можно программно задать любую автофигуру из предложенных панелью инструментов «Рисование», раскрасить, сдвинуть, изменить цвет, толщину линий, отобразить тень и т.п. Преимуществом программного черчения по сравнению с ручным является возможность точного позиционирования фигур на листе, что позволяет быстро создавать различные мозаики, фрактальные объекты, не прибегая к утомительной подгонке размеров фигур. Объектную модель графики в VBA составляют специальные семейства, свойства и методы графических объектов рабочего листа. Рассмотрим основные из них.
Семейство всех графических объектов активного листа представляет Shapes. Это семейство используется обычно для создания нового объекта с помощью метода AddShape. Тип конкретной фигуры (овал, прямоугольник, линия и т.п.) указывается в качестве параметра этого метода. Другие параметры метода задают размер и местоположение (координаты) фигуры на листе. Эти параметры рассчитываются так: предполагается, что фигура вписана в (невидимый) прямоугольник. Для его однозначного определения достаточно указать координаты его левого верхнего угла, ширину и высоту. Координаты задают горизонтальный отступ (x-координата) и вертикальный отступ (y-координата) от верхнего левого угла листа, выраженные в точках. В дальнейшем будем называть эти координаты координатами начала фигуры.
Синтаксис обращения:
ActiveSheet.Shapes.AddShape(тип, x-координата, y-координата, ширина, высота)
Аргумент тип – константа VBA, обозначающая тип графического объекта, например, msoShapeOval – овал, msoShapeRectangle – прямоугольник. Допустимо 139 констант, некоторые приведены в табл.1.
Таблица 1
Константы типов некоторых автофигур
Константа |
Изображаемая автофигура |
msoShapeRectangle |
|
msoShapeOval |
|
msoShapeIsoscelesTriangle |
|
msoShapeRightTriangle |
|
msoShapeSun |
|
msoShapeTrapezoid |
|
msoShapeWave |
|
msoShapeDiamond |
|
msoShapeHexagon |
|
msoShapeCube |
|
msoShapeParallelogram |
|
msoShapeRightArrow |
Продолжение таблицы1 |
|
Константа |
Изображаемая автофигура |
msoShapeLeftRightArrow |
|
msoShapeRoundedRectangle |
|
msoShapeCan |
|
msoShape5pointStar |
Например, овал с диаметрами 20 точек по вертикали и 40 по горизонтали, расположенный в левом верхнем углу листа, можно начертить такой командой:
ActiveSheet.Shapes.AddShape(msoShapeOval,0,0,40,20).Select
Здесь аргументы 0, 0 задают координаты начала фигуры (они в данном случае совпадают с началом листа – его верхним левым углом), число 40 – ширина описывающего прямоугольника (равна большей диагонали нашего овала), число 20 – высота прямоугольника (равна меньшей диагонали овала). Метод Select необходим, чтобы фигура проявилась на листе.
Чтобы начертить окружность, достаточно задать в качестве ширины и высоты диаметр окружности. Например, окружность диаметром 60 точек, расположенную в начале листа, можно задать такой программой:
ActiveSheet.Shapes.AddShape(msoShapeOval,0, 0, 60, 60).Select
Эта же окружность, смещенная на 30 точек относительно начала листа:
ActiveSheet.Shapes.AddShape(msoShapeOval,30,30,60,60).Select
Полный список констант можно найти в справочникеVBA: нажать кнопку вызова справки в окне редактора Visual Basic и ввести в поле вопроса имя раздела: AddShape Method. Проверять типы фигур можно с помощью одной и той же программы создания объекта, заменяя только константу в методе AddShape.
Диаграммы Excel – точечная диаграмма (XY)
Точечные (XY) диаграммы обычно используются для отображения и сравнения числовых значений, таких как научные, статистические и технические данные.
Он объединяет значения x и y в отдельные точки данных и отображает их с нерегулярными интервалами или кластерами.
Рассмотрите возможность использования точечной диаграммы, когда –
Значения для горизонтальной оси распределены неравномерно.
Вы хотите настроить шкалы независимых осей точечной диаграммы, чтобы получить больше информации о данных, которые включают пары или сгруппированные наборы значений.
Вы хотите показать сходство между большими наборами данных вместо различий между точками данных.
Вы хотите сравнить множество точек данных независимо от времени.
Чем больше данных вы включите в точечную диаграмму, тем лучше будет сравнение.
Значения для горизонтальной оси распределены неравномерно.
Вы хотите настроить шкалы независимых осей точечной диаграммы, чтобы получить больше информации о данных, которые включают пары или сгруппированные наборы значений.
Вы хотите показать сходство между большими наборами данных вместо различий между точками данных.
Вы хотите сравнить множество точек данных независимо от времени.
Чем больше данных вы включите в точечную диаграмму, тем лучше будет сравнение.
Следуйте приведенным ниже инструкциям, чтобы вставить точечную диаграмму в свой рабочий лист.
Шаг 1 – Расположите данные в столбцах или строках на листе.
Шаг 2. Поместите значения x в одну строку или столбец, а затем введите соответствующие значения y в соседние строки или столбцы.
Шаг 4 – На вкладке ВСТАВИТЬ в группе Диаграммы щелкните значок точечной диаграммы на ленте.
Вы увидите различные типы доступных точечных диаграмм.
Шаг 5 – Наведите указатель мыши на каждый из значков. Предварительный просмотр этого типа диаграммы будет показан на листе.
Шаг 6 – Дважды щелкните тип диаграммы, который соответствует вашим данным.
В этой главе вы поймете, когда каждая из диаграмм разброса полезна.
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
По условию уравнение не нужно приводить к каноническому виду , а значит, требуемые вещи проще найти напрямую с учётом параллельного переноса гиперболы , к тому же, она не повёрнута. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Можно также скопировать диаграмму из Excel в Office Word 2007. При копировании диаграммы она может быть внедрена как статический объект или связана с книгой. Для связанной диаграммы, к которой пользователь имеет доступ, можно задать автоматическую проверку изменений в связанной книге при каждом открытии диаграммы.
Как построить линию в полярной системе координат?
И скажите, зачем столько трудностей, когда нужен всего-то рисунок этого графика для иллюстрации функции. Следовательно, проще взять и нарисовать этот график средствами векторного редактора, встроенного в Word.
Вставка и построение
Для примера используем таблицу выручки и затрат за год, на основании которой построим простой график:
янв.13 | фев.13 | мар.13 | апр.13 | май.13 | июн.13 | июл.13 | авг.13 | сен.13 | окт.13 | ноя.13 | дек.13 | |
Выручка | 150 598р. | 140 232р. | 158 983р. | 170 339р. | 190 168р. | 210 203р. | 208 902р. | 219 266р. | 225 474р. | 230 926р. | 245 388р. | 260 350р. |
Затраты | 45 179р. | 46 276р. | 54 054р. | 59 618р. | 68 460р. | 77 775р. | 79 382р. | 85 513р. | 89 062р. | 92 370р. | 110 424р. | 130 175р. |
Вне зависимости от используемого типа, будь это гистограмма, поверхность и т.п., принцип создания в основе не меняется. На вкладке «Вставка» в приложении Excel необходимо выбрать раздел «Диаграммы» и кликнуть по требуемой пиктограмме.
Выделите созданную пустую область, чтобы появились дополнительные вкладки лент. Одна из них называется «Конструктор» и содержит область «Данные», на которой расположен пункт «Выбрать данные». Клик по нему вызовет окно выбора источника:
Обратите внимание на самое первое поле «Диапазон данных для диаграммы:». С его помощью можно быстро создать график, но приложение не всегда может понять, как именно хочет видеть это пользователь. Поэтому рассмотрим простой способ добавления рядов и осей.
На упомянутом выше окне нажмите кнопку «Добавить» в поле «Элементы легенды». Появится форма «Изменение ряда», где нужно задать ссылку на имя ряда (не является обязательным) и значения. Можно указать все показатели вручную.
После занесения требуемой информации и нажатия кнопки «OK», новый ряд отобразиться на диаграмме. Таким же образом добавим еще один элемент легенды из нашей таблицы.
Теперь заменим автоматически добавленные подписи по горизонтальной оси. В окне выбора данных имеется область категорий, а в ней кнопка «Изменить». Кликните по ней и в форме добавьте ссылку на диапазон этих подписей:
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
Используйте Scatter с прямыми линиями и маркерами и Scatter с прямыми линиями, когда данные представляют отдельные измерения. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Для изменения внешнего вида диаграммы можно воспользоваться предоставленными по умолчанию стилями. Для этого выделите ее и выберите появившуюся вкладку «Конструктор», на которой расположена область «Стили диаграмм».
Диаграммы Excel — точечная диаграмма (XY).
- Ряды данных – представляют главную ценность, т.к. визуализируют данные;
- Легенда – содержит названия рядов и пример их оформления;
- Оси – шкала с определенной ценой промежуточных делений;
- Область построения – является фоном для рядов данных;
- Линии сетки.
Иногда, из-за сильных различий значений рядов диаграммы, использование единой шкалы невозможно. Но можно добавить альтернативную шкалу. Перейдите в меню «Формат ряда данных…» и в разделе «Параметры ряда» переместите флажок на пункт «По вспомогательной оси».
янв.13 | фев.13 | мар.13 | апр.13 | май.13 | июн.13 | июл.13 | авг.13 | сен.13 | окт.13 | ноя.13 | дек.13 | |
Выручка | 150 598р. | 140 232р. | 158 983р. | 170 339р. | 190 168р. | 210 203р. | 208 902р. | 219 266р. | 225 474р. | 230 926р. | 245 388р. | 260 350р. |
Затраты | 45 179р. | 46 276р. | 54 054р. | 59 618р. | 68 460р. | 77 775р. | 79 382р. | 85 513р. | 89 062р. | 92 370р. | 110 424р. | 130 175р. |
Меняем тип графического объекта
Если после построения диаграммы Вы решили, что она недостаточно наглядна, можно изменить тип объекта всего в пару кликов. Рассмотрим этот процесс на примере построенной выше гистограммы движения финансовых средств. Предположим, что она должна стать графиком.
-
В меню «Конструктор» вкладки «Работа с диаграммами» выберите пункт «Изменить тип диаграммы».
Учтите, что не удастся заменить сложную диаграмму на более простую без потери части данных. Так, одной круговой диаграммы не хватит для отражения информации из гистограммы с двумя рядами.
Видео — Как построить график и диаграмму в Excel?
Автор блога, занимаюсь программированием, делаю обзоры бытовой техники веду свой Youtube канал. Консультирую по вопросам IT
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
Кликнув по требуемому ряду правой кнопкой мыши, из списка выберите пункт Изменить тип диаграммы для ряда , затем Гистограмма. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Иногда, из-за сильных различий значений рядов диаграммы, использование единой шкалы невозможно. Но можно добавить альтернативную шкалу. Перейдите в меню «Формат ряда данных…» и в разделе «Параметры ряда» переместите флажок на пункт «По вспомогательной оси».
На ниже приведенной диаграмме представлено сравнение 3-х организаций по 4-ем направлениям: Доступность; Ценовая политика; Качество продукции; Клиентоориентированность. Видно, что компания X лидирует по первому и последнему направлению, компания Y по качеству продукции, а компания Z предоставляет лучшие цены.