Dela via


Visualisera data

Azure Synapse är en integrerad analystjänst som påskyndar tiden till insikter i informationslager och stordataanalyssystem. Datavisualisering är en viktig komponent för att kunna få insikter om dina data. Det hjälper till att göra stora och små data enklare för människor att förstå. Det gör det också enklare att identifiera mönster, trender och extremvärden i grupper av data.

När du använder Apache Spark i Azure Synapse Analytics finns det olika inbyggda alternativ som hjälper dig att visualisera dina data, inklusive synapse-diagramalternativ för notebook-filer, åtkomst till populära bibliotek med öppen källkod och integrering med Synapse SQL och Power BI.

Alternativ för notebook-diagram

När du använder en Azure Synapse-anteckningsbok kan du omvandla tabellresultatvyn till ett anpassat diagram med hjälp av diagramalternativ. Här kan du visualisera dina data utan att behöva skriva någon kod.

display(df)-funktion

Med display funktionen kan du omvandla SQL-frågor och Apache Spark-dataramar och RDD:er till omfattande datavisualiseringar. Funktionen display kan användas på dataramar eller RDD:er som skapats i PySpark, Scala, Java, R och .NET.

Så här kommer du åt diagramalternativen:

  1. Utdata från %%sql magiska kommandon visas som standard i den renderade tabellvyn. Du kan också anropa display(df) funktionen Spark DataFrames eller Resilient Distributed Datasets (RDD) för att skapa den renderade tabellvyn.

  2. När du har en renderad tabellvy växlar du till diagramvyn. built-in-charts

  3. Nu kan du anpassa visualiseringen genom att ange följande värden:

    Konfiguration beskrivning
    Diagramtyp Funktionen display stöder ett brett spektrum av diagramtyper, inklusive stapeldiagram, punktdiagram, linjediagram med mera
    Key Ange värdeintervallet för x-axeln
    Värde Ange värdeintervallet för y-axelns värden
    Seriegrupp Används för att fastställa grupperna för aggregeringen
    Aggregering Metod för att aggregera data i visualiseringen

    Kommentar

    Som standard display(df) tar funktionen bara de första 1 000 raderna av data för att återge diagrammen. Kontrollera Aggregation över alla resultat och klicka på knappen Tillämpa. Du använder diagramgenereringen från hela datamängden. Ett Spark-jobb utlöses när diagraminställningen ändras. Observera att det kan ta flera minuter att slutföra beräkningen och återge diagrammet.

  4. När du är klar kan du visa och interagera med din slutliga visualisering!

display(df) statistikinformation

Du kan använda display(df, summary = true) för att kontrollera statistiksammanfattningen för en viss Apache Spark DataFrame som innehåller kolumnnamnet, kolumntypen, unika värden och saknade värden för varje kolumn. Du kan också välja i en specifik kolumn för att se dess minsta värde, högsta värde, medelvärde och standardavvikelse. built-in-charts-summary

displayHTML()-alternativ

Azure Synapse Analytics-notebook-filer stöder HTML-grafik med hjälp av displayHTML funktionen.

Följande bild är ett exempel på hur du skapar visualiseringar med D3.js.

d3-js-example

Kör följande kod för att skapa visualiseringen ovan.

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

När det gäller datavisualisering erbjuder Python flera grafbibliotek som är fyllda med många olika funktioner. Som standard innehåller varje Apache Spark-pool i Azure Synapse Analytics en uppsättning kuraterade och populära bibliotek med öppen källkod. Du kan också lägga till eller hantera ytterligare bibliotek och versioner med hjälp av bibliotekshanteringsfunktionerna i Azure Synapse Analytics.

Matplotlib

Du kan rendera standardritningsbibliotek, till exempel Matplotlib, med hjälp av de inbyggda återgivningsfunktionerna för varje bibliotek.

Följande bild är ett exempel på hur du skapar ett stapeldiagram med hjälp av Matplotlib. Line graph example.

Kör följande exempelkod för att rita bilden ovan.

# 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

Du kan rendera HTML- eller interaktiva bibliotek, till exempel bokeh, med hjälp av displayHTML(df).

Följande bild är ett exempel på ritning av glyfer över en karta med hjälp av bokeh.

bokeh-example

Kör följande exempelkod för att rita bilden ovan.

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

Du kan rendera HTML- eller interaktiva bibliotek som Plotly med hjälp av displayHTML().

Kör följande exempelkod för att rita bilden nedan.

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)

Pandor

Du kan visa html-utdata från Pandas-dataramen som standardutdata, notebook-filen visar automatiskt det formaterade html-innehållet.

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 

Ytterligare bibliotek

Utöver dessa bibliotek innehåller Azure Synapse Analytics Runtime även följande uppsättning bibliotek som ofta används för datavisualisering:

Du kan gå till Dokumentationen om Azure Synapse Analytics Runtime för den senaste informationen om tillgängliga bibliotek och versioner.

R-bibliotek (förhandsversion)

R-ekosystemet erbjuder flera grafbibliotek som är fullspäckade med många olika funktioner. Som standard innehåller varje Apache Spark-pool i Azure Synapse Analytics en uppsättning kuraterade och populära bibliotek med öppen källkod. Du kan också lägga till eller hantera ytterligare bibliotek och versioner med hjälp av bibliotekshanteringsfunktionerna i Azure Synapse Analytics.

ggplot2

ggplot2-biblioteket är populärt för datavisualisering och undersökande dataanalys.

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 är ett internt R-ritningsbibliotek för att skapa interaktiv grafik som backas upp av Bokeh-visualiseringsbiblioteket.

Om du vill installera rBokeh kan du använda följande kommando:

install.packages("rbokeh")

När du har installerat det kan du använda rBokeh för att skapa interaktiva visualiseringar.

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

Plotlys R-grafbibliotek gör interaktiva grafer av publikationskvalitet.

Om du vill installera Plotly kan du använda följande kommando:

install.packages("plotly")

När du har installerat kan du använda Plotly för att skapa interaktiva visualiseringar.

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

Högdiagram

Highcharter är en R-omslutning för Highcharts JavaScript-bibliotek och dess moduler.

Om du vill installera Highcharter kan du använda följande kommando:

install.packages("highcharter")

När du har installerat kan du använda Highcharter för att skapa interaktiva visualiseringar.

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")

Anslut till Power BI med Apache Spark och SQL på begäran

Azure Synapse Analytics integreras djupt med Power BI så att datatekniker kan skapa analyslösningar.

Med Azure Synapse Analytics kan de olika beräkningsmotorerna för arbetsytor dela databaser och tabeller mellan sina Spark-pooler och en serverlös SQL-pool. Med hjälp av modellen för delade metadata kan du fråga dina Apache Spark-tabeller med sql på begäran. När du är klar kan du ansluta din SQL-slutpunkt på begäran till Power BI för att enkelt köra frågor mot dina synkroniserade Spark-tabeller.

Nästa steg