๐ Pandas ์๊ฐํ 1 - iplot
1. iplot
๐ ์ฒซ ์๊ฐํ ํฌ์คํ ์ด๋ค!! ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ / ์๊ฐํ ์ค์ตํ ๋ ์ฌ์ฉํ ํด์ด iplot๊ณผ plotly์ธ๋ฐ, ์ด๋ฒ์๋ ๋ ๊ฐ๊ฒฐํ๊ฒ ์๊ฐํ๋ฅผ ํ ์ ์๋ iplot์ ๋จผ์ ์์๋ณด์.
1.1. iplot ์ฌ์ฉํ๊ธฐ
๐ ์ผ๋จ์ iplot์ ์ฌ์ฉํ๊ธฐ ์ํด์ chart_studio ์ cufflinks๋ฅผ ์ค์นํด์ฃผ์.
!pip install plotly chart_studio --upgrade
!pip install cufflinks --upgrade
๐ ์ด์ ๋ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ํฌํธํ์.
import chart_studio.plotly as py
import cufflinks as cf
cf.go_offline(connected = True)
iplot์ ์ฌ์ฉํ ์ค๋น๊ฐ ๋๋ฌ๋ค๐.
1.2. iplot ๊ธฐ๋ณธํํ
๐ dataframe.iplot(kind = โ๊ทธ๋ํ ์ข ๋ฅโ)
- df.iplot(kind = โbarโ) - bar ๊ทธ๋ํ ์์ฑ
- df.iplot(kind = โbarโ, barmode = โstackโ) - ๋์ ๊ทธ๋ํ ์์ฑ
-
df.iplot(kind = โbarโ, barmode = โstackโ, orientation = โhโ) - ๊ฐ๋ก๋ก ๊ทธ๋ํ ์์ฑ
- df.iplot(kind = โscatterโ) - line ๊ทธ๋ํ ์์ฑ
- df.iplot(kind = โscatterโ, mode = โlines + markersโ) - ์ /์ ๋ชจ๋ ๋ํ๋
- df.iplot(kind = โscatterโ, fill = True) - line ์๋ซ๋ถ๋ถ์ ์ฑ์์ค
- df.iplot(kind = โscatterโ, xTitle = โ x title โ, yTitle = โ y title โ, title = โ title โ) - ํ์ดํ ์ค์
๐ iplot ์ x์ถ ๊ธฐ์ค์ ์ธ๋ฑ์ค์ด๋ค. ์ํ๋ x์ถ์ด ์๋ ๊ฒฝ์ฐ์๋ ๋ฏธ๋ฆฌ ๊ทธ ๊ฐ์ ์ธ๋ฑ์ค๋ก ๋ง๋๋ ๊ฒ์ด ํธํ ๋ฏ!!
1.3. ์๋ฆฌ์ฆ๋ก ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
๐ df[โcolumnโ].iplot(kind = โ๊ทธ๋ํ ์ข ๋ฅโ)
1.4. ๊ทธ๋ํ ํ ๋ง ๊ฐ์ ธ์ค๊ธฐ
๐ ๊ทธ๋ํ์ ์ฌ๋ฌ ํ ๋ง๋ฅผ ์ ์ฉํ ์ ์๋ค.
cf.getThemes( )
>> ['ggplot', 'pearl', 'solar', 'space', 'white', 'polar', 'henanigans']
for themes in cf.getThemes:
df.iplot(kind = 'bar', theme = themes, title = themes)
1.5. ๋ ์ด์์ ๋ง๋ค๊ธฐ - ๋์ ๋๋ฆฌ
- title : ๊ทธ๋ํ์ ์ ๋ชฉ์ ๋ํ๋ด๋ ๋์ ๋๋ฆฌ - ์ ๋ชฉ์ ๋ด์ฉ๊ณผ ํฐํธ(์ฌ์ด์ฆ / ๊ธ์์), x์ถ / y์ถ ๊ธฐ์ค ์ ๋ชฉ์ ์์น๋ฅผ ์ง์ ํจ
- plot_bgcolor : ๊ทธ๋ํ์ ๋ท๋ฐฐ๊ฒฝ ์๊น ์ง์
- xaxis / yaxis : x์ถ,y์ถ์ ์์ธ์กฐ์ ํจ
- showticklabels : tick์ ๋ณด์ฌ์ค๊ฒ์ธ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์
- dtick : tick์ ๊ฐ๊ฒฉ์ ์ง์
- title : ๊ฐ ์ถ์ ์ ๋ชฉ, ์ฌ์ด์ฆ, ๊ธ์์ ์ง์
layout = {
'title' : {'text' : , 'font' : {'size' : , 'color' : }, 'x' : 0.5, 'y' : 0.9 },
'plot_bgcolor' : #์์์ฝ๋,
'xaxis' : {'showticklabels' : True / False, 'dtick' : 2,
'title' : {'text' : , 'font' : {'size' : , 'color' : }}}
'yaxis' : {'showticklabels' : True / False, 'dtick' : 5,
'title' : {'text' : , 'font' : {'size' : , 'color' : }}}
}
df.iplot(kind = 'scatter', mode = 'lines+markers', layout = layout)
๐ ํ์ง๋ง layout์ ์ ์ธํ๊ณ ํ ๋ง ์ ์ฉ์ ๋ถ๊ฐ๋ฅํ๋ ์ด ์ ์ ์ ์ํ๋๋ก ํ์.
๐ iplot์ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ๋ ์ง์ํ๋ค.
df.iplot(kind = 'scatter', theme = 'ggplot', title = 'Iplot layout', xTitle = 'x title', yTitle = 'ytitle')
- ์ด๋ฐ ๋ฐฉ๋ฒ๋ ์์ง๋ง ์ข ๋ ์ธ๋ฐํ๊ฒ ์๊ฐํํ๊ธฐ ์ํด์ ๋ ์ด์์์ ๋ง๋ค์ด์ค๋ค.
- ๋น ๋ฅด๊ฒ ๊ฐํ ์ ๋๋ง ํ์ธํ ๋๋ ์์ ๋ฐฉ๋ฒ์ฒ๋ผ ๊ฐ๊ฒฐํ ์๊ฐํํ๋ ๊ฒ๋ ๊ด์ฐฎ์ ๋ฏํ๋ค๐.
- ๋ํ ์์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๊ฐ๊ฒฐํ layout์ theme๋ ์ ์ฉ์ด ๋๊ธฐ ๋๋ฌธ์ ์ฐธ๊ณ ํ์!!
๐ ๊ฐ์ธ์ ์ผ๋ก๋ ์๊ฐํ๋ฅผ ํ ๋ matplotlib ๋ณด๋ค iplot์ด๋ plotly๋ฅผ ์ ํธํ๋ ํธ์ด๋ค. ๋น๊ต์ ์ต๊ทผ์ ๋์จ ์๊ฐํ ํด์ด๊ธฐ ๋๋ฌธ์ ์ข ๋ ์ง๊ด์ ์ด๊ณ ๊ฐ๊ฒฐํ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฌผ๋ก ๊ทธ๋ ๋ค๊ณ matplolib ์ ์์ ๋ชจ๋ฅด๋ฉด ์๋๊ฒ ์ง๋ง ํธํ ๊ฒ์ ์์ด ๊ฐ๋ ๊ฑด ์ด์ฉ ์ ์๋๋ณด๋คใ
๐ ๋ค์ ํฌ์คํ ์์๋ plotly ์ฌ์ฉ๋ฒ์ ๋ฐฐ์๋ณด์!!
Leave a comment