Skip to content

Plotly Express: 명확하게 설명된

Updated on

데이터 시각화는 데이터 분석과 기계 학습의 중요한 측면입니다. 이를 통해 원시 데이터에서 알 수 없는 통찰력과 복잡한 데이터 세트를 이해할 수 있습니다. 이 프로세스를 매우 간단하게 만든 도구 중 하나는 Plotly Express입니다.

Plotly Express는 데이터 시각화를 위한 고수준 인터페이스입니다. 복잡한 플롯을 만드는 과정을 단순화하며, 초보자들이 훌륭한 시각화를 시작할 수 있도록 도와줍니다. 초보자이든 경험이 있는 프로그래머이든 이 포괄적인 가이드를 통해 Plotly Express의 전체 잠재력을 발휘하는 방법을 알아보세요.

Plotly Express란?

Plotly Express는 종종 PX로 약칭되며, 복잡한 플롯을 만드는 과정을 단순화하는 Plotly.py의 래퍼입니다. Plotly 라이브러리에 대한 고수준 인터페이스를 제공하여 더 적은 코드로 훌륭한 시각화를 만들 수 있습니다.

Plotly Express는 산점도, 선 그래프, 막대 그래프 등 다양한 차트를 지원합니다. 또한 애니메이션도 지원하므로 시간이 지남에 따라 또는 사용자 상호 작용에 응답하여 변화하는 대화형 플롯을 만들 수 있습니다.

Plotly Express의 주요 기능 중 하나는 Pandas DataFrame과의 통합입니다. 이는 DataFrame 객체를 Plotly Express 함수에 직접 전달할 수 있으므로 대규모 데이터셋과 작업하기가 더 쉬워집니다.

Plotly Express vs Plotly Graph Objects

Plotly Express와 Plotly Graph Objects는 모두 Plotly 생태계의 일부이지만 다른 목적으로 사용됩니다. Plotly Graph Objects는 더 많은 제어 및 사용자 정의 옵션을 제공하는 저수준 인터페이스입니다. 반면 Plotly Express는 플롯 생성 과정을 단순화하는 고수준 인터페이스입니다.

초보자에게는 Plotly Express가 종종 더 좋은 선택입니다. 사용하기 쉽고 복잡한 시각화를 만들기 위해 더 적은 코드가 필요합니다. 그러나 플롯에 대한 더 많은 제어나 사용자 정의 시각화를 만들고 싶다면 Plotly Graph Objects가 더 적합할 수 있습니다.

Plotly Express를 사용한 다양한 시각화 유형

Plotly Express는 다양한 시각화를 지원합니다. 가장 일반적인 유형 중 일부는 다음과 같습니다:

  1. 산점도 그래프: 산점도 그래프는 두 가지 수치 변수 간의 관계를 표시하는 데 사용됩니다. 데이터의 경향, 패턴 및 이상치를 식별하는 데 적합합니다.

  2. 선 그래프: 선 그래프는 시간에 따라 데이터를 표시하는 데 사용됩니다. 시계열 분석과 시간에 따른 변화를 추적하는 데 널리 사용됩니다.

  3. 막대 그래프: 막대 그래프는 다른 범주의 빈도, 개수 또는 기타 특성을 비교하는 데 사용됩니다. 범주형 데이터에 적합합니다.

  4. 히스토그램: 히스토그램은 단일 수치 변수의 분포를 표시하는 데 사용됩니다. 데이터의 분포와 치우침을 이해하는 데 적합합니다.

  5. 박스 플롯: 박스 플롯은 수치 변수의 통계적 요약을 표시하는 데 사용됩니다. 데이터의 중앙값, 사분위수 및 잠재적인 이상치를 보여줍니다.

  6. 열 지도: 열 지도는 두 개 이상의 변수 간의 상관 관계를 표시하는 데 사용됩니다. 데이터의 패턴과 군집을 식별하는 데 적합합니다.

이 시각화들은 Plotly Express의 몇 줄의 코드만으로 생성할 수 있습니다. 다음 섹션에서는 이러한 플롯을 만드는 방법에 대한 몇 가지 예제를 살펴보겠습니다.

Python에서 Plotly Express 가져오기

Plotly Express를 사용하여 시각화를 만들기 전에 Python 환경에 가져와야 합니다. 아직 Plotly를 설치하지 않은 경우 다음과 같이 pip를 사용하여 설치할 수 있습니다:

pip install plotly

Plotly를 설치한 후 다음과 같이 Plotly Express를 가져올 수 있습니다:

import plotly.express as px

Plotly Express를 가져왔으므로 이제 멋진 시각화를 시작할 준비가 되었습니다!

Plotly Express를 사용하여 시각화 생성하기

Plotly Express를 사용하여 시각화를 생성하는 것은 간단합니다. 먼저 간단한 산점도 그래프를 만들어 보겠습니다. 먼저 데이터가 필요합니다. 이 예제에서는 기본 제공되는 iris 데이터셋을 사용하겠습니다:

df = px.data.iris()

이제 꽃받침 폭 대 꽃받침 길이의 산점도를 만들어 보겠습니다:

fig = px.scatter(df, x="sepal_width", y="sepal_length")
fig.show()

단 세 줄의 코드로 산점도를 만들었습니다! 그러나 Plotly Express는 산점도 이상의 다양한 기능을 제공합니다. gapminder 데이터셋을 사용하여 선 그래프를 만들어 보겠습니다:

df = px.data.gapminder().query("country=='Canada'")
fig = px.line(df, x="year", y="lifeExp", title='Canada의 기대 수명')
fig.show()

