Compartilhar via


Plotar histogramas no Python

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureBanco de dados SQL no Microsoft Fabric

Este artigo descreve como plotar os dados usando o pacote pandas'.hist() do Python. Um banco de dados do SQL Server é a origem usada para visualizar os intervalos de dados de histograma que têm valores consecutivos e não sobrepostos.

Prerequisites

Confirmar o banco de dados restaurado

É possível verificar se o banco de dados restaurado existe consultando a tabela Person.CountryRegion:

USE AdventureWorksDW;
SELECT * FROM Person.CountryRegion;

Instalar pacotes do Python

Baixe e instale o Azure Data Studio.

Instale os seguintes pacotes do Python:

  • pyodbc
  • pandas
  • sqlalchemy
  • matplotlib

Para instalar esses pacotes:

  1. No notebook do Azure Data Studio, selecione Gerenciar Pacotes.
  2. No painel Gerenciar Pacotes, selecione a guia Adicionar Novo.
  3. Para cada pacote a seguir, insira o nome do pacote, selecione Pesquisar e Instalar.

Plotar histograma

Os dados distribuídos exibidos no histograma baseiam-se em uma consulta SQL do AdventureWorksDW2025. O histograma visualiza os dados e a frequência dos valores de dados.

Edite as variáveis de cadeia de conexão: server, database, username e password, e conecte-se ao banco de dados do SQL Server.

Para criar um notebook:

  1. No Azure Data Studio, selecione Arquivo e escolha Novo Notebook.

  2. No notebook, selecione o kernel Python3 e escolha +code.

  3. Cole o código no notebook. Selecione Executar Tudo.

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

A exibição mostra a distribuição etária de clientes na tabela FactInternetSales.

Diagrama mostrando a distribuição do histograma pandas.