Plotly Pie Chart 실제 데이터 활용 예제

상후·2025년 6월 18일

Plotly 정리

목록 보기
11/18
post-thumbnail

실제 데이터를 활용해서 원형 그래프 표현하기


예제 1 (한국도로공사 교통사고)

사망은 붉은 빨간색, 사고는 진한 빨간색, 부상은 연한 빨간색으로 진행

import pandas as pd
import plotly.express as px
# CSV 파일 불러오기
df = pd.read_csv("/content/한국도로공사_교통사고통계_20231231.csv")
# 총합 계산
total_accidents = df["사고"].sum()
total_deaths = df["사망"].sum()
total_injuries = df["부상"].sum()
# 데이터 정리
summary_df = pd.DataFrame({
    "종류": ["사고", "사망", "부상"],
    "건수": [total_accidents, total_deaths, total_injuries]
})
# 그래프 생성
fig = px.pie(summary_df, names="종류", values="건수", title="교통사고 통계 (사고, 사망, 부상 비율)")
# 색상 및 테두리 스타일 설정
fig.update_traces(
    marker_colors=px.colors.sequential.RdBu,
    marker_line_color="black",
    marker_line_width=2
)
fig.show()


예제 2 (서울시 범죄 대분류별 도넛형 그래프)

가장 큰 비율을 차지하는 범죄 그래프의 조각을 때고, 원형이 아닌 도넛형으로 진행

import pandas as pd
import plotly.express as px
# CSV 파일 불러오기
df = pd.read_csv("/content/경찰청_범죄 발생 지역별 통계_20231231.csv")
# 범죄대분류 기준 합산
crime_by_major = df.groupby("범죄대분류").sum(numeric_only=True)
crime_by_major["총합"] = crime_by_major.sum(axis=1)
# 최대값의 인덱스를 찾아 pull 리스트 만들기
labels = crime_by_major.index.tolist()
values = crime_by_major["총합"].tolist()
max_index = values.index(max(values))
# pull 리스트: 가장 큰 값만 0.2, 나머지는 0
pull_values = [0.2 if i == max_index else 0 for i in range(len(values))]
# 도넛형 원형 그래프 생성
fig = px.pie(
    names=labels,
    values=values,
    title="서울시 범죄 대분류별 도넛형 비율 그래프 (최대값 강조)",
    hole=0.4
)
# 강조 조각 설정
fig.update_traces(pull=pull_values)
fig.show()


profile
개발자를 꿈꾸는 학생

0개의 댓글