Plotly - Бокс-сюжет, скрипичный сюжет и контурный сюжет

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

Коробчатая диаграмма

Коробчатая диаграмма отображает сводку набора данных, содержащего минимум, first quartile, median, third quartile, и maximum. На ящичковой диаграмме мы рисуем прямоугольник от первого квартиля до третьего квартиля. Вертикальная линия проходит через рамку на медиане. Линии, идущие вертикально от прямоугольников, указывающие на изменчивость за пределами верхнего и нижнего квартилей, называются усами. Следовательно, ящичный график также известен как ящик иwhisker plot. Усы идут от каждого квартиля к минимуму или максимуму.

Чтобы нарисовать прямоугольную диаграмму, мы должны использовать go.Box()функция. Серии данных можно присвоить параметру x или y. Соответственно, коробчатая диаграмма будет нарисована горизонтально или вертикально. В следующем примере показатели продаж определенной компании в ее различных филиалах преобразуются в горизонтальную прямоугольную диаграмму. Он показывает медиану минимального и максимального значения.

trace1 = go.Box(y = [1140,1460,489,594,502,508,370,200])
data = [trace1]
fig = go.Figure(data)
iplot(fig)

Результат того же будет следующим:

В go.Box()функции могут быть заданы различные другие параметры для управления внешним видом и поведением прямоугольной диаграммы. Одним из таких параметров является параметр boxmean.

В boxmeanПо умолчанию для параметра установлено значение true. В результате среднее значение нижележащего распределения прямоугольников отображается пунктирной линией внутри прямоугольников. Если задано значение sd, также отображается стандартное отклонение распределения.

В boxpoints параметр по умолчанию равен "outliers". Отображаются только точки выборки, лежащие за пределами усов. Если" подозреваемые выбросы ", отображаются точки выбросов, и выделяются точки либо меньше 4" Q1-3 "Q3, либо больше 4" Q3-3 "Q1. Если" Ложь », отображаются только поля без точек выборки.

В следующем примере box trace строится со стандартным отклонением и точками выбросов.

trc = go.Box(
   y = [
      0.75, 5.25, 5.5, 6, 6.2, 6.6, 6.80, 7.0, 7.2, 7.5, 7.5, 7.75, 8.15,
      8.15, 8.65, 8.93, 9.2, 9.5, 10, 10.25, 11.5, 12, 16, 20.90, 22.3, 23.25
   ],
   boxpoints = 'suspectedoutliers', boxmean = 'sd'
)
data = [trc]
fig = go.Figure(data)
iplot(fig)

Результат того же самого указан ниже -

Сюжет для скрипки

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

Сюжет для скрипки более информативен, чем сюжет из простой коробки. Фактически, в то время как прямоугольная диаграмма показывает только сводную статистику, такую ​​как среднее / медианное значение и межквартильный размах, диаграмма скрипки показываетfull distribution of the data.

Объект трассировки скрипки возвращается go.Violin() функционировать в graph_objectsмодуль. Чтобы отобразить нижележащую коробчатую диаграмму,boxplot_visibleатрибут установлен на True. Аналогично, установивmeanline_visible значение true, внутри скрипок отображается линия, соответствующая среднему значению выборки.

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

import numpy as np
np.random.seed(10)
c1 = np.random.normal(100, 10, 200)
c2 = np.random.normal(80, 30, 200)
trace1 = go.Violin(y = c1, meanline_visible = True)
trace2 = go.Violin(y = c2, box_visible = True)
data = [trace1, trace2]
fig = go.Figure(data = data)
iplot(fig)

Результат выглядит следующим образом -

Контурный сюжет

Двухмерный контурный график показывает контурные линии двумерного числового массива z, то есть интерполированные линии isovaluesиз г. Линия изолинии функции двух переменных - это кривая, вдоль которой функция имеет постоянное значение, так что кривая соединяет точки равного значения.

Контурный график подходит, если вы хотите увидеть, как какое-то значение Z изменяется в зависимости от двух входов, X и Y такой, что Z = f(X,Y). Линия изолиний или изолинии функции двух переменных - это кривая, вдоль которой функция имеет постоянное значение.

Независимые переменные x и y обычно ограничиваются регулярной сеткой, называемой сеткой. Numpy.meshgrid создает прямоугольную сетку из массива значений x и массива значений y.

Давайте сначала создадим значения данных для x, y и z, используя linspace()функция из библиотеки Numpy. Мы создаемmeshgrid из значений x и y и получить массив z, состоящий из квадратного корня из x2+y2

У нас есть go.Contour() функционировать в graph_objects модуль, который принимает x,y и zатрибуты. Следующий фрагмент кода отображает контурный график x,y и z значения рассчитываются, как указано выше.

import numpy as np
xlist = np.linspace(-3.0, 3.0, 100)
ylist = np.linspace(-3.0, 3.0, 100)
X, Y = np.meshgrid(xlist, ylist)
Z = np.sqrt(X**2 + Y**2)
trace = go.Contour(x = xlist, y = ylist, z = Z)
data = [trace]
fig = go.Figure(data)
iplot(fig)

Результат выглядит следующим образом -

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

  • Transpose (boolean) - Транспонирует данные z.

Если xtype (или же ytype) равно "массиву", координаты x / y задаются как "x" / "y". Если "масштабировано", координаты x задаются как "x0" и "dx".

  • В connectgaps Параметр определяет, заполняются ли пробелы в данных z.

  • Значение по умолчанию ncontoursПараметр равен 15. Фактическое количество контуров будет автоматически выбрано меньше или равным значению `ncontours`. Имеет эффект, только если для параметра autocontour установлено значение True.

Тип контуров по умолчанию: "levels"поэтому данные представлены в виде контурного графика с отображением нескольких уровней. Если constrain, данные представлены как ограничения с недопустимой областью, заштрихованной, как указано operation и value параметры.

showlines - Определяет, рисуются ли контурные линии.

zauto является True по умолчанию и определяет, вычисляется ли цветовой домен относительно входных данных (здесь в `z`) или границ, установленных в`zmin`и`zmax`По умолчанию`False`когда` zmin` и `zmax` устанавливаются пользователем.

Сюжет колчана

Заговор колчана также известен как velocity plot. Он отображает векторы скорости в виде стрелок с компонентами (u,v) в точках (x, y). Чтобы нарисовать сюжет Колчана, мы будем использоватьcreate_quiver() функция, определенная в figure_factory модуль в Plotly.

API Python Plotly содержит модуль фабрики фигур, который включает множество функций-оболочек, которые создают уникальные типы диаграмм, которые еще не включены в plotly.js, Библиотека построения графиков с открытым исходным кодом от Plotly.

Функция create_quiver () принимает следующие параметры -

  • x - x координаты расположения стрелок

  • y - координаты y расположения стрелок

  • u - x компоненты векторов стрелок

  • v - компоненты y векторов стрелок

  • scale - масштабирует размер стрелок

  • arrow_scale - длина наконечника стрелы.

  • angle - угол наклона стрелы.

Следующий код отображает простой сюжет колчана в блокноте Jupyter:

import plotly.figure_factory as ff
import numpy as np
x,y = np.meshgrid(np.arange(-2, 2, .2), np.arange(-2, 2, .25))
z = x*np.exp(-x**2 - y**2)
v, u = np.gradient(z, .2, .2)

# Create quiver figure
fig = ff.create_quiver(x, y, u, v,
scale = .25, arrow_scale = .4,
name = 'quiver', line = dict(width = 1))
iplot(fig)

Вывод кода следующий -