Python에서 히스토그램 그리기

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

이 문서에서는 Python 패키지 pandas'.hist()를 사용하여 데이터를 그리는 방법을 설명합니다. SQL 데이터베이스가 중복되지 않는 연속 값이 포함된 히스토그램 데이터 간격을 시각화하는 데 사용되는 원본입니다.

필수 구성 요소

복원된 데이터베이스 확인

Person.CountryRegion 테이블을 쿼리하여 복원된 데이터베이스가 있는지 확인할 수 있습니다.

USE AdventureWorksDW;
SELECT * FROM Person.CountryRegion;

Python 패키지 설치

Azure Data Studio를 다운로드 및 설치합니다.

다음 Python 패키지를 설치합니다.

  • pyodbc
  • pandas
  • sqlalchemy
  • matplotlib

이러한 패키지를 설치하려면

  1. Azure Data Studio Notebook에서 패키지 관리를 선택합니다.
  2. 패키지 관리 창에서 새로 추가 탭을 선택합니다.
  3. 다음 패키지 각각에 대해 패키지 이름을 입력하고 검색을 선택한 다음 설치를 선택합니다.

히스토그램 그리기

히스토그램에 표시되는 분산 데이터는 AdventureWorksDW2022의 SQL 쿼리를 기반으로 합니다. 이 히스토그램은 데이터와 데이터 값 빈도를 시각화합니다.

SQL Server 데이터베이스에 연결하기 위한 연결 문자열 변수 'server', 'database', 'username' 및 'password'를 편집합니다.

새 Notebook을 만들려면:

  1. Azure Data Studio에서 파일을 선택하고 새 Notebook을 선택합니다.
  2. Notebook에서 커널 Python3를 선택하고 +code를 선택합니다.
  3. Notebook에 코드를 붙여넣고 모두 실행을 선택합니다.
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 테이블에 있는 고객의 연령 분포를 보여 줍니다.

Diagram showing the Pandas histogram distribution.