Delen via


Gegevens visualiseren

Azure Synapse is een geïntegreerde analyseservice waarmee u sneller inzicht krijgt in datawarehouses en big data-analysesystemen. Gegevensvisualisatie is een belangrijk onderdeel om inzicht te krijgen in uw gegevens. Het helpt grote en kleine gegevens gemakkelijker te begrijpen voor mensen. Het maakt het ook gemakkelijker om patronen, trends en uitbijters in groepen gegevens te detecteren.

Wanneer u Apache Spark in Azure Synapse Analytics gebruikt, zijn er verschillende ingebouwde opties waarmee u uw gegevens kunt visualiseren, waaronder opties voor synapse-notebookgrafieken, toegang tot populaire opensource-bibliotheken en integratie met Synapse SQL en Power BI.

Grafiekopties voor notitieblokken

Wanneer u een Azure Synapse-notebook gebruikt, kunt u de weergave met tabellaire resultaten omzetten in een aangepaste grafiek met behulp van grafiekopties. Hier kunt u uw gegevens visualiseren zonder dat u code hoeft te schrijven.

display(df) functie

Met de display functie kunt u SQL-query's en Apache Spark-gegevensframes en RDD's omzetten in uitgebreide gegevensvisualisaties. De display functie kan worden gebruikt voor dataframes of RDD's die zijn gemaakt in PySpark, Scala, Java, R en .NET.

Ga als volgende te werk om toegang te krijgen tot de grafiekopties:

  1. De uitvoer van %%sql magic-opdrachten wordt standaard weergegeven in de weergegeven tabelweergave. U kunt ook de functie Spark DataFrames of Resilient Distributed Datasets (RDD) aanroepen display(df) om de gerenderde tabelweergave te produceren.

  2. Zodra u een gerenderde tabelweergave hebt, schakelt u over naar de grafiekweergave. built-in-charts

  3. U kunt uw visualisatie nu aanpassen door de volgende waarden op te geven:

    Configuratie Beschrijving
    Grafiektype De display functie ondersteunt een breed scala aan grafiektypen, waaronder staafdiagrammen, spreidingsdiagrammen, lijndiagrammen en meer
    Key Het bereik van waarden voor de x-as opgeven
    Weergegeven als Geef het bereik van waarden op voor de y-aswaarden
    Reeksgroep Wordt gebruikt om de groepen voor de aggregatie te bepalen
    Statistische functie Methode voor het aggregeren van gegevens in uw visualisatie

    Notitie

    De functie neemt standaard display(df) alleen de eerste 1000 rijen van de gegevens om de grafieken weer te geven. Controleer de aggregatie over alle resultaten en klik op de knop Toepassen . U past de grafiekgeneratie van de hele gegevensset toe. Er wordt een Spark-taak geactiveerd wanneer de grafiekinstelling wordt gewijzigd. Houd er rekening mee dat het enkele minuten kan duren om de berekening te voltooien en de grafiek weer te geven.

  4. Als u klaar bent, kunt u uw uiteindelijke visualisatie bekijken en ermee werken.

details van de statistic display(df)

U kunt display(df, summary = true) de statistiekensamenvatting van een bepaald Apache Spark-dataframe controleren dat de kolomnaam, het kolomtype, de unieke waarden en ontbrekende waarden voor elke kolom bevat. U kunt ook een specifieke kolom selecteren om de minimumwaarde, maximumwaarde, gemiddelde waarde en standaarddeviatie te bekijken. built-in-charts-summary

optie displayHTML()

Azure Synapse Analytics-notebooks ondersteunen HTML-afbeeldingen met behulp van de displayHTML functie.

De volgende afbeelding is een voorbeeld van het maken van visualisaties met behulp van D3.js.

d3-js-example

Voer de volgende code uit om de bovenstaande visualisatie te maken.

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-bibliotheken

Als het gaat om gegevensvisualisatie, biedt Python meerdere grafiekbibliotheken die zijn voorzien van veel verschillende functies. Standaard bevat elke Apache Spark-pool in Azure Synapse Analytics een set gecureerde en populaire opensource-bibliotheken. U kunt ook extra bibliotheken en versies toevoegen of beheren met behulp van de beheermogelijkheden van de Azure Synapse Analytics-bibliotheek.

