Построение фигур в excel

Обновлено: 07.07.2024

Трансформация (преобразование) геометрической фигуры означает ее изменение по определенным правилам. Например, вращение, смещение или изменение масштаба некого прямоугольника на плоскости. Правила, по которым происходит изменение, будем записывать в матричном виде. Используем произведение матриц для применения к фигуре сразу нескольких преобразований. Также используем однородную систему координат (Homogenous Coordinates). Здесь рассмотрим трансформацию в двумерном пространстве с использованием MS EXCEL.

Пусть имеется исходная фигура (трапеция). Нам известны координаты ее вершин, геометрическая фигура построена с помощью диаграммы типа Точечная .

СОВЕТ : О построении диаграмм см. статью Основы построения диаграмм в MS EXCEL .

Примечание : В MS EXCEL есть объект Фигура (Вкладка Вставка, группа Иллюстрации, кнопка Фигуры). Так вот, рассматриваемые здесь геометрические фигуры не имеют никакого отношения к этим объектам.


Выделим произвольную вершину трапеции красным цветом и назовем ее опорной точкой. Ее координаты (1;1). Опорную точку будем иногда помещать в центр координат, чтобы упростить преобразования.

Смещение фигуры (Translation)

Для начала, сместим фигуру в заданную точку, задав координаты новой опорной точки: пусть это будет точка (-1;1).


Чтобы получить остальные координаты фигуры после смещения, вычислим координаты вектора смещения (translation vector or shift vector), вычтя из новых координат исходные координаты опорной точки (см. файл примера ).

Теперь, прибавив к исходным координатам координаты вектора смещения получим новые координаты фигуры.

Вместо вектора смещения для нахождения новых координат фигуры можно использовать матричный подход . Правда, именно для смещения фигуры нам для этого придется ввести понятие однородных координат (Homogenous Coordinates). Не вдаваясь в теорию, преобразование к однородным координатам сводится к добавлению для каждой точки фигуры еще одной вспомогательной координаты равной 1. Например, координаты опорной точки будут выглядеть в однородной системе координат как (1;1;1).

В нашем двумерном случае матрица смещения будет 3x3.


В серых ячейках содержатся новые координаты опорной точки, остальные элементы матрицы являются элементами единичной матрицы.

Перемножив матрицу смещения на координаты исходных точек (в виде столбца), получим новые координаты (в виде столбца). Далее транспонируем столбец в строку и получим новые координаты точек фигуры после смещения. Все это можно сделать с помощью формулы массива :


Вращение фигуры (Rotation)

Сначала научимся вращать фигуру относительно центра координат. Угол поворота зададим в градусах, затем переведем в радианы. Повороту против часовой стрелки будет соответствовать положительный угол θ.


Для вычисления координат вершин фигуры после поворота мы будем использовать матрицу поворота 2х2 (rotation matrix).


Новые координаты получаются путем умножения матрицы на известные координаты. В EXCEL это можно реализовать с помощью формулы:

Для ввода формулы выделите 2 ячейки в строке (куда нужно поместить новые координаты), установите курсор в Строку формул , введите формулу, затем нажмите CTRL+SHIFT+ENTER.

Для ввода угла поворота можно настроить элемент управления Счетчик (см. файл примера , лист Вращение).

Если вращение нужно осуществить относительно произвольной точки, то нам снова потребуется однородная система координат (см. файл примера , лист Вращение (произв точка)).


В данном случае вращение можно представить как последовательность преобразований: смещение точки, вокруг которой будет производиться вращение в центр координат, собственно вращение, затем обратное смещение точки. Таким образом, мы имеем 3 матрицы.


Эти матрицы можно предварительно перемножить и использовать уже одну итоговую матрицу. В файле примера реализовано оба варианта.

Масштабирование фигуры (Scaling)

Еще одним типом преобразования является изменение масштаба. Поместим опорную точку фигуры в центр координат.


Матрица изменения масштаба представляет собой диагональную матрицу 2x2, все элементы которой равны. Если элементы больше 1, то фигура увеличивается, если меньше, то уменьшается.


