在 Python 中绘制直方图
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例
本文介绍如何使用 Python 包 pandas'.hist() 来绘制数据。 SQL 数据库提供一种源可用于可视化具有连续的非重叠值的直方图数据间隔。
先决条件
用于将示例数据库还原到 Azure SQL 托管实例的 SQL Server Management Studio。
Azure Data Studio。 如需安装,请参阅 Azure Data Studio。
还原示例 DW 数据库以获取本文中使用的示例数据。
验证还原的数据库
可以通过查询 Person.CountryRegion 表来验证是否存在还原的数据库:
USE AdventureWorksDW;
SELECT * FROM Person.CountryRegion;
安装 Python 包
安装以下 Python 包:
pyodbc
pandas
sqlalchemy
matplotlib
若要安装这些包:
- 在 Azure Data Studio 笔记本中,选择“管理包”。
- 在“管理包”窗格中,选择“添加新包”选项卡。
- 对于以下每个包,输入包名称,选择“搜索”,然后选择“安装”。
绘制直方图
直方图中显示的分布式数据基于 AdventureWorksDW2022
中的 SQL 查询。 直方图直观显示数据以及数据值的频率。
编辑连接字符串变量“server”、“database”、“username”和“password”,以连接到 SQL Server 数据库。
创建新笔记本的步骤:
- 在 Azure Data Studio 中,依次选择“文件”和”新建笔记本” 。
- 在笔记本中,依次选择内核“Python3”和“+ 代码” 。
- 在笔记本中粘贴代码,选择“全部运行”。
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
表中客户的年龄分布。