Поделиться через


Визуализация данных

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

При использовании Apache Spark в Azure Synapse Analytics существуют различные встроенные варианты для визуализации данных, включая параметры диаграммы записной книжки Synapse, доступ к популярным библиотекам с открытым исходным кодом и интеграцию с Synapse SQL и Power BI.

Параметры диаграммы ноутбука

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

Функция display(df)

Эта display функция позволяет превращать SQL-запросы, а также DataFrame и RDD из Apache Spark в интерактивные визуализации данных. Функцию display можно использовать в DataFrame или RDD, созданных в PySpark, Scala, Java, R и .NET.

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

  1. Выходные данные магических %%sql команд отображаются в отображенном представлении таблицы по умолчанию. Вы также можете вызвать функцию display(df) на Spark DataFrames или устойчивых распределенных наборах данных (RDD), чтобы создать отображение таблицы.

  2. После отображения представления таблицы перейдите в представление диаграммы. встроенные диаграммы

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

    Конфигурация Описание
    Тип диаграммы Функция display поддерживает широкий спектр типов диаграмм, включая линейчатые диаграммы, точечную диаграмму, графики и многое другое.
    Ключ Укажите диапазон значений для оси x
    Ценность Укажите диапазон значений для значений оси Y
    Группа серий Используется для определения групп для агрегирования
    Aggregation Метод агрегирования данных в визуализации

    Замечание

    По умолчанию display(df) функция будет принимать только первые 1000 строк данных для отрисовки диаграмм. Проверьте агрегирование всех результатов и нажмите кнопку "Применить ", вы примените создание диаграммы из всего набора данных. Задание Spark будет активировано при изменении параметров диаграммы. Обратите внимание, что для выполнения вычисления и отрисовки диаграммы может потребоваться несколько минут.

  4. После этого вы можете просматривать и взаимодействовать с окончательной визуализацией!

сведения о статистике display(df)

Можно использовать display(df, summary = true) для проверки сводки статистики заданного кадра данных Apache Spark, включающего имя столбца, тип столбца, уникальные значения и отсутствующие значения для каждого столбца. Вы также можете выбрать конкретный столбец, чтобы увидеть его минимальное, максимальное значение, среднее значение и стандартное отклонение. Встроенная сводка диаграмм

опция displayHTML()

Записные книжки Azure Synapse Analytics поддерживают HTML-графику с помощью функции displayHTML.

Следующее изображение является примером создания визуализаций с использованием D3.js.

d3-js-example

Выполните следующий код, чтобы создать визуализацию выше.

displayHTML("""<!DOCTYPE html>
<meta charset="utf-8">

<!-- Load d3.js -->
<script src="https://d3js.org/d3.v4.js"></script>

<!-- Create a div where the graph will take place -->
<div id="my_dataviz"></div>
<script>

// set the dimensions and margins of the graph
var margin = {top: 10, right: 30, bottom: 30, left: 40},
  width = 400 - margin.left - margin.right,
  height = 400 - margin.top - margin.bottom;

// append the svg object to the body of the page
var svg = d3.select("#my_dataviz")
.append("svg")
  .attr("width", width + margin.left + margin.right)
  .attr("height", height + margin.top + margin.bottom)
.append("g")
  .attr("transform",
        "translate(" + margin.left + "," + margin.top + ")");

// Create Data
var data = [12,19,11,13,12,22,13,4,15,16,18,19,20,12,11,9]

// Compute summary statistics used for the box:
var data_sorted = data.sort(d3.ascending)
var q1 = d3.quantile(data_sorted, .25)
var median = d3.quantile(data_sorted, .5)
var q3 = d3.quantile(data_sorted, .75)
var interQuantileRange = q3 - q1
var min = q1 - 1.5 * interQuantileRange
var max = q1 + 1.5 * interQuantileRange

// Show the Y scale
var y = d3.scaleLinear()
  .domain([0,24])
  .range([height, 0]);
svg.call(d3.axisLeft(y))

// a few features for the box
var center = 200
var width = 100

// Show the main vertical line
svg
.append("line")
  .attr("x1", center)
  .attr("x2", center)
  .attr("y1", y(min) )
  .attr("y2", y(max) )
  .attr("stroke", "black")

// Show the box
svg
.append("rect")
  .attr("x", center - width/2)
  .attr("y", y(q3) )
  .attr("height", (y(q1)-y(q3)) )
  .attr("width", width )
  .attr("stroke", "black")
  .style("fill", "#69b3a2")

// show median, min and max horizontal lines
svg
.selectAll("toto")
.data([min, median, max])
.enter()
.append("line")
  .attr("x1", center-width/2)
  .attr("x2", center+width/2)
  .attr("y1", function(d){ return(y(d))} )
  .attr("y2", function(d){ return(y(d))} )
  .attr("stroke", "black")
</script>

"""
)

