在 Python 中绘制直方图

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Microsoft Fabric 预览版中的 SQL 数据库

本文介绍如何使用 Python 包 pandas'.hist() 来绘制数据。 SQL Server 数据库是用于可视化具有连续非重叠值的直方图数据间隔的源。

Prerequisites

验证还原的数据库

可以通过查询 Person.CountryRegion 表来验证是否存在还原的数据集:

USE AdventureWorksDW;
SELECT * FROM Person.CountryRegion;

安装 Python 包

下载并安装 Azure Data Studio

安装以下 Python 包:

  • pyodbc
  • pandas
  • sqlalchemy
  • matplotlib

若要安装这些包:

  1. 在 Azure Data Studio 笔记本中,选择“管理包”。
  2. 在“管理包”窗格中,选择“添加新包”选项卡。
  3. 对于以下每个包,输入包名称,选择“搜索”,然后选择“安装”。

Plot histogram

直方图中显示的分布式数据基于 AdventureWorksDW2022 中的 SQL 查询。 直方图直观显示数据以及数据值的频率。

编辑连接字符串变量:serverdatabaseusernamepassword,以连接到 SQL Server 数据库。

创建新笔记本的步骤:

  1. 在 Azure Data Studio 中,依次选择“文件”和”新建笔记本” 。

  2. 在笔记本中,依次选择内核“Python3”和“+ 代码” 。

  3. 将代码粘贴到笔记本中。 选择“全部运行”

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

将显示 FactInternetSales 表中客户的年龄分布。

显示 Pandas 直方图分布的示意图。