Partager via


Création d’histogrammes en Python

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de données SQL dans Microsoft Fabric

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 Server est la source utilisée pour visualiser les intervalles de données d’histogramme qui ont des valeurs consécutives et qui ne se chevauchent pas.

Prerequisites

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.

Tracer un histogramme

Les données distribuées affichées dans l’histogramme s’appuient sur une requête SQL de AdventureWorksDW2025. 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, usernameet 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 du code dans le bloc-notes. Sélectionnez Exécuter tout.

    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.

Diagramme montrant la distribution de l’histogramme Pandas.