Отражение (Reflection)

Фигуру можно отразить относительно осей координат или произвольной линии.


В файле примера настроена специальная форма на основе элемента управления Переключатель .


Сдвиг (Shear)

Наконец, последним преобразованием является Сдвиг. Например, при сдвиге по оси Y, точки фигуры смещаются по оси Y пропорционально значению координаты Х (линейное преобразование при котором параллельные прямые остаются параллельными).


Т.к. Х координаты левой стороны квадрата равны 0, то ее смещения не происходит, а сдвигается только правая.

Матрица сдвига выглядит так:


Серия преобразований

Преобразуем квадрат в ромб и повернем его.


Для этого нам потребуется сделать Сдвиг, а затем Вращение (последовательность имеет значение!). Если мы сначала повернем квадрат, а потом сдвинем его, то мы получим другую фигуру (произведение матриц в общем случае не коммутативно ).

Нам потребуется 4 матрицы: 2 матрицы для смещения фигуры в центр координат и обратно; матрица для Сдвига и матрица для Вращения.

Для начинающих пользователей EXCEL советуем прочитать статью Основы построения диаграмм в MS EXCEL , в которой рассказывается о базовых настройках диаграмм, а также статью об основных типах диаграмм .

При попытке построить диаграмму типа Поверхность на основе одного ряда данных, MS EXCEL может сказать, что ему требуется как минимум 2 ряда. На самом деле, для более или менее наглядной поверхности потребуется как минимум 10 рядов (лучше 20 – для сложных поверхностей). К счастью, ряды не нужно создавать в ручную – достаточно правильно сформировать таблицу с исходными данными.

Построим график функции z=-sin(x*х+y*y)+1 (см. файл примера ).


В качестве источника данных используем таблицу, в которой в верхней строке указаны значения Х, а в левом столбце Y. В остальных ячейках – значения Z для всех пар (Х,Y)


Чтобы значения Z были более информативны - можно использовать Условное форматирование .


Условное форматирование показывает некий вариант изолиний (см. ниже): близкие значения Z выделены одним цветом. Это также позволяет предварительно оценить вид создаваемой диаграммы.

Теперь выделите любую ячейку таблицы и постройте диаграмму типа Поверхность (вкладка Вставка , группа Диаграммы , Кнопка Другие ).

Полученную фигуру можно повращать (кнопка Поворот объемной фигуры на вкладке Макет ).



Для построения диаграммы используется 3 оси: горизонтальная ось (категорий), вертикальная ось (значений), ось Z (рядов значений). Все 3 названия осей требуют пояснения.

Во-первых, ось Z на самом деле является нашей осью Х и отображает имена рядов. Если имена рядов убрать, то изменятся и подписи оси (убрать имена рядов можно нажав кнопку Изменить в окне Выбор источника данных , которое доступно через вкладку Конструктор ).


Этот факт роднит диаграмму Поверхность с Диаграммой График , где по Х отображаются лишь подписи. Т.е. при попытке построить поверхность с неравномерным шагом по Х (например, 1, 2, 5, 9, 77, 103, ..) получим искажения масштаба: значения по Х будут откладываться последовательно 1, 2, 3, … (конечно, Z будет рассчитаны правильно). Интересно, что формат подписей по оси Z можно настроить только изменяя формат ячеек, на которые ссылаются имена рядов (изменение формата на вкладке Число (в окне Формат Оси) ни к чему не приводит).

Во-вторых, по вертикальной оси (значений) на самом деле откладываются значения Z (это очевидно из рисунка).

И, наконец, в-третьих, горизонтальная ось (категорий) – это значения Y (на самом деле опять только подписи). Подписи, как и для Графика можно удалить или изменить нажав кнопку Изменить в окне Выбор источника данных , которое доступно через вкладку Конструктор (на этот раз нужно нажать кнопку расположенную справа).

