Microsoft Fabric'te not defteri görselleştirmesi

Microsoft Fabric, veri ambarları ve büyük veri analizi sistemleri arasında içgörü elde etme süresini hızlandıran tümleşik bir analiz hizmetidir. Not defterlerindeki veri görselleştirme, verileriniz hakkında içgörü elde etmenizi sağlayan önemli bir bileşendir. Büyük ve küçük verilerin insanların anlamasını kolaylaştırmaya yardımcı olur. Ayrıca veri gruplarındaki desenleri, eğilimleri ve aykırı değerleri algılamayı kolaylaştırır.

Apache Spark'ı Doku'da kullandığınızda, Doku not defteri grafik seçenekleri ve popüler açık kaynak kitaplıklarına erişim dahil olmak üzere verilerinizi görselleştirmenize yardımcı olacak çeşitli yerleşik seçenekler vardır.

Doku not defteri kullanırken, grafik seçeneklerini kullanarak tablosal sonuçlar görünümünüzü özelleştirilmiş bir grafiğe dönüştürebilirsiniz. Burada, herhangi bir kod yazmak zorunda kalmadan verilerinizi görselleştirebilirsiniz.

Yerleşik görselleştirme komutu - display() işlevi

Doku yerleşik görselleştirme işlevi Apache Spark DataFrames, Pandas DataFrames ve SQL sorgu sonuçlarını zengin biçimli veri görselleştirmelerine dönüştürmenizi sağlar.

Zengin veri çerçevesi tablo görünümünü ve grafik görünümünü oluşturmak için Spark DataFrames veya Dayanıklı Dağıtılmış Veri Kümeleri (RDD) işlevlerinde PySpark ve Scala'da oluşturulan veri çerçevelerinde görüntüleme işlevini kullanabilirsiniz.

SQL deyiminin çıkışı varsayılan olarak işlenen tablo görünümünde görünür.

Zengin veri çerçevesi tablo görünümü

Zengin veri çerçevesi önizlemesinin animasyonlu GIF'i.

  1. Tablo görünümü, display() komutu kullanılırken varsayılan olarak işlenir.
  2. İncele düğmesine tıklayarak veri çerçevenizin profilini oluşturabilirsiniz. Özetlenmiş veri dağılımını sağlar ve her sütunun istatistiklerini gösterir.
  3. "İncele" yan bölmesindeki her kart, veri çerçevesinin bir sütununa eşlenir; karta tıklayarak veya tabloda bir sütun seçerek daha fazla ayrıntı görüntüleyebilirsiniz.
  4. Tablonun hücresine tıklayarak hücre ayrıntılarını görüntüleyebilirsiniz. Bu, veri çerçevesi uzun dize türü içeriği içerdiğinde kullanışlıdır.
  5. Bir veri çerçevesinin en fazla 10000 satırını görüntülemek ve profili oluşturmak için tablo görünümünün satır sayısını, varsayılan değer 1000,Not defteri desteğini belirtebilirsiniz.

Zengin veri çerçevesi grafik görünümü

Grafik görünümünün animasyonlu GIF'i.

  1. İşlenmiş bir tablo görünümünüz olduğunda Grafik görünümüne geçin.

  2. Doku not defteri, varsayılan grafiğin veri içgörüleriyle açıklayıcı olması için hedef veri çerçevesine dayalı olarak otomatik olarak bir "Anahtar" "Değer" çifti önerir.

  3. Artık aşağıdaki değerleri belirterek görselleştirmenizi özelleştirebilirsiniz:

    Yapılandırma Açıklama
    Grafik türü Görüntüleme işlevi çubuk grafikler, dağılım grafikleri, çizgi grafikler ve daha fazlası dahil olmak üzere çok çeşitli grafik türlerini destekler.
    Anahtar x ekseni için değer aralığını belirtin.
    Değer Y ekseni değerleri için değer aralığını belirtin.
    Seri grubu Toplama gruplarını belirlemek için bu yapılandırmayı kullanın.
    Toplama Görselleştirmenizdeki verileri toplamak için bu yöntemi kullanın.

    yapılandırmaları Not Defteri çıkış içeriğine otomatik olarak kaydedilir.

    Not

    Varsayılan olarak display(df) işlevi grafikleri işlemek için verilerin yalnızca ilk 1000 satırını alır. Tüm sonuçlarda Toplama'yı seçin ve ardından tüm anlamsal modelden grafik oluşturma işlemini uygulamak için Uygula'yı seçin. Grafik ayarı değiştiğinde bir Spark işi tetiklenir. Hesaplamanın tamamlanmasının ve grafiğin işlenmesinin birkaç dakika sürebileceğini lütfen unutmayın.

  4. İş tamamlandığında, son görselleştirmenizi görüntüleyebilir ve bunlarla etkileşim kurabilirsiniz.

display(df) özet görünümü

