
시각화
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib import rc
plt.rcParams['axes.unicode_minus'] = False
plt.rc('font', family='Malgun Gothic')
get_ipython().run_line_magic('matplotlib', 'inline')
x = np.linspace(0, 14, 100)
y1 = np.sin(x)
y2 = 2 * np.sin(x + 0.5)
y3 = 3 * np.sin(x + 1.0)
y4 = 4 * np.sin(x + 1.5)
sns.set_style('whitegrid')
plt.figure(figsize=(10, 6))
plt.grid(True)
plt.plot(x,y1,x,y2,x,y3,x,y4)
plt.show()

tips = sns.load_dataset('tips')
tips
# hue : 카테고리 데이터
plt.figure(figsize=(6, 6))
sns.boxplot(x='day', y='total_bill', data=tips, hue='smoker', palette='Set2') # Set 1 -3
plt.show()

plt.figure(figsize=(6, 6))
sns.swarmplot(x='day', y='total_bill', data=tips, hue='smoker', palette='Set2') # Set 1 -3
plt.show()

plt.figure(figsize=(8, 6))
sns.boxplot(x='day', y='total_bill', data=tips)
sns.swarmplot(x='day', y='total_bill', data=tips, hue='smoker', palette='Set2') # Set 1 -3
plt.show()

flights = sns.load_dataset('flights')
flights.head()
plt.figure(figsize=(10,6))
sns.heatmap(data=flights, annot=True, fmt='d', cmap='YlGnBu')
plt.show()

iris = sns.load_dataset('iris')
sns.set_style('ticks')
sns.pairplot(iris, hue='species')
plt.show()

# 원하는 컬럼
sns.pairplot(iris, x_vars=['sepal_width', 'sepal_length'],
y_vars=['petal_width', 'petal_length'])
plt.show()

anscombe = sns.load_dataset('anscombe')
sns.set_style('darkgrid')
sns.lmplot(x='x', y='y', data=anscombe.query("dataset == 'I'"), ci=None, height = 8) # ci 신뢰 구간
plt.show()

# order option
sns.set_style('darkgrid')
sns.lmplot(x='x', y='y', data=anscombe.query("dataset == 'I'"),
order = 2, ci=None, height = 8, scatter_kws={'s':80}) # ci 신뢰 구간
plt.show()

# outlier option
sns.set_style('darkgrid')
sns.lmplot(x='x', y='y', data=anscombe.query("dataset == 'III'"),robust=True,
order = 1, ci=None, height = 8, scatter_kws={'s':80}) # ci 신뢰 구간
plt.show()

지도 시각화
m = folium.Map(location=[37.544564958079896, 127.05582307754338], zoom_start=15)
m

m = folium.Map(location=[37.544564958079896, 127.05582307754338],
zoom_start=15,
tiles='Stamen Watercolor')
m

지도에 마커 설정
m = folium.Map(location=[37.544564958079896, 127.05582307754338],
zoom_start=15,
tiles='OpenStreetMap')
# 뚝섬역
folium.Marker((37.54712311308356, 127.04721916917774)).add_to(m)
# 성수역
folium.Marker([37.544564958079896, 127.05582307754338],
popup='Subway',
tooltip='성수역').add_to(m)
folium.Marker([37.54558642069953, 127.05729705810472],
popup='<a href="https://zero-base.co.kr/" target=_"blink">제로베이스</a>',
tooltip='<i>Zerobase</i>').add_to(m)
m

m = folium.Map(location=[37.544564958079896, 127.05582307754338],
zoom_start=15,
tiles='OpenStreetMap')
# icon basic
folium.Marker((37.54712311308356, 127.04721916917774), icon=folium.Icon(color='black',icon='info-sign')).add_to(m)
# 성수역
folium.Marker([37.544564958079896, 127.05582307754338],
popup='Subway',
tooltip='성수역',
icon=folium.Icon(
color='red',
icon_color='pink',
icon='cloud')).add_to(m)
folium.Marker([37.54558642069953, 127.05729705810472],
popup='<a href="https://zero-base.co.kr/" target=_"blink">제로베이스</a>',
tooltip='<i>Zerobase</i>').add_to(m)
folium.Marker([37.54035903907497, 127.06913328776446],
popup='건대입구역',
tooltip='Icon custom',
icon=folium.Icon(
color='purple',
icon_color='green',
icon='amazon',
angle=50,
prefix='fa')).add_to(m)
m

지도위에 마우스로 클릭했을 때 마커를 생성
m = folium.Map(location=[37.544564958079896, 127.05582307754338],
zoom_start=15,
tiles='OpenStreetMap')
m.add_child(folium.ClickForMarker(popup='ClickForMarker'))

지도를 마우스로 클릭했을 때 위도와 경도
m = folium.Map(location=[37.544564958079896, 127.05582307754338],
zoom_start=15,
tiles='OpenStreetMap')
m.add_child(folium.LatLngPopup())

m = folium.Map(location=[37.5451, 127.0500],
zoom_start=15,
tiles='OpenStreetMap')
#Circle
folium.Circle(
location=[37.5555, 127.0437],
radius=100,
fill=True,
color='green',
fill_color='red',
popup='Circle',
tooltip='Circle'
).add_to(m)
#Circle Marker
folium.CircleMarker(
location=[37.5436, 127.0447],
radius=100,
fill=True,
color='green',
fill_color='red',
popup='Circle',
tooltip='Circle'
).add_to(m)
m

경계 표시
m = folium.Map([43, -102], zoom_start=3)
folium.Choropleth(
geo_data='02. us-states.json', #경계선 좌표값이 담긴 데이터
data=state_data, # Series or DataFrame
columns=['State', 'Unemployment'], #DataFrame columns
key_on='feature.id',
fill_color='BuPu',
fill_opacity=1, # 0~1
line_opacity=1, # 0~1
legend_name='Unemployment rate(%)'
).add_to(m)
m

m = folium.Map(location=[37.505894533131, 126.93450729567374], zoom_start=13)
for idx, row in df.iterrows():
lat, lng = row.위도, row.경도
folium.Marker(
location=[lat, lng],
popup=row.주소,
tooltip=row.분류,
icon = folium.Icon(
icon='home',
color='lightred' if row.세대수 >= 199 else 'lightblue',
icon_color='darked' if row.세대수 >= 199 else 'darkblue',
)).add_to(m)
folium.Circle(
location=[lat, lng],
radius=row.세대수 * 0.5,
fill = True,
color='pink' if row.세대수 >= 518 else 'green',
fill_color = 'pink' if row.세대수 >= 518 else 'green',
).add_to(m)
m
