Aracılığıyla paylaş


Microsoft Fabric'te not defteri görselleştirmesi

Microsoft Fabric, veri ambarları ve büyük veri 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, verilerinizin içgörülerini elde etmenizi ve kullanıcıların desenleri, eğilimleri ve aykırı değerleri kolayca tanımlamasına yardımcı olan önemli bir özelliktir.

Doku'da Apache Spark ile çalışırken, Doku not defteri grafiği özellikleri ve popüler açık kaynak kitaplıklara erişim de dahil olmak üzere verileri görselleştirmek için yerleşik seçenekleriniz vardır.

Doku not defterleri ayrıca tablosal sonuçları kod yazmadan özelleştirilmiş grafiklere dönüştürmenize olanak tanıyarak daha sezgisel ve sorunsuz bir veri araştırma deneyimi sağlar.

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, etkileşimli veri görselleştirmelerine dönüştürmenizi sağlar.

Görüntüleme işlevini kullanarak PySpark ve Scala Spark Veri Çerçevelerini veya Dayanıklı Dağıtılmış Veri Kümelerini (RDD) dinamik tablolar veya grafikler olarak işleyebilirsiniz.

İşlenen veri çerçevesinin satır sayısını belirtebilirsiniz. Varsayılan değer 1000değeridir. Not defteri görüntüleme çıkış pencere öğesi, bir veri çerçevesinin en fazla 10000 satırını görüntülemeyi ve profillemeyi destekler.

Aralık belirtme örneğinin ekran görüntüsü.

Verilerinize özelleştirilmiş kurallar uygulamak için genel araç çubuğundaki filtre işlevini kullanabilirsiniz. Filtre koşulu belirtilen sütuna uygulanır ve sonuçlar hem tablo hem de grafik görünümlerine yansıtılır.

Sütunları özelleştirme örneğinin ekran görüntüsü.

SQL deyiminin çıkışı, varsayılan olarak display() ile aynı çıkış pencere öğesini kullanır.

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

Tablo görünümünde ücretsiz seçim desteği

Varsayılan olarak, Tablo Görünümü, bir Fabric not defterinde display() komutu kullanıldığında otomatik olarak işlenir. Zengin veri çerçevesi önizlemesi, esnek, etkileşimli seçim seçeneklerini etkinleştirerek veri analizi deneyimini geliştirmek için tasarlanmış sezgisel bir ücretsiz seçim işlevi sunar. Bu özellik kullanıcıların veri çerçevelerinde kolayca verimli bir şekilde gezinmesine ve bunları keşfetmesine olanak tanır.

  • Sütun seçimi

    • Tek sütun: Sütunun tamamını seçmek için sütun başlığına tıklayın.
    • Birden çok sütun: Tek bir sütun seçtikten sonra ,'Shift' tuşuna basılı tutun, sonra birden çok sütun seçmek için başka bir sütun üst bilgisine tıklayın.
  • Satır seçimi

    • Tek satır: Satırın tamamını seçmek için bir satır üst bilgisine tıklayın.
    • Birden çok satır: Tek bir satır seçtikten sonra , 'Shift' tuşuna basılı tutun ve birden çok satır seçmek için başka bir satır üst bilgisine tıklayın.
  • Hücre içeriği önizlemesi: Ek kod yazmaya gerek kalmadan verilere hızlı ve ayrıntılı bir bakış elde etmek için tek tek hücrelerin içeriğinin önizlemesini görüntüleyin.

  • Sütun özeti: Verilerin özelliklerini hızla anlamak için veri dağıtımı ve önemli istatistikler de dahil olmak üzere her sütunun özetini alın.

  • Boş alan seçimi: Seçili toplam hücreye ve seçili alandaki sayısal değerlere genel bir bakış elde etmek için tablonun herhangi bir sürekli kesimini seçin.

  • Seçili İçeriği Kopyalama: Tüm seçim durumlarında, 'Ctrl + C' kısayolunu kullanarak seçili içeriği hızla kopyalayabilirsiniz. Seçilen veriler CSV biçiminde kopyalanır ve bu da diğer uygulamalarda işlenmesini kolaylaştırır.

    Ücretsiz seçim desteğinin animasyonlu GIF'i.

İnceleme bölmesi aracılığıyla veri profili oluşturma desteği

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

  1. İ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.

  2. "İ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.

  3. Tablonun hücresine tıklayarak hücre ayrıntılarını görüntüleyebilirsiniz. Bu özellik, veri çerçevesi uzun dize türü içeriği içerdiğinde kullanışlıdır.

Gelişmiş Zengin Veri Çerçevesi Grafik Görünümü

display() komutundaki geliştirilmiş grafik görünümü, verilerinizi görselleştirmek için daha sezgisel ve dinamik bir yol sunar.

