도구 가이드

Plotly 바 차트: Python 및 JavaScript로 인터랙티브 바 차트 만들기

Plotly는 인터랙티브하고 출판 품질의 차트를 만들기 위한 강력한 오픈 소스 라이브러리입니다. matplotlib 또는 Excel의 정적 이미지와 달리 Plotly 바 차트는 사용자 상호작용(호버 시 세부 정보, 확대/축소, 패닝, 클릭 시 작업 실행)에 반응합니다. 이 가이드는 기본 예제부터 고급 사용자 정의까지 Python 및 JavaScript 모두에서 Plotly로 바 차트를 만드는 방법을 다룹니다.

대화형 Plotly 바 차트 예제

Plotly란 무엇인가?

Plotly는 Python, JavaScript, R 및 기타 언어에서 사용 가능한 인터랙티브 시각화 라이브러리입니다. D3.js 및 WebGL을 사용하여 브라우저에서 차트를 렌더링하여 대규모 데이터 세트에서도 풍부한 상호작용을 가능하게 합니다. Plotly Express(Python)는 빠른 차트 생성을 위한 높은 수준의 API를 제공하는 반면, plotly.graph_objects는 세밀한 제어를 제공합니다.

  • 기본적으로 인터랙티브 - 호버 툴팁, 확대/축소, 패닝, 선택
  • 웹 네이티브 - 브라우저 및 Jupyter 노트북에서 아름답게 렌더링
  • 크로스 플랫폼 - Python, JavaScript, R, Julia, MATLAB
  • Dash 통합 - Plotly 차트로 완전한 웹 대시보드 구축
  • 내보내기 옵션 - 정적 이미지(PNG, SVG, PDF) 또는 인터랙티브 HTML

Plotly Express로 기본 바 차트 만들기 (Python)

Plotly Express는 Python에서 Plotly 차트를 만드는 가장 빠른 방법입니다. 데이터를 가져와서 준비한 후 바 차트는 단 한 줄의 코드만 필요합니다. 다음은 최소한의 예입니다: ```python import plotly.express as px data = {'Category: ['A', 'B', 'C', 'D'], 'Values': [23, 45, 56, 78]} fig = px.bar(data, x='Category', y='Values', title='기본 바 차트') fig.show() ```

  • px.bar()는 기본적으로 세로 막대를 생성합니다
  • x와 y는 범주 열과 값 열을 정의합니다
  • fig.show()는 인터랙티브 차트를 렌더링합니다
  • Jupyter 노트북, Colab, VS Code 및 스크립트에서 작동합니다
  • color='열_이름'을 추가하면 범주별로 색상이 지정된 막대가 생성됩니다

Plotly에서 수평 바 차트

orientation='h'를 설정하고 x와 y 할당을 교체하여 방향을 뒤집습니다. 수평 바 차트는 긴 범주 이름이나 많은 범주가 있을 때 더 잘 작동합니다. ```python fig = px.bar(data, x='Values', y='Category', orientation='h', title='수평 바 차트') fig.show() ```

그룹화된(클러스터) 바 차트

color 매개변수를 사용하여 여러 시리즈를 나란히 표시합니다. Plotly는 각 범주에 대해 자동으로 막대를 그룹화합니다. ```python import plotly.express as px df = px.data.medals_long() # 샘플 데이터셋 fig = px.bar(df, x='nation', y='count', color='medal', barmode='group', title='국가별 올림픽 메달') fig.show() ```

  • barmode='group'은 막대를 나란히 배치합니다
  • color 매개변수는 데이터를 별도의 막대 시리즈로 분할합니다
  • 각 색상은 범례 항목이 됩니다
  • 호버는 개별 막대 세부 정보를 보여줍니다

Plotly로 누적 바 차트

barmode를 'stack'으로 변경하여 누적 바 차트를 만듭니다. barmode를 지정하지 않고 color를 사용할 때의 기본 동작은 누적입니다. ```python fig = px.bar(df, x='nation', y='count', color='medal', barmode='stack', title='누적 올림픽 메달') fig.show() ```

Plotly 바 차트 사용자 정의

Plotly는 update_layout() 및 update_traces() 메서드를 통해 광범위한 사용자 정의를 제공합니다. 색상, 글꼴, 축, 주석 등을 수정할 수 있습니다.

  • fig.update_layout(title_font_size=24) - 제목 스타일 조정
  • fig.update_traces(marker_color='blue') - 막대 색상 변경
  • fig.update_xaxes(tickangle=45) - 축 레이블 회전
  • color_discrete_sequence=['#1f77b4', '#ff7f0e'] - 사용자 정의 색상 팔레트
  • fig.add_annotation() - 어디든 텍스트 주석 추가

JavaScript에서의 Plotly 바 차트

웹 애플리케이션의 경우 plotly.js를 직접 사용합니다. CDN을 통해 라이브러리를 포함시키고 Plotly.newPlot()으로 차트를 만듭니다. ```javascript <script src='https://cdn.plot.ly/plotly-latest.min.js'>'<'/script> <div id='chart'>'<'/div> <script> var data = [{ x: ['A', 'B', 'C', 'D'], y: [23, 45, 56, 78], type: 'bar' }]; Plotly.newPlot('chart', data, {title: 'JS 바 차트'}'); </script> ```

