차밍이
[Python] Plotly 그래프 사용법 - Scatter Plot 본문

Plotly는 매우 쉽고 예쁘고 반응적인 그래프를 그릴 수 있는 라이브러리입니다.
기본적으로 JavaScript를 기반으로 하고 있는 것 같습니다.
파이썬에서 라이브러리를 import해와서 쉽게 사용할 수 있으니 배워서 활용하면 좋을 것 같습니다.
Scatter Plot 산점도
Plotly에서 그래프를 그리는 방법이 크게 두가지로 나뉩니다.
- Express를 통해서 그리는 방법
- Graph_objects를 통해서 그리는 방법
1. Express
import plotly.express as px # express 통해서 그리기
fig = px.line(x=["a","b","c"], y=[1,3,2], title="sample figure")
print(fig) # fig는 JSON형식으로 데이터가 구성된 것을 알 수 있음
fig 객체는 기본적으로 JSON 형식으로 데이터가 그려집니다.
fig를 print하면 다음과 같이 JSON 형식의 데이터를 볼 수 있습니다.

그래프 그리기

2. Scatter plot with Plotly Express
흔히 알고 계시는 iris데이터를 통해서 산점도를 그려보겠습니다.
기본 데이터는 plotly에 iris 데이터가 저장되어 있으니 불러와서 사용하도록 합니다.
import plotly.express as px
df = px.data.iris()
df.head()

** IRIS 데이터 Scatter plot 그리기**
fig = px.scatter(df, x="sepal_width", y="sepal_length",
color="species", # Species 열의 값에 따라서 색깔 표현
size='petal_length', # petal_length 에 따라 크기를 변화
hover_data=['petal_width'], # 참고할 데이터 추가
title='Iris Data - Scatter Plot' # 그래프 타이틀 지정
)
fig.show()

express에서 scatter메소드를 통해서 scatter plot을 그려줍니다.
사용할 데이터를 DataFrame에서 넣어준 후, x축 y축을 지정합니다.
그 외에도 손쉽게 산점도의 크기, 색, hover 등을 설정할 수 있으며, 이를 해당 feature의 값에 따라서 크고 작게 or 색이 밝고 어둡게 등을 표현할 수 있습니다.
위의 산점도 그래프에서 color, size 를 넣지 않으면 크기가 기본 값, 색도 모두 기본 색상으로 표현됩니다.
fig = px.scatter(df, x="sepal_width", y="sepal_length",
hover_data=['petal_width'], # 참고할 데이터 추가
title='Iris Data - Scatter Plot' # 그래프 타이틀 지정
)
fig.show()

이와 같이 색이나 크기를 통해서 다른 feature를 통해 표현할 수 있습니다.
그렇기에 단순하게 x축 y축만 표현하는 것이 아닌 3차원, 4차원 적으로 더 많은 feature들을 그래프에 담을 수 있습니다.
Plotly를 통해서는 쉽게 표현할 수 있으니 매우 좋고 유용하지요.
3. Scatter plot with Plotly Graph-objects
Plotly에 있는 또 다른 그래프를 그리는 방식인 graph_objects입니다.
줄여서 go라고 많이 사용합니다.go를 통해서 Figure객체를 선언하고 Figure내에 필요한 Data와 Layout등을 설정해주는 방식입니다.
조금은 더 번거롭거나 귀찮을 수 있지만, 자신이 원하는 방식으로 상세하게 커스터마이징 해서 그래프를 그리고 싶다면 graph_objects를 사용하는 것이 좋습니다.
import plotly.graph_objects as go
fig = go.Figure(data=go.Scatter( # x축 값을 생략한 경우 DataFrame의 Index에 의해 배치됨
y = df['sepal_length'], # y축 값 sepal_length 값에 따라 배치
mode='markers', # Scatter Plot을 그리기 위해 Markers
marker=dict( # Marker에 대한 세부적은 설정을 지정
size=20, # 점 크기
color=df['petal_length'], # 색깔 값을 petal_length에 따라 변하도록 설정
colorscale='Viridis', # one of plotly colorscales
showscale=True, # colorscales 보여줌
line_width=1, # 마커 라인 두께 설정
)
))
fig.update_layout(title='Iris Data')
fig.show()

'파이썬 > 데이터 시각화' 카테고리의 다른 글
| [Python] Plotly : subplot 만들기의 모든것 - subtitle, type 설정 포함 (0) | 2022.07.24 |
|---|---|
| [Python] Plotly legend(범례) 의 모든 것 - 순서, 위치, 폰트 등 (0) | 2022.07.23 |
| [Python] Plotly 자주 사용하는 Layout 설정 - title, 축 label, font, subtitle, position 등 (4) | 2022.06.19 |
| [Python] Plotly 축 반전, x축 y축 반전 뒤집기 (2) | 2022.02.14 |
| [Python] Plotly 그래프 사용법 - Line Plot (0) | 2021.01.28 |
| [Python] cufflinks, QunatFig, Plotly 주식 그래프 예쁘고 편하게 그리기 - 파이썬 주식투자(7) (6) | 2021.01.23 |
| [Python] Plotly를 활용한 주식 차트 그리기 / 캔들스틱 그래프 그리기 / CandleStick Chart - 파이썬 주식투자(6) (2) | 2021.01.22 |
| Plotly를 사용한 파이썬 시각화 using 코로나 데이터셋 (0) | 2020.04.29 |