다시한번, 몇 줄의 코드로 시간에 따른 캐나다의 기대 수명을 보여주는 선 그래프를 만들었습니다.

Plotly Express에서 플롯 사용자 정의하기

Plotly Express의 장점 중 하나는 사용자 정의 옵션이 많다는 것입니다. 색상, 레이블 등 플롯의 다양한 측면을 쉽게 변경할 수 있습니다.

예를 들어, 이전의 산점도를 사용자 정의해 보겠습니다. 꽃의 종에 따라 점에 색상을 지정하고 레이블을 변경하겠습니다:

fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species",
                 labels={
                     "sepal_width": "꽃받침 폭 (cm)",
                     "sepal_length": "꽃받침 길이 (cm)",
                     "species": "종"
                 },
                 title="붓꽃 꽃받침 크기")
fig.show()

이러한 사용자 정의로 플롯이 훨씬 더 유익해졌습니다. 종별로 쉽게 구분할 수 있으며, 레이블도 보다 명확해졌습니다.

Plotly Express vs 다른 라이브러리

파이썬에서 데이터 시각화에 관한 이야기를 하면 선택할 수 있는 여러 라이브러리들이 있습니다. Plotly Express를 제외한 가장 인기 있는 두 개의 라이브러리는 Matplotlib과 Seaborn입니다.

Matplotlib은 간단함을 포기하고 매우 유연한 기능을 제공하는 저수준 라이브러리입니다. 생각하는 거의 모든 시각화를 생성할 수 있지만, 종종 많은 양의 코드를 필요로 합니다.

Seaborn은 Matplotlib을 기반으로 한 고수준 라이브러리입니다. 더 복잡한 시각화를 생성하는 과정을 간소화하지만, 여전히 많은 양의 코드를 필요로 합니다.

한편, Plotly Express는 간단함과 유연함 사이의 균형을 유지합니다. 최소한의 코드로 복잡한 시각화를 생성할 수 있으며, 다양한 사용자 정의 옵션도 제공합니다. 게다가, Plotly Express 플롯의 상호작용성은 Matplotlib이나 Seaborn으로 생성한 정적 플롯에 비해 상당한 장점입니다.

파이썬 판다스 데이터프레임에서 코드 없이 데이터 시각화를 빠르게 만들고 싶으신가요?

PyGWalker는 시각화가 있는 탐색적 데이터 분석을 위한 파이썬 라이브러리입니다. PyGWalker (opens in a new tab)는 판다스 데이터프레임과 폴라 데이터프레임을 Tableau 스타일의 사용자 인터페이스로 변환하여 Jupyter Notebook 데이터 분석 및 시각화 작업을 단순화할 수 있습니다.

데이터 시각화를 위한 PyGWalker (opens in a new tab)

Plotly Express에서 범례와 기타 요소 추가하기

Plotly Express 플롯에 범례, 제목 및 레이블을 추가하는 것은 간단합니다. 대부분은 플로팅 함수 내에서 직접 수행할 수 있습니다. 예를 들어, 플롯에 제목을 추가하려면 title 매개변수를 사용할 수 있습니다:

fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species", title="Iris Sepal Dimensions")
fig.show()

축 레이블을 추가하기 위해 이전 예제에서 보았던대로 labels 매개변수를 사용할 수 있습니다. 범례는 데이터의 다른 범주를 구분하기 위해 color 매개변수를 사용할 때 자동으로 추가됩니다.

더 고급화된 사용자 정의를 위해 update_layout 메서드를 사용할 수 있습니다:

fig.update_layout(
    title="Iris Sepal Dimensions",
    xaxis_title="Sepal Width (cm)",
    yaxis_title="Sepal Length (cm)",
    legend_title="Species",
    font=dict(
        family="Courier New, monospace",
        size=18,
        color="RebeccaPurple"
    )
)

이를 통해 제목, 레이블과 범례의 글꼴, 크기 및 색상을 사용자 정의할 수 있습니다.

자, 이제 Plotly Express에 대한 몇 가지 자주 묻는 질문들로 넘어갑시다.

자주 묻는 질문

  1. Plotly Express란 무엇인가요? Plotly Express는 파이썬에서 사용하는 고수준 데이터 시각화 라이브러리입니다. 복잡한 플롯을 간단한 과정으로 생성할 수 있는 Plotly.py의 래퍼입니다.

  2. Plotly Express와 Plotly Graph Objects는 어떻게 다른가요? Plotly Express는 더 적은 코드로 복잡한 플롯을 생성할 수 있는 고수준 인터페이스입니다. 반면에, Plotly Graph Objects는 더 많은 제어 및 사용자 정의 옵션을 제공하는 저수준 인터페이스입니다.

  3. Plotly Express로 어떤 유형의 시각화를 생성할 수 있나요? Plotly Express는 산점도, 선 그래프, 막대 그래프, 히스토그램, 상자 그림 및 히트맵을 포함한 다양한 시각화를 지원합니다. 또한 애니메이션도 지원합니다.

  4. Plotly Express는 초보자에게 적합한가요? 네, Plotly Express는 사용자 친화적으로 설계되었으며, 복잡한 시각화를 생성하기 위해 더 적은 코드를 필요로 하기 때문에 초보자에게 적합한 선택입니다.

  5. Plotly Express를 파이썬에 어떻게 가져올 수 있나요? 다음과 같은 코드를 사용하여 Plotly Express를 파이썬에서 가져올 수 있습니다: import plotly.express as px.