Найти в Дзене
Широков Александр

Электронные таблицы: применяем с пользой (часть 4)

«Виртуальное лекало» или Делаем гладкие графики

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

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

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

Большинство эмпирических зависимостей величины y от величины x имеют вид прямых или гладких плавных линий, без излишне резких скачков и изломов. При этом пользователи нередко сталкиваются с проблемой следующего характера. Пусть у нас есть такая экспериментально полученная зависимость y(x):

-2

Если при помощи табличного процессора отобразить её в виде точек на координатной плоскости, что получится вот это:

-3

Из расположения точек вроде бы понятно, что график зависимости y(x) выходит из начала координат и должен иметь вид плавно изгибающейся кривой, однако если теперь попробовать изменить тип приведённой выше диаграммы (сделать его в виде точек, соединённых гладкой линией), то получится такое:

-4

Алгоритм прорисовки плавной линии в табличных процессорах работает так, что он пытается провести саму кривую строго через экспериментальные точки, из-за чего она частенько приобретает малопривлекательный вид со странными изгибами. Если же принять во внимание, что сами значения пар чисел xy обычно известны не абсолютно точно, а с некоторой погрешностью, то становится понятно, что линию было бы лучше (да и правильнее к тому же) провести как-нибудь поровнее, пусть даже сама она и не будет точно пересекать все точки. Кстати, раньше, в «докомпьютерную эру», когда иллюстрации приходилось рисовать вручную на миллиметровке или на ватмане, в подобных случаях использовали специальный чертёжный инструмент – инженерное лекало. Поскольку теперь это самое лекало, даже при его наличии, прикладывать к монитору бесполезно, то именно здесь некоторые пользователи и начинают пасовать, не зная как изобразить нормально выглядящую кривую линию. На самом деле добиться желаемого несложно, причём выполнить это можно двумя способами.

Способ 1. Добавление линии тренда

Совокупность экспериментальных данных можно аппроксимировать (Пособие, с. 57) какой-нибудь функцией, например многочленом (полиномом) n-ой степени с постоянными коэффициентами a₀, a₁, ... , aₙ:

y(x) = a₀ + a₁·x + a₂·x² + ... + aₙ·xⁿ

В случае приведённого выше примера может быть получена сглаживающая линия вполне себе пристойного вида:

-5

Это достигается при настройке её формата выбором полинома третьей степени и указанием для него пересечения с осью ординат точке 0:

-6
-7
-8
-9
-10
-11

Способ 2. Использование вспомогательного ряда данных

Бывают случаи, когда линия тренда не даёт приемлемого результата. Вот пример подобного набора эмпирических данных и их графическое отображение:

-12

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

Действовать можно так. Сначала продублировать исходные данные, скопировав их в соседние ячейки:

-13
-14

После этого на основании исходных эмпирических данных нужно создать новую диаграмму (вкладка ленты «Вставка» → секция «Диаграммы» → команда «Вставить точечную (X, Y) или пузырьковую диаграмму» → тип «Точечная»), а затем из дубликатов сделать новый ряд данных (Пособие, с. 78) и, вызвав контекстное меню щелчком правой кнопки мыши по какой-нибудь «вспомогательной» точке, зайти в диалог «Формат ряда данных...» для выставления следующих настроек:

-15
-16
-17
-18

После этого на основании эмпирических данных нужно создать диаграмму следующего типа:

-19

Затем на эту диаграмму нужно добавить новый (вспомогательный) ряд (Пособие, с. 78) из дубликатов, а далее (находясь в режиме правки) вызовом через контекстное меню диалоговых окон «Формат рядов данных...» выставить приведённые ниже настройки.

Для ряда с эмпирическими данными:

-20

Для вспомогательного ряда:

-21
-22

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

-23
-24
-25
-26
-27
-28
-29
-30

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

В своё время описанные в этой заметке приёмы подготовки иллюстраций я использовал при написании кандидатской диссертации (в качестве примера ниже приведён рисунок из неё). У меня даже интересовались, какое программное обеспечение было использовано для этого и удивлялись, узнав, что при помощи Excel вполне возможно изображать аккуратные кинетические кривые, как будто нарисованные по лекалу.

-31

Файлы с примерами: xlsx / ods

Перечень публикаций на канале