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


Визуализация записной книжки в Microsoft Fabric

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

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

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

Встроенная команда визуализации — функция display()

Встроенная функция визуализации Fabric позволяет преобразовать кадры данных Apache Spark, Pandas DataFrames и SQL-запросы в визуализации данных с расширенным форматом.

Вы можете использовать функцию отображения в кадрах данных, созданных в PySpark и Scala в Кадрах данных Spark или устойчивых распределенных наборах данных (RDD), для создания представления таблиц и представления диаграмм с расширенными кадрами данных.

Выходные данные инструкции SQL отображаются в отображенном представлении таблицы по умолчанию.

Представление таблицы с форматированными кадрами данных

Анимированный GIF-файл для предварительной версии полнофункционированного кадра данных.

  1. Представление таблицы отображается по умолчанию при использовании команды display().
  2. Чтобы профилировать кадр данных, нажмите кнопку "Проверить ". Он предоставляет сводное распределение данных и показывает статистику каждого столбца.
  3. Каждая карточка на боковой панели "Проверка" сопоставляется с столбцом кадра данных, вы можете просмотреть дополнительные сведения, щелкнув карточку или выбрав столбец в таблице.
  4. Вы можете просмотреть сведения о ячейке, щелкнув ячейку таблицы. Это полезно, если кадр данных содержит длинный строковый тип содержимого.
  5. Можно указать количество строк представления таблицы, значение по умолчанию — 1000, записная книжка поддерживает просмотр и профиль 10000 строк кадра данных.

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

Анимированный GIF-файл представления диаграммы.

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

  2. Записная книжка Fabric автоматически рекомендует пару "Ключ" "Значение" на основе целевого кадра данных, чтобы сделать диаграмму по умолчанию признаком аналитики данных.

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

    Конфигурация Description
    Тип диаграммы Функция отображения поддерживает широкий спектр типов диаграмм, включая линейчатые диаграммы, точечную диаграмму, графики и многое другое.
    Ключ Укажите диапазон значений для оси x.
    Значение Укажите диапазон значений для значений оси Y.
    Группа рядов Используйте эту конфигурацию для определения групп для агрегирования.
    Агрегат Используйте этот метод для агрегирования данных в визуализации.

    Конфигурации будут автоматически сохранены в выходном содержимом записной книжки.

    Примечание.

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

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

Представление сводки display(df)

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

Анимированный GIF-файл представления сводки.

Параметр displayHTML()

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

На следующем рисунке показан пример создания визуализаций с помощью D3.js.

Снимок экрана: пример диаграммы, созданной с помощью D3.js.

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

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>

"""
)

Внедрение отчета Power BI в записную книжку

Внимание

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

Пакет Python Powerbiclient теперь изначально поддерживается в записных книжках Fabric. Вам не нужно выполнять дополнительную настройку (например, процесс проверки подлинности) в записной книжке Fabric Spark runtime 3.4. Просто импортируйте powerbiclient и продолжайте изучение. Дополнительные сведения об использовании пакета powerbiclient см. в документации по powerbiclient.

Powerbiclient поддерживает следующие ключевые функции.

Отрисовка существующего отчета Power BI

Вы можете легко внедрять и взаимодействовать с отчетами Power BI в записных книжках с несколькими строками кода.

На следующем рисунке показан пример отрисовки существующего отчета Power BI.

Снимок экрана: быстрый визуальный элемент Spark.

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

from powerbiclient import Report

report_id="Your report id"
report = Report(group_id=None, report_id=report_id)

report

Создание визуальных элементов отчета из кадра данных Spark

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

На следующем рисунке показан пример QuickVisualize() кадра данных Spark.

Снимок экрана: отчет Power BI

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

# Create a spark dataframe from a Lakehouse parquet table
sdf = spark.sql("SELECT * FROM testlakehouse.table LIMIT 1000")

# Create a Power BI report object from spark data frame
from powerbiclient import QuickVisualize, get_dataset_config
PBI_visualize = QuickVisualize(get_dataset_config(sdf))

# Render new report
PBI_visualize

Создание визуальных элементов отчета из кадра данных Pandas

Вы также можете создавать отчеты на основе кадра данных pandas в записной книжке.

На следующем рисунке показан пример QuickVisualize() кадра данных pandas.

Снимок экрана: быстрый визуальный элемент Pandas.

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

import pandas as pd

# Create a pandas dataframe from a URL
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv")

# Create a pandas dataframe from a Lakehouse csv file
from powerbiclient import QuickVisualize, get_dataset_config

# Create a Power BI report object from your data
PBI_visualize = QuickVisualize(get_dataset_config(df))

# Render new report
PBI_visualize

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

Matplotlib

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

На следующем рисунке показан пример создания линейчатой диаграммы с помощью 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()

Bokeh

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

Ниже приведен пример построения глифов на карте с использованием bokeh.

Снимок экрана: пример построения глифов по карте.

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

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().

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

Снимок экрана: карта США, созданной с помощью графики.

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)

Pandas.

Выходные данные HTML pandas DataFrames можно просмотреть как выходные данные по умолчанию. Записные книжки Fabric автоматически отображают стильное HTML-содержимое.

Снимок экрана: таблица, созданная с помощью pandas.

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