Библиотеки Python

Когда речь идет о визуализации данных, Python предлагает несколько библиотек для создания графиков, которые оснащены множеством различных функций. По умолчанию каждый пул Apache Spark в Azure Synapse Analytics содержит набор курируемых и популярных библиотек с открытым кодом. Вы также можете добавлять и управлять дополнительными библиотеками и версиями с помощью возможностей управления библиотеками Azure Synapse Analytics.

Matplotlib

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

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

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

# Bar chart

import matplotlib.pyplot as plt

x1 = [1, 3, 4, 5, 6, 7, 9]
y1 = [4, 7, 2, 4, 7, 8, 3]

x2 = [2, 4, 6, 8, 10]
y2 = [5, 6, 2, 6, 2]

plt.bar(x1, y1, label="Blue Bar", color='b')
plt.bar(x2, y2, label="Green Bar", color='g')
plt.plot()

plt.xlabel("bar number")
plt.ylabel("bar height")
plt.title("Bar Chart Example")
plt.legend()
plt.show()

эффект боке

Вы можете отобразить HTML или интерактивные библиотеки, такие как bokeh, с помощью displayHTML(df).

Следующее изображение демонстрирует пример нанесения глифов на карту с помощью bokeh.

Bokeh-example

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

from bokeh.plotting import figure, output_file
from bokeh.tile_providers import get_provider, Vendors
from bokeh.embed import file_html
from bokeh.resources import CDN
from bokeh.models import ColumnDataSource

tile_provider = get_provider(Vendors.CARTODBPOSITRON)

# range bounds supplied in web mercator coordinates
p = figure(x_range=(-9000000,-8000000), y_range=(4000000,5000000),
           x_axis_type="mercator", y_axis_type="mercator")
p.add_tile(tile_provider)

# plot datapoints on the map
source = ColumnDataSource(
    data=dict(x=[ -8800000, -8500000 , -8800000],
              y=[4200000, 4500000, 4900000])
)

p.circle(x="x", y="y", size=15, fill_color="blue", fill_alpha=0.8, source=source)

# create an html document that embeds the Bokeh plot
html = file_html(p, CDN, "my plot1")

# display this html
displayHTML(html)

Plotly

Вы можете визуализировать HTML или интерактивные библиотеки, такие как Plotly, используя displayHTML().

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

пример plotly

from urllib.request import urlopen
import json
with urlopen('https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json') as response:
    counties = json.load(response)

import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv",
                   dtype={"fips": str})

import plotly
import plotly.express as px

fig = px.choropleth(df, geojson=counties, locations='fips', color='unemp',
                           color_continuous_scale="Viridis",
                           range_color=(0, 12),
                           scope="usa",
                           labels={'unemp':'unemployment rate'}
                          )
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})

# create an html document that embeds the Plotly plot
h = plotly.offline.plot(fig, output_type='div')

# display this html
displayHTML(h)

Панды

Вы можете просмотреть html-вывод датафрейма pandas как выходные данные по умолчанию, и записная книжка автоматически отобразит стилизованное html-содержимое.

Пример графа Panda.

