차밍이
[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 |