Так как диаграмма Поверхность – это по сути трехмерный График , в котором одному Х соответствует один Y, то некоторые объемные фигуры отобразить на диаграмме Поверхность не удастся. Например, не удастся отобразить гиперболоид, т.к. каждой паре (Х;Y) на диаграмме Поверхность соответствует только один Z, а для гиперболоида это не так (каждой паре соответствует 2 значения Z). Поэтому, в MS EXCEL придется довольствоваться только половиной гиперболоида.


Как видно из диаграммы, близкие значения Z выделены одним цветом, которые указаны в Легенде. К сожалению, в MS EXCEL невозможно управлять этими уровнями (даже при повороте фигуры количество уровней и диапазоны значений существенно изменяются). Это приводит к тому, что построение изолиний ( линии уровня, контурный график, англ. Contour plot ) реализовано в MS EXCEL в достаточно ограниченном виде: невозможно указать на диаграмме значение изолинии (диапазоны цветов указаны на Легенде), разбиение на диапазоны по Z производится MS EXCEL автоматически и нет возможности на это повлиять. Ниже приведены изолинии для упомянутого выше гиперболоида. Это особый вид диаграммы – Проволочная контурная .


Практически такой же картинки можно добиться простым поворотом фигуры на диаграмме Поверхность .

Вы можете рисовать фигуры в Office с помощью инструментов "Фигура с фигурой с бесплатными формами" и "Рисованая рисовка".

Примечание: Сведения о том, как соединить фигуры линиями, см. в этой теме.

Нарисуйте фигуру с бесплатной формой

На вкладке Вставка в группе элементов Иллюстрации нажмите кнопку Фигуры.

Кнопка "Вставка фигур"

В области Линиисделайте одно из следующих:

Чтобы нарисовать фигуру с изогнутыми и прямыми сегментами, нажмите кнопку Форма .

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

Щелкните в любом месте документа и перетащите его, чтобы нарисовать.
Чтобы нарисовать прямой сегмент с помощью инструмента "Freeform", щелкните в одном месте, переместите указатель на в другом месте, а затем щелкните еще раз; чтобы нарисовать изогнутый сегмент, не нажимая при перетаскиваниях кнопку мыши.

Чтобы завершить рисование фигуры, сделайте следующее:

Чтобы оставить фигуру незамкнутой, дважды щелкните в любой момент рисования.

Чтобы замкнуть фигуру, щелкните вблизи ее начальной точки.

Изменение узлов фигуры

Вы можете изменять точки большинства фигур. Например, вы можете изменить точки, когда нужно наклонить треугольник вправо.

Выберите фигуру, которую вы хотите изменить.

На вкладке Формат нажмите кнопку Изменить фигуру и выберите Изменить точки.

замещающий текст

Перетащите одну из вершин фигуры. Вершина — это точка, обозначенная черной точкой, в которой заканчивается кривая, или точка, в которой два сегмента линии встречаются в фигуре freeform.

замещающий текст

Работа с точками редактирования

Чтобы добавить точку, щелкните контур фигуры, нажав CTRL.

Чтобы удалить точку, щелкните ее, нажав CTRL.

Чтобы точка была обработана как сглаживание, при перетаскивание одного из прикрепленных к точке точки перетаскиванием нажмите shift. Когда перетаскивание прекратится, точка станет плавной. Плавная точка соединяет два сегмента одинаковой длины.

Чтобы сделать точку прямой, перетаскиванием одного из ее ручеев нажмите CTRL. Когда вы остановите перетаскивание точки, она станет прямой. Прямая точка соединяет два сегмента линии разной длины.

Чтобы сделать точку угловой, перетаскиванием одного из ее хладок нажмите ALT. Когда вы остановите перетаскивание, точка станет угловой. Угловая точка соединяет два сегмента линии, один из них отключается в другом направлении.

Чтобы отменить изменение сегментов точки и линии, нажмите клавишу ESC, прежде чем отпустить кнопку мыши.

Чтобы открыть режим редактирования точек с помощью сочетания клавиш, вы выберите фигуру и нажмите клавиши ALT+JD, E, E.

Удаление фигур

