Partilhar via


Plotar histogramas em Python

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

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

Prerequisites

Verificar o banco de dados restaurado

Você pode verificar se o banco de dados restaurado existe consultando a Person.CountryRegion tabela:

USE AdventureWorksDW;
SELECT * FROM Person.CountryRegion;

Instalar pacotes Python

Baixe e instale o Azure Data Studio.

Instale os seguintes pacotes Python:

  • pyodbc
  • pandas
  • sqlalchemy
  • matplotlib

Para instalar estes pacotes:

  1. No seu bloco de anotações do Azure Data Studio, selecione Gerenciar Pacotes.
  2. No painel Gerenciar pacotes , selecione a guia Adicionar novo .
  3. Para cada um dos seguintes pacotes, insira o nome do pacote, selecione Pesquisar e, em seguida, selecione Instalar.

Histograma gráfico

Os dados distribuídos exibidos no histograma são baseados em uma consulta SQL da AdventureWorksDW2025. O histograma visualiza os dados e a frequência dos valores dos dados.

Edite as variáveis da cadeia de conexão: server, database, usernamee password para se conectar ao banco de dados do SQL Server.

Para criar um novo bloco de notas:

  1. No Azure Data Studio, selecione Arquivo, selecione Novo Bloco de Anotações.

  2. No bloco de anotações, selecione kernel Python3, selecione +código.

  3. Cole o código no bloco de anotações. 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()
    

O ecrã mostra a distribuição etária dos clientes na tabela FactInternetSales.

Diagrama mostrando a distribuição do histograma de Pandas.