Udostępnij za pośrednictwem


Wizualizowanie danych

Azure Synapse to zintegrowana usługa analityczna, która skraca czas na szczegółowe informacje w magazynach danych i systemach analizy danych big data. Wizualizacja danych to kluczowy składnik umożliwiający uzyskanie wglądu w dane. Ułatwia to zrozumienie dużych i małych danych przez ludzi. Ułatwia również wykrywanie wzorców, trendów i wartości odstających w grupach danych.

W przypadku korzystania z platformy Apache Spark w usłudze Azure Synapse Analytics dostępne są różne wbudowane opcje ułatwiające wizualizowanie danych, w tym opcje wykresu notesu usługi Synapse, dostęp do popularnych bibliotek typu open source oraz integracja z usługami Synapse SQL i Power BI.

Opcje wykresu notesu

W przypadku korzystania z notesu usługi Azure Synapse możesz przekształcić widok wyników tabelarycznych w dostosowany wykres przy użyciu opcji wykresu. W tym miejscu możesz wizualizować dane bez konieczności pisania kodu.

display(df), funkcja

Funkcja display umożliwia przekształcenie zapytań SQL i ramek danych platformy Apache Spark oraz rdD w zaawansowane wizualizacje danych. Funkcja display może być używana na ramkach danych lub RDD utworzonych w PySpark, Scala, Java, R i .NET.

Aby uzyskać dostęp do opcji wykresu:

  1. Dane wyjściowe %%sql poleceń magicznych są domyślnie wyświetlane w wyświetlanym widoku tabeli. Możesz również wywołać display(df) funkcję Spark DataFrames lub Resilient Distributed Datasets (RDD), aby utworzyć renderowany widok tabeli.

  2. Po wyświetleniu renderowanego widoku tabeli przejdź do widoku wykresu. wbudowane wykresy

  3. Teraz możesz dostosować wizualizację, określając następujące wartości:

    Konfiguracja Opis
    Typ wykresu Funkcja display obsługuje szeroką gamę typów wykresów, w tym wykresy słupkowe, wykresy punktowe, wykresy liniowe i inne
    Klucz Określanie zakresu wartości dla osi x
    Wartość Określanie zakresu wartości dla wartości osi y
    Grupa serii Służy do określania grup dla agregacji
    Aggregation Metoda agregowania danych w wizualizacji

    Uwaga / Notatka

    Domyślnie display(df) funkcja pobiera tylko pierwsze 1000 wierszy danych w celu renderowania wykresów. Sprawdź Agregację dla wszystkich wyników i kliknij przycisk Zastosuj, aby zastosować generowanie wykresu dla całego zestawu danych. Zadanie platformy Spark zostanie wyzwolone po zmianie ustawienia wykresu. Pamiętaj, że wykonanie obliczeń i renderowanie wykresu może potrwać kilka minut.

  4. Po zakończeniu możesz wyświetlać ostateczną wizualizację i korzystać z niej.

wyświetl(df) szczegóły statystyki

Możesz użyć display(df, summary = true) polecenia , aby sprawdzić podsumowanie statystyk danej ramki danych platformy Apache Spark, która zawiera nazwę kolumny, typ kolumny, unikatowe wartości i brakujące wartości dla każdej kolumny. Możesz również wybrać określoną kolumnę, aby wyświetlić jej wartość minimalną, wartość maksymalną, wartość średnią i odchylenie standardowe. wbudowane wykresy — podsumowanie

displayHTML() opcja

Notesy usługi Azure Synapse Analytics obsługują grafikę HTML przy użyciu funkcji displayHTML.

Na poniższej ilustracji przedstawiono przykład tworzenia wizualizacji przy użyciu D3.js.

d3-js-example

Uruchom poniższy kod, aby utworzyć wizualizację powyżej.

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>

