(12주차) 11월29일
pandas backend
-
(1/4) pandas_datareader :: 11월29일강의-4
-
(2/4) 판다스백엔드 line :: 11월29일강의-5
-
(3/4) 판다스백엔드 bar (1) :: 11월29일강의-6
-
(4/4) 판다스백엔드 bar (2) :: 11월29일강의-7
import numpy as np
import pandas as pd
import warnings
from IPython.display import HTML
from pandas_datareader import data as pdr
def show(fig):
return HTML(fig.to_html(include_plotlyjs='cdn',include_mathjax=False, config=dict({'scrollZoom':False})))
symbols = ['AMZN','AAPL','GOOG','MSFT','NFLX','NVDA','TSLA']
start = '2020-01-01'
end = '2020-11-28'
df = pdr.get_data_yahoo(symbols,start,end)['Adj Close']
df
df.reset_index()
-
1개의 y를 그리기
df.reset_index().plot.line(x='Date',y='AMZN')
-
2개의 y를 겹쳐그리기
df.reset_index().plot.line(x='Date',y=['AMZN','GOOG'])
-
모든 y겹처그리기
df.reset_index().plot.line(x='Date')
-
그림크기 조정
df.reset_index().plot.line(x='Date',figsize=(10,10))
-
서브플랏
df.reset_index().plot.line(x='Date',figsize=(10,10),subplots=True)
-
레이아웃 조정
df.reset_index().plot.line(x='Date',figsize=(10,10),subplots=True,layout=(4,2))
-
폰트조정
df.reset_index().plot.line(x='Date',figsize=(10,10),subplots=True,layout=(4,2),fontsize=20)
-
투명도 조정
df.reset_index().plot.line(x='Date',figsize=(10,10),subplots=True,layout=(4,2),alpha=0.3)
-
레전드 삭제
df.reset_index().plot.line(x='Date',figsize=(10,10),subplots=True,layout=(4,2),legend=False)
df = pd.read_csv('https://raw.githubusercontent.com/kalilurrahman/datasets/main/mobilephonemktshare2020.csv')
df
df.plot.bar(x='Date',y=['Samsung','Apple'],figsize=(10,5))
df.plot.bar(x='Date',y=['Samsung','Apple'],figsize=(10,5),width=0.8)
df.plot.barh(x='Date',y=['Samsung','Apple'],figsize=(5,10))
- 그림이 별로임
df.plot.bar(x='Date',figsize=(15,10),subplots=True,layout=(4,4),legend=False)
- 이건 사실 라인플랏으로 그려도 괜찮음
-
비율을 평균내는 것은 이상하지만 시각화예제를 위해서 제조사별로 평균점유율을 시각화하여보자.
df.melt(id_vars='Date').groupby('variable').agg(np.mean).\
plot.bar(legend=False)
-
소팅을 한뒤에 시각화해보자.
df.melt(id_vars='Date').groupby('variable').agg(np.mean).sort_values('value',ascending=False).\
plot.bar(legend=False)
fig= df.melt(id_vars='Date').groupby('variable').agg(np.mean).sort_values('value',ascending=False).\
plot.bar(backend='plotly')
show(fig)
fig=df.melt(id_vars='Date').\
plot.bar(x='Date',y='value',color='variable',backend='plotly',width=500,height=600)
show(fig)
fig=df.melt(id_vars='Date').query("variable=='Samsung' or variable=='Apple' or variable=='Huawei'").\
plot.bar(x='Date',y='value',color='variable',backend='plotly',barmode='group')
show(fig)
fig=df.melt(id_vars='Date').query("variable=='Samsung' or variable=='Apple' or variable=='Huawei'" ).\
plot.bar(x='Date',y='value',color='variable',backend='plotly',barmode='group',text='value')
show(fig)
fig=df.melt(id_vars='Date').query("variable=='Samsung' or variable=='Apple' or variable=='Huawei'" ).\
plot.bar(x='Date',y='value',color='variable',backend='plotly',facet_col='variable')
show(fig)
fig=df.melt(id_vars='Date').query("variable=='Samsung' or variable=='Apple' or variable=='Huawei'" ).\
plot.bar(y='Date',x='value',color='variable',backend='plotly',facet_row='variable',height=700)
show(fig)