Bagikan melalui


Memplot histogram di Python

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Artikel ini menjelaskan cara memplot data menggunakan paket Python pandas'.hist(). Database SQL adalah sumber yang digunakan untuk memvisualisasikan interval data histogram yang memiliki nilai berturut-turut dan tidak tumpang tindih.

Prasyarat

Memverifikasi database yang dipulihkan

Anda bisa memverifikasi bahwa database yang dipulihkan ada dengan mengkueri tabel Person.CountryRegion :

USE AdventureWorksDW;
SELECT * FROM Person.CountryRegion;

Memasang paket Python

Unduh dan Instal Azure Data Studio.

Instal paket Python berikut:

  • pyodbc
  • pandas
  • sqlalchemy
  • matplotlib

Untuk menginstal paket ini:

  1. Di buku catatan Azure Data Studio Anda, pilih Kelola Paket.
  2. Di panel Kelola Paket , pilih tab Tambahkan baru .
  3. Untuk setiap paket berikut, masukkan nama paket, pilih Cari, lalu pilih Instal.

Plot histogram

Data terdistribusi yang ditampilkan dalam histogram didasarkan pada kueri SQL dari AdventureWorksDW2022. Histogram memvisualisasikan data dan frekuensi nilai data.

Edit variabel string koneksi: 'server', 'database', 'nama pengguna', dan 'kata sandi' untuk menyambungkan ke database SQL Server.

Untuk membuat buku catatan baru:

  1. Di Azure Data Studio, pilih File, pilih Buku Catatan Baru.
  2. Di notebook, pilih kernel Python3, pilih +code.
  3. Tempel kode di buku catatan, pilih Jalankan Semua.
import pyodbc 
import pandas as pd
import matplotlib
import sqlalchemy

from sqlalchemy import create_engine

matplotlib.use('TkAgg', force=True)
from matplotlib import pyplot as plt

# Some other example server values are
# server = 'localhost\sqlexpress' # for a named instance
# server = 'myserver,port' # to specify an alternate port
server = 'servername'
database = 'AdventureWorksDW2022'
username = 'yourusername'
password = 'databasename'

url = 'mssql+pyodbc://{user}:{passwd}@{host}:{port}/{db}?driver=SQL+Server'.format(user=username, passwd=password, host=server, port=port, db=database)
engine = create_engine(url)

sql = "SELECT DATEDIFF(year, c.BirthDate, GETDATE()) AS Age FROM [dbo].[FactInternetSales] s INNER JOIN dbo.DimCustomer c ON s.CustomerKey = c.CustomerKey"

df = pd.read_sql(sql, engine)
df.hist(bins=50)

plt.show()

Tampilan menunjukkan distribusi usia pelanggan dalam FactInternetSales tabel.

Diagram memperlihatkan distribusi histogram Pandas.