Щелкните фигуру, которую вы хотите удалить, а затем нажмите клавишу DELETE.
Если вы хотите удалить несколько фигур, выберите первую из них, нажмите и удерживайте нажатой кнопку CTRL, а затем нажмите кнопку DELETE.

Построение диаграмм с одним рядом данных рассмотрено в статье Основы построения диаграмм в MS EXCEL . Начинающим пользователям также целесообразно перед прочтением ознакомиться со статьей Основные типы диаграмм .

ГИСТОГРАММА

Построим Гистограмму с группировкой на основе таблицы с двумя числовыми столбцами, близких по значениям.


Выделите любую ячейку таблицы (см. файл примера ), на вкладке Вставка , в группе Диаграммы нажмите кнопку Гистограмма , в выпавшем меню выберите Гистограмма с группировкой .

MS EXCEL построит оба ряда с использованием только основных осей (чтобы в этом убедиться, дважды кликните сначала по столбцу одного ряда, затем по одному из столбцов по другого. В окне Формат ряда данных на вкладке Параметры ряда будет указано по какой оси отложены значения ряда). Т.к. значения у обоих рядов близки, то такое решение нам подходит.

Для рядов, у которых значения существенно различаются (на порядок и больше) один из рядов нужно строить с использованием Вспомогательной вертикальной оси .



Для этого достаточно выбрать для одного из рядов построение на вспомогательной оси (дважды кликнув на один из столбцов), а затем настроить ширину столбцов (боковой зазор), чтобы отображались оба ряда.


Если не настроить ширину столбцов, то эту диаграмму можно спутать с диаграммой Гистограмма с пополнением (столбцы, относящие к одной категории «ставятся» друг на друга).

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


Горизонтальную вспомогательную ось можно расположить даже вверху. При этом столбцы разных рядов будут оригинально пересекаться.


Теперь изменим подписи по горизонтальной оси (категории).

В окне Выбор источника данных видно, что для обоих рядов подписи горизонтальной оси одинаковы, т.к. категории одинаковы для обоих рядов (столбец Месяц).


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

При желании это также можно изменить. В окне Выбор источника данных выделите ряд Прибыль, нажмите кнопку Изменить расположенную справа, удалите ссылку на ячейки. Теперь у ряда Прибыль вместо названия категорий будут просто порядковые числа 1, 2, 3,… Однако, они не будут отображаться на диаграмме, т.к. отображается пока только Основная горизонтальная ось .

Теперь в меню Оси (вкладка Макет , группа Оси ) выберите Вспомогательная горизонтальная ось и установите ее Слева направо . В окне формата Вспомогательной вертикальной оси измените точку пересечения оси (установите Автовыбор ). Получим вот такую диаграмму.


Хотя техническая возможность отображения 2-х различных категорий существует, конечно, таких диаграмм нужно избегать, т.к. их сложно воспринимать. Категории должны быть одинаковыми для всех рядов на диаграмме. Естественно, такой трюк сработает только для двух групп рядов, т.к. имеется всего 2 типа оси: основная и вспомогательная.

ГРАФИК

Диаграмма График во многом аналогична Гистограмме с группировкой: к ней применимы те же идеи по отображению двух рядов со значительно отличающимися значениями, что и к Гистограмме.


После размещения рядов на разных осях получим вот такую диаграмму (линии вертикальных осей выделены цветами, соответствующими цветам рядов).


Примечание . Если провести горизонтальные линии сетки к вспомогательной оси, то они, естественно, могут не совпасть с линиями к основной оси, т.к. масштабы осей (величины основных делений вертикальных осей) могут не совпадать. Это может «перегрузить» диаграмму.


Вообще, к использованию вспомогательных вертикальных осей, а тем более вспомогательных горизонтальных осей для Гистограммы и Графика нужно подходить обдуманно: ведь диаграмма должна «читаться» - быть понятной без дополнительных комментариев.

ТОЧЕЧНАЯ

Визуально Точечная диаграмма похожа на диаграмму типа График (если конечно у Точечной диаграммы точки соединены линиями).