인터랙티비티 및 애니메이션 추가

Plotly가 기본적으로 또는 최소한의 구성으로 활성화하는 애니메이션 및 인터랙티브 기능으로 사용자 경험을 향상시킵니다.

  • 호버 툴팁 - 기본적으로 활성화됨, hovertemplate으로 사용자 정의
  • 클릭 이벤트 - 사용자 정의 작업을 위해 JavaScript에서 plotly_click 이벤트 사용
  • 애니메이션 - 애니메이션 전환을 위해 animation_frame 매개변수 추가
  • 범위 슬라이더 - 시계열 탐색을 위해 rangeslider 추가
  • 버튼/드롭다운 - updatemenus로 UI 컨트롤 추가

Plotly vs ChartGen.ai 사용 시기

Plotly는 프로그래밍 방식의 제어가 필수적인 인터랙티브 대시보드 또는 데이터 애플리케이션을 구축하는 개발자에게 탁월합니다. 그러나 빠른 시각화나 코드를 작성하고 싶지 않을 때는 ChartGen.ai가 전문적인 차트에 대한 더 빠른 경로를 제공합니다.

  • Plotly를 선택해야 하는 경우: 앱/대시보드 구축, 프로그래밍 방식 업데이트 필요, 복잡한 인터랙티비티 필요
  • ChartGen.ai를 선택해야 하는 경우: 빠른 일회성 차트, 코딩하지 않음 선호, 즉시 내보내기 필요, 클라이언트 프레젠테이션
  • ChartGen.ai 장점: 데이터 붙여넣기, 몇 초 만에 차트 얻기 - 라이브러리 설정 불필요
  • Plotly 장점: 완전한 제어, 애니메이션, 사용자 정의 클릭 핸들러

단계별: Plotly 바 차트 만드는 방법

1

Plotly 설치

Python: pip install plotly. JavaScript: CDN을 통해 포함시키거나 npm install plotly.js.

2

라이브러리 가져오기

Python: import plotly.express as px. JavaScript: 스크립트 태그 또는 import 문 포함.

3

데이터 준비

범주 및 값 열이 있는 DataFrame(Python) 또는 객체 배열(JavaScript)로 데이터를 구성합니다.

4

바 차트 생성

Python: fig = px.bar(df, x='category', y='value'). JavaScript: Plotly.newPlot('div', data).

5

모양 사용자 정의

Python에서는 update_layout(), update_traces()를 사용하고 JavaScript에서는 레이아웃/구성 객체를 사용합니다.

6

표시 또는 내보내기

인터랙티브 표시를 위한 fig.show(), 정적 내보내기를 위한 fig.write_image(), 또는 웹 임베딩을 위한 fig.to_html().

자주 묻는 질문

Plotly는 무료로 사용할 수 있나요?
예, Plotly의 핵심 라이브러리(plotly.py, plotly.js)는 오픈 소스이며 무료입니다. Plotly는 배포를 위한 Dash Enterprise와 같은 상용 제품도 제공하지만 차트 라이브러리 자체는 무료입니다.
Plotly 바 차트를 이미지로 저장하려면 어떻게 해야 하나요?
Python: fig.write_image('chart.png')(kaleido 패키지 필요). 브라우저에서는 차트 도구 모음에서 카메라 아이콘을 클릭합니다. SVG, PDF 또는 인터랙티브 HTML로 내보낼 수도 있습니다.
코딩 없이 Plotly를 사용할 수 있나요?
Plotly Chart Studio는 코드 없이 차트를 만들기 위한 웹 인터페이스를 제공하지만 라이브러리에 비해 제한적입니다. 유사한 품질의 노코드 바 차트의 경우 ChartGen.ai가 더 빠른 대안입니다.
Plotly에서 누적 바 차트를 어떻게 만드나요?
px.bar()에서 barmode='stack'을 사용하거나 JavaScript의 레이아웃 객체에서 barmode:'stack'을 설정합니다. color 매개변수를 사용하여 데이터를 그룹화하여 누적 세그먼트를 정의합니다.
바 차트를 위한 Plotly vs Matplotlib?
Matplotlib은 정적 이미지를 생성합니다. Plotly는 인터랙티브 웹 기반 차트를 생성합니다. 출판물이나 상호작용이 필요하지 않은 경우 Matplotlib을 사용하세요. 대시보드, 프레젠테이션 또는 인터랙티브 데이터 탐색을 위해 Plotly를 사용하세요.
코딩하고 싶지 않을 때 바 차트를 만드는 가장 빠른 방법은 무엇인가요?
ChartGen.ai는 붙여넣은 데이터에서 즉시 전문적인 바 차트를 생성합니다. Python도, JavaScript도, 라이브러리 설정도 필요 없습니다 - 붙여넣고 내보내기만 하면 됩니다. 개발 환경 없이 빠르게 결과가 필요할 때 이상적입니다.

관련 가이드

지금 전문가용 막대 차트 만들기 시작하세요

ChartGen.ai로 놀라운 데이터 시각화를 만드는 수천 명의 사용자와 함께하세요. 무료로 사용 가능하며 가입이 필요하지 않습니다.