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

Что означает ряд, источник данных, ось при работе с графиками? Если вы собираетесь создать график или работать с какой-либо структурой построения графиков в Matlab, Python, Julia или, возможно, в программных пакетах, таких как Excel или Apple’s Numbers, полезно знать, каковы различные части графика.

Я попытаюсь объяснить это как конвейер, начиная с данных и заканчивая графикой на экране.

Источник данных

Исходные данные, которые мы хотим визуализировать, называются источником данных. Обычно это организовано в виде таблицы. В пакетах научного программирования, таких как R, Matlab, NumPy и Julia, они обычно называются фрейм данных. Фрейм данных — это таблица, в которой у каждого столбца есть метка, на которую мы можем ссылаться.

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

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

Серия данных

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

Каждый цвет на разных графиках ниже представляет разные серии. Каждая серия представляет собой отношение данных, которое вы хотите отобразить на одном графике (графике). Мне нравится думать о каждой серии как о функции. Функция сопоставляет входные значения с выходными значениями. Альтернативный взгляд на это заключается в том, что он сопоставляет значение x со значением y. Математики называют домен значений x и кодомен значений y.

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

Пример из геологии

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

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

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

Типы участков и геометрия

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

В некоторых пакетах при упоминании интерфейсов программирования их называют геометриями. Это терминология, используемая графическим пакетом Julia Овод.

Сопоставление данных с графиком

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

В этом примере мы сопоставляем столбцы в имени источника данных xs и ys с эстетикой в ​​геометрии линии с именами x и y. Для других геометрий было бы другое количество эстетики и имен. Для гистограмм, например. есть также эстетика color, и вы можете выбрать эстетику xmin и xmax в качестве входных данных для геометрии, а не x.

Вот как бы я построил аналогичный график в Джулии с помощью Овода.

Создайте данные:

xs = 1:2:12
ys = xs.^2

Сохраните его во фрейме данных

df = DataFrame(x = xs, y = ys)

Обратите внимание, мы можем назвать столбцы как угодно, так что это также допустимо:

df = DataFrame(foo = xs, bar = ys)

Скажи Оводу, что:

  1. df — наш источник данных.
  2. x эстетика подключается к foo столбцу источника данных.
  3. y эстетика подключается к bar столбцу источника данных.
plot(df, x = :foo, y = :bar, Geom.LineGeometry)

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

Вам нужны некоторые данные, а затем вам нужно определить, как эти данные сопоставляются с геометрией графика, который вы строите. Независимо от того, какую библиотеку построения графиков вы используете, она должна будет предложить вам какой-то способ описания этой связи. Эстетика и Геометрия, однако, кажутся не такими часто используемыми терминами для графиков, как ряды данных. Фрейм данных также довольно распространен для различных языков программирования и пакетов. Вы также столкнетесь с этой терминологией при использовании языка R для статистического анализа.

Подробнее о работе с данными в таблицах читайте в моей статье DataFrames.