Belirli bir Apache Spark DataFrame'in istatistik özetini denetlemek için display(df, summary = true) kullanın. Özet sütun adını, sütun türünü, benzersiz değerleri ve her sütun için eksik değerleri içerir. Ayrıca, en düşük değerini, maksimum değerini, ortalama değerini ve standart sapması görmek için belirli bir sütunu seçebilirsiniz.

Özet görünümünün animasyonlu GIF'i.

displayHTML() seçeneği

Doku not defterleri, displayHTML işlevini kullanarak HTML grafiklerini destekler.

Aşağıdaki görüntü, D3.js kullanarak görselleştirme oluşturma örneğidir.

D3.js kullanılarak oluşturulan bir grafik örneğinin ekran görüntüsü.

Bu görselleştirmeyi oluşturmak için aşağıdaki kodu çalıştırın.

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>

"""
)

Not defterine Power BI raporu ekleme

Önemli

Bu özellik şu anda ÖNİzLEME aşamasındadır. Bu bilgiler, yayımlanmadan önce önemli ölçüde değiştirilebilen yayın öncesi bir ürünle ilgilidir. Microsoft, burada sağlanan bilgilerle ilgili olarak açık veya zımni hiçbir garanti vermez.

Powerbiclient Python paketi artık Doku not defterlerinde yerel olarak desteklenmektedir. Doku not defteri Spark çalışma zamanı 3.4'te ek kurulum (kimlik doğrulama işlemi gibi) yapmanız gerekmez. İçeri aktarmanız powerbiclient ve keşfetmeye devam edin. powerbiclient paketini kullanma hakkında daha fazla bilgi edinmek için powerbiclient belgelerine bakın.

Powerbiclient aşağıdaki temel özellikleri destekler.

Mevcut bir Power BI raporunu işleme

Power BI raporlarını not defterlerinize yalnızca birkaç satır kodla kolayca ekleyebilir ve bunlarla etkileşim kurabilirsiniz.

Aşağıdaki görüntü, mevcut Power BI raporunu işlemeye yönelik bir örnektir.

Spark hızlı görselinin ekran görüntüsü.

Mevcut bir Power BI raporunu işlemek için aşağıdaki kodu çalıştırın.

from powerbiclient import Report

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

report

Spark DataFrame'den rapor görselleri oluşturma

Hızlı bir şekilde içgörülü görselleştirmeler oluşturmak için not defterinizde bir Spark DataFrame kullanabilirsiniz. Hedef çalışma alanında rapor öğesi oluşturmak için eklenmiş raporda Kaydet'i de seçebilirsiniz.

Aşağıdaki görüntü, Spark DataFrame'den QuickVisualize() alınan bir örnektir.

Power BI raporunun ekran görüntüsü.

Spark DataFrame'den rapor işlemek için aşağıdaki kodu çalıştırın.

# 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 DataFrame'den rapor görselleri oluşturma

Not defterindeki pandas DataFrame'i temel alan raporlar da oluşturabilirsiniz.

Aşağıdaki görüntüde pandas DataFrame'den alınan bir QuickVisualize() örnek verilmiştir.

Pandas hızlı görselinin ekran görüntüsü.

Spark DataFrame'den rapor işlemek için aşağıdaki kodu çalıştırın.

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

Veri görselleştirme söz konusu olduğunda, Python birçok farklı özellik içeren birden çok grafik kitaplığı sunar. Varsayılan olarak, Doku'daki her Apache Spark havuzu bir dizi seçilmiş ve popüler açık kaynak kitaplık içerir.

Matplotlib

Her kitaplık için yerleşik işleme işlevlerini kullanarak Matplotlib gibi standart çizim kitaplıklarını işleyebilirsiniz.

Aşağıdaki görüntüde Matplotlib kullanarak çubuk grafik oluşturma örneği verilmiştir.

Matplotlib ile oluşturulan çizgi grafiğin ekran görüntüsü.

Matplotlib ile oluşturulan çubuk grafiğin ekran görüntüsü.

Bu çubuk grafiği çizmek için aşağıdaki örnek kodu çalıştırın.

# 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

displayHTML(df) kullanarak bokeh gibi HTML veya etkileşimli kitaplıkları işleyebilirsiniz.

Aşağıdaki görüntüde bokeh kullanarak harita üzerinde glif çizme örneği verilmiştir.

Harita üzerinde glif çizme örneğinin ekran görüntüsü.

Bu görüntüyü çizmek için aşağıdaki örnek kodu çalıştırın.

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

displayHTML() kullanarak Plotly gibi HTML veya etkileşimli kitaplıkları işleyebilirsiniz.

Bu görüntüyü çizmek için aşağıdaki örnek kodu çalıştırın.

Çizimle oluşturulan Birleşik Devletler haritasının ekran görüntüsü.

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)

Pandalar

Pandas DataFrames'in HTML çıkışını varsayılan çıkış olarak görüntüleyebilirsiniz. Doku not defterleri stillenmiş HTML içeriğini otomatik olarak gösterir.

Pandas ile oluşturulan bir tablonun ekran görüntüsü.

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