Création d’histogrammes en Python

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Cet article explique comment représenter des données sous forme graphique à l’aide du package Python Pandas hist(). Une base de données SQL est la source utilisée pour visualiser les intervalles de données d’histogramme dont les valeurs sont consécutives et ne se chevauchent pas.

Prérequis

Vérification de la base de données restaurée

Vous pouvez vérifier que la base de données restaurée existe en interrogeant la table Person.CountryRegion :

USE AdventureWorksDW;
SELECT * FROM Person.CountryRegion;

Installer des packages Python

Téléchargez et installez Azure Data Studio.

Installez les packages Python suivants :

  • pyodbc
  • pandas
  • sqlalchemy
  • matplotlib

Pour installer ces packages :

  1. Dans votre notebook Azure Data Studio, sélectionnez Gérer les packages.
  2. Dans le volet Gérer les packages, sélectionnez l’onglet Ajouter nouveau.
  3. Pour chacun des packages suivants, entrez le nom du package, sélectionnez Rechercher, puis Installer.

Création de l’histogramme

Les données distribuées affichées dans l’histogramme s’appuient sur une requête SQL de AdventureWorksDW2022. L’histogramme permet de visualiser les données et la fréquence des valeurs de données.

Modifiez les variables de chaîne de connexion « server », « database », « username » et « password » pour vous connecter à la base de données SQL Server.

Pour créer un bloc-notes :

  1. Dans Azure Data Studio, sélectionnez Fichier, puis Nouveau notebook.
  2. Dans le notebook, sélectionnez le noyau Python3, puis +code.
  3. Collez le code dans le notebook, puis sélectionnez Tout exécuter.
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()

L’affichage présente la distribution de l’âge des clients dans la table FactInternetSales.

Diagram showing the Pandas histogram distribution.