Matplotlib

U kunt standaardplotbibliotheken, zoals Matplotlib, weergeven met behulp van de ingebouwde renderingfuncties voor elke bibliotheek.

De volgende afbeelding is een voorbeeld van het maken van een staafdiagram met matplotlib. Line graph example.

Voer de volgende voorbeeldcode uit om de bovenstaande afbeelding te tekenen.

# 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

U kunt HTML- of interactieve bibliotheken, zoals office, weergeven met behulp van de displayHTML(df).

In de volgende afbeelding ziet u een voorbeeld van het tekenen van glyphs over een kaart met behulp van een failover.

bokeh-example

Voer de volgende voorbeeldcode uit om de bovenstaande afbeelding te tekenen.

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

U kunt HTML- of interactieve bibliotheken, zoals Plotly, weergeven met behulp van de displayHTML().

Voer de volgende voorbeeldcode uit om de onderstaande afbeelding te tekenen.

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

U kunt html-uitvoer van pandas-dataframe weergeven als de standaarduitvoer. In het notebook wordt automatisch de html-inhoud met stijl weergegeven.

Panda graph example.

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 

Aanvullende bibliotheken

Naast deze bibliotheken bevat de Azure Synapse Analytics Runtime ook de volgende set bibliotheken die vaak worden gebruikt voor gegevensvisualisatie:

U kunt de documentatie van Azure Synapse Analytics Runtime raadplegen voor de meest recente informatie over de beschikbare bibliotheken en versies.

R-bibliotheken (preview)

Het R-ecosysteem biedt meerdere grafiekbibliotheken die zijn verpakt met veel verschillende functies. Standaard bevat elke Apache Spark-pool in Azure Synapse Analytics een set gecureerde en populaire opensource-bibliotheken. U kunt ook extra bibliotheken en versies toevoegen of beheren met behulp van de beheermogelijkheden van de Azure Synapse Analytics-bibliotheek.

ggplot2

De ggplot2-bibliotheek is populair voor gegevensvisualisatie en verkennende gegevensanalyse.

Screenshot of a ggplot2 graph example.

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 is een systeemeigen R-plottingbibliotheek voor het maken van interactieve afbeeldingen die worden ondersteund door de Visualisatiebibliotheek Van Azure.

Als u rBokeh wilt installeren, kunt u de volgende opdracht gebruiken:

install.packages("rbokeh")

Zodra deze is geïnstalleerd, kunt u rBokeh gebruiken om interactieve visualisaties te maken.

Screenshot of a rBokeh graph example.

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

R Plotly

De R-grafiekbibliotheek van Plotly maakt interactieve grafieken van publicatiekwaliteit.

Als u Plotly wilt installeren, kunt u de volgende opdracht gebruiken:

install.packages("plotly")

Nadat de installatie is uitgevoerd, kunt u Plotly gebruiken om interactieve visualisaties te maken.

Screenshot of a Plotly graph example.

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 is een R-wrapper voor de JavaScript-bibliotheek met hoge grafieken en de bijbehorende modules.

Als u Highcharter wilt installeren, kunt u de volgende opdracht gebruiken:

install.packages("highcharter")

Zodra deze is geïnstalleerd, kunt u Highcharter gebruiken om interactieve visualisaties te maken.

Screenshot of a Highcharter graph example.

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

Verbinding maken naar Power BI met behulp van Apache Spark & SQL On-Demand

Azure Synapse Analytics integreert diep met Power BI, zodat data engineers analyseoplossingen kunnen bouwen.

Met Azure Synapse Analytics kunnen de verschillende rekenkundige engines van de werkruimte databases en tabellen delen tussen de Spark-pools en de serverloze SQL-pool. Met behulp van het gedeelde metagegevensmodel kunt u query's uitvoeren op uw Apache Spark-tabellen met behulp van SQL on-demand. Zodra u klaar bent, kunt u uw SQL on-demand-eindpunt verbinden met Power BI om eenvoudig query's uit te voeren op uw gesynchroniseerde Spark-tabellen.

Volgende stappen