Различие состоит в том, что для построения Графика в качестве координаты Х всегда используется последовательность 1, 2, 3, … (с подписями - категориями), а для Точечной значения по горизонтальной оси м.б. любыми числами (см. статью График vs Точечная ).

Примечание . Если для построения Точечной диаграммы не указана ссылка на значения Х (или ссылка указывает на текстовые значения), то в качестве координат по Х будет использована та же последовательность 1, 2, 3, …, что и для Графика.


Исходя из вышесказанного, при построении диаграммы Точечная целесообразно указывать числовые значения по Х. В противном случае нужно просто использовать График, т.к. для него можно задавать любые подписи по Х (в том числе и текстовые), что для Точечной диаграммы сделать нельзя (только числа).


Теперь о совмещении разных типов диаграмм с Точечной. Если для Точечной диаграммы не используется координата Х, то на диаграмме она выглядит как График.


Подписи по горизонтальной оси берутся от Графика. В окне Выбор источника данных видно, что для ряда отображаемого Точечной диаграммой подписи горизонтальной оси одинаковы изменить/ удалить нельзя.


Кроме того, График может быть только на основной оси и поменять это нельзя.


Если для Точечной диаграммы используется координата Х и оба ряда отложены по одной (основной) оси, то получается не очень красивая диаграмма.


Это связано с тем, что при совмещении с Точечной диаграммой (на одной оси и когда у Точечной указаны значения по Х), диаграмма типа График становится как бы главной:

  • на горизонтальной оси отображаются подписи только для Графика;
  • вертикальная сетка не отображается для отрицательных значений Х (т.к. График строится только для Х=1, 2, 3, …);
  • у Графика невозможно изменить Ось с Основной на Вспомогательную (у Точечной можно).

Если Точечную построить на вспомогательной оси, то диаграмма изменится.


Подписи для Точечной (значения по Х) теперь отображаются сверху.

Совет . Диаграмма типа Точечная используется для построения окружностей, эллипсов и других замкнутых фигур на плоскости .

Теперь рассмотрим построение 2-х рядов данных, которые используют диаграмму Точечная.

Сначала построим 2 эллипса с различными координатами центра и размерами полуосей без использования вспомогательных осей.


Примечание . Фактически на диаграмме 4 ряда данных: точка центра представляет отдельный ряд.

Дважды кликнем по бордовому эллипсу и выберем построение ряда на вспомогательной оси (сделаем то же и центра эллипса).


Теперь координаты Y для бордового эллипса откладываются по правой вертикальной оси (можно ее для наглядности выделить также бордовым цветом).

Добавим Вспомогательную горизонтальную ось (в меню Оси (вкладка Макет , группа Оси ) выберите Вспомогательная горизонтальная ось и установите ее По умолчанию ).


Наверное, для диаграммы типа Точечная использование вспомогательных осей наиболее оправдано – это позволяет отображать на одной диаграмме различные по масштабу кривые.

КРУГОВАЯ

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

Совмещение разных типов диаграмм

Про совмещение Графика и Точечной диаграммы рассказано выше (см. раздел Точечная).

Совмещением Линейчатой и Гистограммы не стоит заниматься, т.к. выглядит это достаточно странно, почти также странно, как и совмещение Гистограммы с Круговой (см. также статью Основные типы диаграмм, раздел Круговая ).


Совет . Также можно посмотреть статью Совмещаем разные типы диаграмм .

Оригинальностью совмещения могут также похвастаться Гистограмма и Нормированная линейчатая с накоплением .


Наверное, единственными типами диаграмм, которые стоит совмещать, являются График и Гистограмма (категории должны быть одинаковыми для обоих рядов).


Для такой диаграммы постройте сначала Гистограмму с группировкой с двумя рядами (см. раздел Гистограмма в начале этой статьи). Затем выделите нужный ряд и нажмите кнопку Изменить тип диаграммы (вкладка Конструктор ). Выбрав График или График с Маркерами нажмите ОК.

Если масштабы значений у рядов существенно отличаются, то можно настроить вспомогательную вертикальную ось (см. раздел Гистограмма).

Читайте также: