Sdílet prostřednictvím


Vizualizace dat

Azure Synapse je integrovaná analytická služba, která zrychluje dobu přehledu napříč datovými sklady a systémy pro analýzu velkých objemů dat. Vizualizace dat je klíčovou komponentou, která umožňuje získat přehled o datech. Pomáhá lidem usnadnit pochopení velkých a malých dat. Usnadňuje také zjišťování vzorů, trendů a odlehlých hodnot ve skupinách dat.

Při použití Apache Sparku ve službě Azure Synapse Analytics existují různé integrované možnosti, které vám pomůžou vizualizovat data, včetně možností grafů poznámkového bloku Synapse, přístupu k oblíbeným opensourcovým knihovnám a integraci s Synapse SQL a Power BI.

Možnosti poznámkového grafu

Při použití poznámkového bloku Azure Synapse můžete zobrazení tabulkových výsledků změnit na přizpůsobený graf pomocí možností grafu. Tady můžete vizualizovat data, aniž byste museli psát jakýkoli kód.

display(df)

Tato display funkce umožňuje převést dotazy SQL a datové rámce Apache Sparku a sady RDD na bohaté vizualizace dat. Funkci display lze použít u datových rámců nebo sad RDD vytvořených v PySpark, Scala, Java, R a .NET.

Přístup k možnostem grafu:

  1. Výstup %%sql příkazů magic se ve výchozím nastavení zobrazí v zobrazení vykreslené tabulky. Můžete také volat display(df) funkci Spark DataFrames nebo Odolné distribuované datové sady (RDD), která vytvoří zobrazení vykreslené tabulky.

  2. Jakmile budete mít vykreslené zobrazení tabulky, přepněte do zobrazení grafu. built-in-charts

  3. Teď můžete vizualizaci přizpůsobit zadáním následujících hodnot:

    Konfigurace Popis
    Typ grafu Funkce display podporuje širokou škálu typů grafů, včetně pruhových grafů, bodových grafů, spojnicových grafů a dalších.
    Key Určení rozsahu hodnot pro osu x
    Hodnota Zadejte rozsah hodnot pro hodnoty osy y.
    Skupina řad Slouží k určení skupin pro agregaci.
    Agregace Metoda agregace dat ve vizualizaci

    Poznámka:

    Ve výchozím nastavení display(df) funkce vezme pouze prvních 1 000 řádků dat k vykreslení grafů. Zkontrolujte agregaci u všech výsledků a klikněte na tlačítko Použít. Použijete generování grafu z celé datové sady. Úloha Sparku se aktivuje při změně nastavení grafu. Upozorňujeme, že dokončení výpočtu a vykreslení grafu může trvat několik minut.

  4. Po dokončení můžete zobrazit konečnou vizualizaci a pracovat s ní!

display(df) statistika podrobností

Můžete použít display(df, summary = true) ke kontrole souhrnu statistik daného datového rámce Apache Sparku, který obsahuje název sloupce, typ sloupce, jedinečné hodnoty a chybějící hodnoty pro každý sloupec. Můžete také vybrat konkrétní sloupec a zobrazit jeho minimální hodnotu, maximální hodnotu, střední hodnotu a směrodatnou odchylku. built-in-charts-summary

možnost displayHTML()

Poznámkové bloky Azure Synapse Analytics podporují grafiku displayHTML HTML pomocí funkce.

Následující obrázek je příkladem vytváření vizualizací pomocí D3.js.

d3-js-example

Spuštěním následujícího kódu vytvořte vizualizaci výše.

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>

"""
)

Knihovny pro Python

Pokud jde o vizualizaci dat, Python nabízí několik knihoven grafů, které jsou součástí mnoha různých funkcí. Ve výchozím nastavení každý fond Apache Sparku ve službě Azure Synapse Analytics obsahuje sadu kurátorovaných a oblíbených opensourcových knihoven. Můžete také přidat nebo spravovat další knihovny a verze pomocí možností správy knihoven Azure Synapse Analytics.

Matplotlib

Standardní knihovny vykreslování, jako je Matplotlib, můžete vykreslit pomocí integrovaných vykreslovacích funkcí pro každou knihovnu.

Následující obrázek je příkladem vytvoření pruhového grafu pomocí knihovny Matplotlib. Line graph example.

Spuštěním následujícího ukázkového kódu nakreslete obrázek výše.

# 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

Můžete vykreslit HTML nebo interaktivní knihovny, jako je bokeh, pomocí nástroje displayHTML(df).

Následující obrázek je příkladem vykreslení glyfů přes mapu pomocí bokeh.

bokeh-example

Spuštěním následujícího ukázkového kódu nakreslete obrázek výše.

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

Pomocí displayHTML() můžete vykreslit HTML nebo interaktivní knihovny, jako je Plotly.

Spuštěním následujícího ukázkového kódu nakreslete obrázek níže.

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)

Pandy

Výstup html datového rámce pandas můžete zobrazit jako výchozí výstup, poznámkový blok automaticky zobrazí stylovaný obsah HTML.

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 

Další knihovny

Kromě těchto knihoven zahrnuje modul runtime Azure Synapse Analytics také následující sadu knihoven, které se často používají pro vizualizaci dat:

Nejnovější informace o dostupných knihovnách a verzích najdete v dokumentaci k modulu runtime Azure Synapse Analytics.

Knihovny jazyka R (Preview)

Ekosystém R nabízí několik knihoven grafů, které jsou součástí mnoha různých funkcí. Ve výchozím nastavení každý fond Apache Sparku ve službě Azure Synapse Analytics obsahuje sadu kurátorovaných a oblíbených opensourcových knihoven. Můžete také přidat nebo spravovat další knihovny a verze pomocí možností správy knihoven Azure Synapse Analytics.

ggplot2

Knihovna ggplot2 je oblíbená pro vizualizaci dat a průzkumnou analýzu dat.

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 je nativní knihovna vykreslování jazyka R pro vytváření interaktivních grafik, které jsou podporovány knihovnou vizualizací Bokeh.

K instalaci rBokeh můžete použít následující příkaz:

install.packages("rbokeh")

Po instalaci můžete pomocí rBokeh vytvářet interaktivní vizualizace.

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

Knihovna grafů V Plotly vytváří interaktivní grafy v kvalitě publikace.

K instalaci Plotly můžete použít následující příkaz:

install.packages("plotly")

Po instalaci můžete pomocí Plotly vytvářet interaktivní vizualizace.

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

Vysoká znaména

Highcharter je obálka R pro javascriptovou knihovnu Highcharts a její moduly.

K instalaci Highcharteru můžete použít následující příkaz:

install.packages("highcharter")

Po instalaci můžete pomocí Highcharteru vytvářet interaktivní vizualizace.

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

Připojení do Power BI pomocí Apache Sparku a SQL na vyžádání

Azure Synapse Analytics se hluboce integruje s Power BI, což datovým inženýrům umožňuje vytvářet analytická řešení.

Azure Synapse Analytics umožňuje různým výpočetním modulům pracovního prostoru sdílet databáze a tabulky mezi fondy Sparku a bezserverovým fondem SQL. Pomocí modelu sdílených metadat můžete dotazovat tabulky Apache Sparku pomocí SQL na vyžádání. Po dokončení můžete ke službě Power BI připojit koncový bod SQL na vyžádání, abyste mohli snadno dotazovat synchronizované tabulky Sparku.

Další kroky