Önemli Geliştirmeler:

  1. Çoklu Grafik Desteği: Yeni Grafik'i seçerek tek bir display() çıkış pencere öğesi içinde beş adede kadar grafik ekleyin ve farklı sütunlarda kolay karşılaştırmalar yapın.

  2. Akıllı Grafik Önerileri: DataFrame'inize göre önerilen grafiklerin listesini alın. Önerilen bir görselleştirmeyi düzenlemeyi veya sıfırdan özel grafik oluşturmayı seçin.

Önerilen grafiklerin animasyonlu GIF'i.

  1. Esnek Özelleştirme: Seçili grafik türüne göre uyarlanan ayarlanabilir ayarlarla görselleştirmelerinizi kişiselleştirin.

    Kategori Temel ayarlar Açıklama
    Grafik türü Görüntüleme işlevi çubuk grafikler, dağılım grafikleri, çizgi grafikler, özet tablo ve daha fazlası dahil olmak üzere çok çeşitli grafik türlerini destekler.
    Başlık Başlık Grafiğin başlığı.
    Başlık Alt yazı Daha fazla açıklama içeren grafiğin alt başlığı.
    Veri X-ekseni Grafiğin anahtarını belirtin.
    Veri Y ekseni Grafiğin değerlerini belirtin.
    Efsane Lejantı Göster Göstergeyi etkinleştirin/devre dışı bırakın.
    Efsane Pozisyon Göstergenin konumunu özelleştirin.
    Diğer Seri grubu Toplama gruplarını belirlemek için bu yapılandırmayı kullanın.
    Diğer Toplama Görselleştirmenizdeki verileri toplamak için bu yöntemi kullanın.
    Diğer Üst üste Sonucun görüntüleme stilini yapılandırın.
    Diğer Eksik ve NULL değerler Eksik veya NULL grafik değerlerinin nasıl görüntüleneceğini yapılandırın.

    Uyarı

    Ayrıca, varsayılan olarak 1.000 ayarıyla görüntülenen satır sayısını belirtebilirsiniz. not defteri ekran çıktı widget'ı, bir DataFrame'in en çok 10.000 satırını görüntülemeyi ve profil oluşturmayı destekler. Tüm sonuçlarda Toplama'yı seçin ve ardından tüm veri çerçevesinden grafik oluşturmayı uygulamak için Uygula'yı seçin. Grafik ayarı değiştiğinde bir Spark işi tetikleniyor. Hesaplamanın tamamlanması ve grafiğin işlenmesi birkaç dakika sürebilir.

    Kategori Gelişmiş ayarlar Açıklama
    Renk Tema Grafiğin tema renk kümesini tanımlayın.
    X-ekseni Etiket X eksenine bir etiket belirtin.
    X-ekseni Ölçek X ekseninin ölçek işlevini belirtin.
    X-ekseni Aralık X ekseni değer aralığını belirtin.
    Y ekseni Etiket Y eksenine bir etiket belirtin.
    Y ekseni Ölçek Y ekseninin ölçek işlevini belirtin.
    Y ekseni Aralık Y ekseni değer aralığını belirtin.
    Görüntüle Etiketleri göster Grafikte sonuç etiketlerini gösterin/gizleyin.

    Yapılandırma değişiklikleri hemen geçerli olur ve tüm yapılandırmalar not defteri içeriğinde otomatik olarak kaydedilir.

    Grafikleri yapılandırma örneğinin ekran görüntüsü.

  2. Grafik sekmesi menüsünde grafikleri kolayca yeniden adlandırabilir, çoğaltabilir, silebilir veya taşıyabilirsiniz . Sekmeleri yeniden sıralamak için sürükleyip bırakabilirsiniz. Not defteri açıldığında ilk sekme varsayılan olarak görüntülenir.

    İşletim grafikleri örneğinin ekran görüntüsü.

  3. Kullanıcı bir grafiğin üzerine geldiğinde yeni grafik deneyiminde etkileşimli bir araç çubuğu kullanılabilir. Yakınlaştırma, uzaklaştırma, seçerek yakınlaştırma, sıfırlama, kaydırma, ek açıklama düzenleme ve benzeri işlemleri destekler.

    Grafik araç çubuğu örneğinin ekran görüntüsü.

    İşte grafik açıklaması için bir örnek.

    Bir grafik açıklaması örneğinin ekran görüntüsü.

display() ö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

Fabric defterleri, HTML grafiklerini displayHTML işlevini kullanarak 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 önizleme aşamasındadır.

Powerbiclient Python paketi artık Doku not defterlerinde yerel olarak desteklenmektedir. Fabric not defteri Spark Runtime 3.4'te ek bir kurulum (kimlik doğrulama işlemi gibi) yapmanız gerekmez. powerbiclient içeri aktarın ve sonra 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.

Power BI raporunu işlemeye ilişkin spark 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 bir 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.

Bir veri çerçevesinin 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 veri çerçevesinin raporunun 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, Fabric'deki her Apache Spark havuzu seçilmiş ve popüler bir dizi 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 (fotoğrafta bulanık arka plan efekti)

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)

Çizim

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.

Plotly ile oluşturulan Amerika Birleşik Devletleri 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