알테어를 사용하면 데이터와 그 의미에 더 많은 시간을 집중할 수 있습니다. 이에 대해서는 아래에서 자세히 설명하겠습니다.
다음은 JupyterLab에서 알테어를 사용하여 데이터 세트를 빠르게 시각화하고 표시하는 예입니다.
import altair as alt # load a simple dataset as a pandas DataFrame from vega_datasets import data cars = data.cars() alt.Chart(cars).mark_point().encode( x='Horsepower', y='Miles_per_Gallon', color='Origin', )
Vega-Lite Altair의 독특한 기능 중 하나는 시각적일 뿐만 아니라 대화형인 선언적 구문입니다. 위의 예를 일부 수정하면 산점도 선택에 따라 필터링되는 연결된 히스토그램을 만들 수 있습니다.
import altair as alt from vega_datasets import data source = data.cars() brush = alt.selection(type='interval') points = alt.Chart(source).mark_point().encode( x='Horsepower', y='Miles_per_Gallon', color=alt.condition(brush, 'Origin', alt.value('lightgray')) ).add_selection( brush ) bars = alt.Chart(source).mark_bar().encode( y='Origin', color='Origin', x='count(Origin)' ).transform_filter( brush ) points & bars
Altair에는 다음 종속성이 필요합니다.
저장소를 복제한 경우 저장소 루트에서 다음 명령을 실행하세요.
pip install -e .[dev]
저장소를 복제하지 않으려면 다음 명령을 사용하여 설치할 수 있습니다.
pip install git+https://github.com/altair-viz/altair
자세한 내용은 github 링크를 참조하세요.
https://github.com/altair-viz/altair
다음에는 알테어가 탐색적 데이터 분석 프로세스의 일부로 사용할 수 있는 그룹화 및 병합 작업을 위한 필터, 시각적 객체를 생성하는 방법을 자세히 소개합니다.
우리는 시뮬레이션된 데이터로 두 개의 데이터 프레임을 구성합니다. 첫 번째는 레스토랑 주문이고, 두 번째는 레스토랑 주문에 포함된 품목의 가격입니다.
# import libraries import numpy as np import pandas as pd import altair as alt import random # mock data orders = pd.DataFrame({ "order_id": np.arange(1,101), "item": np.random.randint(1, 50, size=100), "qty": np.random.randint(1, 10, size=100), "tip": (np.random.random(100) * 10).round(2) }) prices = pd.DataFrame({ "item": np.arange(1,51), "price": (np.random.random(50) * 50).round(2) }) order_type = ["lunch", "dinner"] * 50 random.shuffle(order_type) orders["order_type"] = order_type
먼저 알테어 구문 구조에 대한 간단한 다이어그램을 만듭니다.
alt.Chart(orders).mark_circle(size=50).encode( x="qty", y="tip", color="order_type" ).properties( title = "Tip vs Quantity" )
4단계로 구성된 Altair 기본 구문:
서로 다른 데이터 프레임에 있는 pirce 값과 팁 값의 산점도를 생성해야 하는 상황을 생각해 보세요. 한 가지 옵션은 두 데이터프레임을 병합하고 이 두 열을 분산형 차트에 사용하는 것입니다.
Altair는 Pandas의 병합 기능과 유사하게 다른 데이터 프레임에서 열을 찾을 수 있는 보다 실용적인 방법을 제공합니다.
alt.Chart(orders).mark_circle(size=50).encode( x="tip", y="price:Q", color="order_type" ).transform_lookup( lookup="item", from_=alt.LookupData(data=prices, key="item", fields=["price"]) ).properties( title = "Price vs Tip" )
Transform_lookup 기능은 Pandas의 병합 기능과 유사합니다. 관측치를 일치시키는 데 사용되는 열(즉, 행)은 조회 매개변수에 전달됩니다. fields 매개변수는 다른 데이터프레임에서 필요한 열을 선택하는 데 사용됩니다.
또한 필터 구성 요소를 플롯에 통합하여 $10 이상의 가격으로 데이터 포인트를 플롯할 수 있습니다.
alt.Chart(orders).mark_circle(size=50).encode( x="tip", y="price:Q", color="order_type" ).transform_lookup( lookup="item", from_=alt.LookupData(data=prices, key="item", fields=["price"]) ).transform_filter( alt.FieldGTPredicate(field='price', gt=10) ).properties( title = "Price vs Tip" )
필터링에는 변환 필터 기능이 사용됩니다. FieldGTPredicate는 "보다 큼" 조건을 처리합니다.
알테어는 필터링 및 병합 외에도 데이터 포인트를 플롯하기 전에 그룹화할 수 있습니다. 예를 들어, 각 주문 유형에 대한 품목의 평균 가격을 표시하는 막대 차트를 만들 수 있습니다. 또한 가격이 20달러 미만인 품목에 대해서도 이 작업을 수행할 수 있습니다.
alt.Chart(orders).mark_bar().encode( y="order_type", x="avg_price:Q" ).transform_lookup( lookup="item", from_=alt.LookupData(data=prices, key="item", fields=["price"]) ).transform_filter( alt.FieldLTPredicate(field='price', lt=20) ).transform_aggregate( avg_price = "mean(price)", groupby = ["order_type"] ).properties( height=200, width=300 )
각 단계를 자세히 설명하겠습니다.
알테어와 다른 일반적인 시각화 라이브러리의 차이점은 데이터 분석 구성 요소를 시각화에 원활하게 통합할 수 있어 매우 실용적인 데이터 탐색 도구가 된다는 것입니다.
탐색적 데이터 분석 프로세스에서는 필터링, 병합 및 그룹화가 중요합니다. 알테어를 사용하면 데이터 시각화를 생성할 때 이러한 모든 작업을 수행할 수 있습니다. 이런 의미에서 알테어는 데이터 분석 도구로도 간주될 수 있습니다. 관심이 있으시다면 지금 바로 사용해 보세요.
위 내용은 아주 멋진! 이 Python 데이터 시각화 도구는 강력합니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!