"""
)

Biblioteki języka Python

Jeśli chodzi o wizualizację danych, język Python oferuje wiele bibliotek grafów, które są wyposażone w wiele różnych funkcji. Domyślnie każda pula platformy Apache Spark w usłudze Azure Synapse Analytics zawiera zestaw wyselekcjonowanych i popularnych bibliotek typu open source. Możesz również dodawać dodatkowe biblioteki i wersje lub zarządzać nimi przy użyciu funkcji zarządzania bibliotekami usługi Azure Synapse Analytics.

Matplotlib

Możesz renderować standardowe biblioteki kreślenia, takie jak Matplotlib, przy użyciu wbudowanych funkcji renderowania dla każdej biblioteki.

Na poniższej ilustracji przedstawiono przykład tworzenia wykresu słupkowego przy użyciu biblioteki Matplotlib. Przykład grafu liniowego.

Uruchom następujący przykładowy kod, aby narysować powyższy obraz.

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

efekt bokeh

Możesz renderować biblioteki HTML lub interaktywne, takie jak bokeh, przy użyciu polecenia displayHTML(df).

Na poniższej ilustracji przedstawiono przykład kreślenia glifów na mapie przy użyciu bokeh.

bokeh-example

Uruchom następujący przykładowy kod, aby narysować powyższy obraz.

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

Możesz renderować biblioteki HTML lub interaktywne, takie jak Plotly, przy użyciu funkcji displayHTML().

Uruchom następujący przykładowy kod, aby narysować poniższy obraz.

plotly-example

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

Możesz wyświetlić dane wyjściowe HTML ramki danych pandas jako domyślne wyjście. Notatnik automatycznie pokaże stylizowaną zawartość HTML.

Przykład wykresu 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 

Dodatkowe biblioteki

Poza tymi bibliotekami środowisko uruchomieniowe usługi Azure Synapse Analytics obejmuje również następujący zestaw bibliotek, które są często używane do wizualizacji danych:

Możesz zapoznać się z dokumentacją środowiska uruchomieniowego usługi Azure Synapse Analytics, aby uzyskać najbardziej aktualne informacje o dostępnych bibliotekach i wersjach.

Biblioteki języka R (wersja zapoznawcza)

Ekosystem języka R oferuje wiele bibliotek grafów, które są wyposażone w wiele różnych funkcji. Domyślnie każda pula platformy Apache Spark w usłudze Azure Synapse Analytics zawiera zestaw wyselekcjonowanych i popularnych bibliotek typu open source. Możesz również dodawać dodatkowe biblioteki i wersje lub zarządzać nimi przy użyciu funkcji zarządzania bibliotekami usługi Azure Synapse Analytics.

ggplot2

Biblioteka ggplot2 jest popularna w przypadku wizualizacji danych i eksploracyjnej analizy danych.

Zrzut ekranu przedstawiający przykład wykresu 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 to natywna biblioteka kreślenia języka R służąca do tworzenia interaktywnej grafiki, która jest wspierana przez bibliotekę wizualizacji Bokeh.

Aby zainstalować rBokeh, możesz użyć następującego polecenia:

install.packages("rbokeh")

Po zainstalowaniu możesz użyć elementu rBokeh, aby utworzyć interaktywne wizualizacje.

Zrzut ekranu przedstawiający przykład wykresu 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

Biblioteka do rysowania wykresów w R od Plotly tworzy interaktywne, wykresy o jakości publikacyjnej.

Aby zainstalować program Plotly, możesz użyć następującego polecenia:

install.packages("plotly")

Po zainstalowaniu możesz użyć funkcji Plotly do tworzenia interaktywnych wizualizacji.

Zrzut ekranu przedstawiający przykład wykresu 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 to nakładka języka R na bibliotekę Highcharts JavaScript i jej moduły.

Aby zainstalować aplikację Highcharter, możesz użyć następującego polecenia:

install.packages("highcharter")

Po zainstalowaniu możesz użyć narzędzia Highcharter do tworzenia interaktywnych wizualizacji.

Zrzut ekranu przedstawiający przykład wykresu Highcharter.

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

Nawiązywanie połączenia z usługą Power BI przy użyciu platformy Apache Spark i bazy danych SQL na żądanie

Usługa Azure Synapse Analytics integruje się głęboko z usługą Power BI, umożliwiając inżynierom danych tworzenie rozwiązań analitycznych.

Usługa Azure Synapse Analytics umożliwia różnym aparatom obliczeniowym obszaru roboczego udostępnianie baz danych i tabel między pulami platformy Spark i bezserwerową pulą SQL. Korzystając z modelu udostępnionych metadanych, możesz wykonywać zapytania dotyczące tabel platformy Apache Spark przy użyciu języka SQL na żądanie. Po zakończeniu możesz połączyć punkt końcowy SQL na żądanie z usługą Power BI, aby łatwo wykonywać zapytania dotyczące zsynchronizowanych tabel platformy Spark.

Następne kroki