import pandas as pd 
import numpy as np 

df = pd.DataFrame([[38.0, 2.0, 18.0, 22.0, 21, np.nan],[19, 439, 6, 452, 226,232]], 

                  index=pd.Index(['Tumour (Positive)', 'Non-Tumour (Negative)'], name='Actual Label:'), 

                  columns=pd.MultiIndex.from_product([['Decision Tree', 'Regression', 'Random'],['Tumour', 'Non-Tumour']], names=['Model:', 'Predicted:'])) 

df 

Дополнительные библиотеки

Помимо этих библиотек, среда выполнения Azure Synapse Analytics также включает следующий набор библиотек, которые часто используются для визуализации данных:

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

Библиотеки R (предварительная версия)

Экосистема R предлагает несколько библиотек графирования, которые упакованы с множеством различных функций. По умолчанию каждый пул Apache Spark в Azure Synapse Analytics содержит набор курируемых и популярных библиотек с открытым кодом. Вы также можете добавлять и управлять дополнительными библиотеками и версиями с помощью возможностей управления библиотеками Azure Synapse Analytics.

ggplot2

Библиотека ggplot2 популярна для визуализации данных и анализа исследуемых данных.

Снимок экрана: пример графа ggplot2.

library(ggplot2)
data(mpg, package="ggplot2") 
theme_set(theme_bw()) 

g <- ggplot(mpg, aes(cty, hwy))

# Scatterplot
g + geom_point() + 
  geom_smooth(method="lm", se=F) +
  labs(subtitle="mpg: city vs highway mileage", 
       y="hwy", 
       x="cty", 
       title="Scatterplot with overlapping points", 
       caption="Source: midwest")

rBokeh

rBokeh — это собственная библиотека графиков R для создания интерактивной графики, поддерживаемой библиотекой визуализации Bokeh.

Чтобы установить rBokeh, можно использовать следующую команду:

install.packages("rbokeh")

После установки можно использовать rBokeh для создания интерактивных визуализаций.

Снимок экрана: пример графа rBokeh.

library(rbokeh)
p <- figure() %>%
  ly_points(Sepal.Length, Sepal.Width, data = iris,
    color = Species, glyph = Species,
    hover = list(Sepal.Length, Sepal.Width))

R Plotly

Библиотека графики R от Plotly создает интерактивные графики высокого качества для публикаций.

Чтобы установить Plotly, можно использовать следующую команду:

install.packages("plotly")

После установки вы можете использовать Plotly для создания интерактивных визуализаций.

Снимок экрана примера графика Plotly.

library(plotly) 

fig <- plot_ly() %>% 
  add_lines(x = c("a","b","c"), y = c(1,3,2))%>% 
  layout(title="sample figure", xaxis = list(title = 'x'), yaxis = list(title = 'y'), plot_bgcolor = "#c7daec") 

fig

Highcharter

Highcharter — это оболочка R для библиотеки JavaScript Highcharts и его модулей.

Чтобы установить Highcharter, можно использовать следующую команду:

install.packages("highcharter")

После установки можно использовать Highcharter для создания интерактивных визуализаций.

Снимок экрана: пример графа Highcharter.

library(magrittr)
library(highcharter)
hchart(mtcars, "scatter", hcaes(wt, mpg, z = drat, color = hp)) %>%
  hc_title(text = "Scatter chart with size and color")

Подключение к Power BI с помощью Apache Spark и SQL по запросу

Azure Synapse Analytics глубоко интегрируется с Power BI, позволяя инженерам данных создавать решения аналитики.

Azure Synapse Analytics позволяет различным вычислительным модулям рабочей области совместно использовать базы данных и таблицы между пулами Spark и бессерверным пулом SQL. Используя модель общих метаданных, вы можете запросить таблицы Apache Spark по запросу с помощью SQL. После этого можно подключить конечную точку SQL по запросу к Power BI, чтобы легко запрашивать синхронизированные таблицы Spark.

Дальнейшие действия