Skip to content

Instantly share code, notes, and snippets.

@heumsi
Last active March 3, 2020 07:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save heumsi/20cb716ccfe2e80d4ed317b34534a555 to your computer and use it in GitHub Desktop.
Save heumsi/20cb716ccfe2e80d4ed317b34534a555 to your computer and use it in GitHub Desktop.
내 티스토리 블로그 EDA 과정을 적은 노트북
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 143,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:40.372605Z",
"start_time": "2020-03-03T06:58:40.350400Z"
}
},
"outputs": [
{
"data": {
"text/html": [
" <script type=\"text/javascript\">\n",
" window.PlotlyConfig = {MathJaxConfig: 'local'};\n",
" if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}\n",
" if (typeof require !== 'undefined') {\n",
" require.undef(\"plotly\");\n",
" requirejs.config({\n",
" paths: {\n",
" 'plotly': ['https://cdn.plot.ly/plotly-latest.min']\n",
" }\n",
" });\n",
" require(['plotly'], function(Plotly) {\n",
" window._Plotly = Plotly;\n",
" });\n",
" }\n",
" </script>\n",
" "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import pandas as pd\n",
"import requests\n",
"import json\n",
"import plotly.express as px\n",
"import cufflinks as cf\n",
"from tqdm import tqdm_notebook\n",
"from bs4 import BeautifulSoup\n",
"import numpy as np\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"\n",
"cf.go_offline(connected=True)\n",
"plt.rcParams.update({\n",
" 'font.family': 'AppleGothic',\n",
" 'font.size': 14,\n",
" 'figure.figsize': (20, 10),\n",
"})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"access_token 은 아래 링크에 들어가시면 얻을 수 있습니다. \n",
"본인의 tistory app_id 와 callback_url 을 넣은 뒤에 사용하세요. \n",
"일정 시간 주기로 토큰이 파기되니 데이터 다시 로드할 때마다 다시 받아와야 합니다 ㅠㅠ (좀 귀찮.. 하지만 금방 함)\n",
"\n",
"https://www.tistory.com/oauth/authorize?client_id={app_id}&redirect_uri={callback_url}&response_type=token\n",
"\n",
"참고 : \n",
"\n",
"- http://www.webpaper.kr/show/96&page=1\n",
"- https://tistory.github.io/document-tistory-apis/apis/v1/post/read.html\n"
]
},
{
"cell_type": "code",
"execution_count": 144,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:40.377837Z",
"start_time": "2020-03-03T06:58:40.375351Z"
}
},
"outputs": [],
"source": [
"# 위에서 얻은 토큰 값을 아래 변수에 넣어서 주석 푼 뒤 사용!\n",
"# access_token = "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 글 목록 확인"
]
},
{
"cell_type": "code",
"execution_count": 145,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:40.385673Z",
"start_time": "2020-03-03T06:58:40.381222Z"
}
},
"outputs": [],
"source": [
"def get_posts_list(page):\n",
" url = \"https://www.tistory.com/apis/post/list\"\n",
" params = {\n",
" 'output': 'json',\n",
" 'access_token': access_token,\n",
" 'blogName': 'dailyheumsi',\n",
" 'page': page\n",
" }\n",
" return requests.get(url, params)"
]
},
{
"cell_type": "code",
"execution_count": 146,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:43.431441Z",
"start_time": "2020-03-03T06:58:40.388563Z"
},
"scrolled": true
},
"outputs": [],
"source": [
"df_posts = pd.DataFrame()\n",
"\n",
"page = 1\n",
"while True:\n",
" res = get_posts_list(page)\n",
" if res.status_code != 200:\n",
" break\n",
" \n",
" res = json.loads(res.content)\n",
" if 'posts' not in res['tistory']['item']:\n",
" break\n",
" \n",
" posts = res['tistory']['item']['posts']\n",
" \n",
" df_posts = df_posts.append(posts, ignore_index=True)\n",
" page += 1"
]
},
{
"cell_type": "code",
"execution_count": 147,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:43.447911Z",
"start_time": "2020-03-03T06:58:43.434031Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>title</th>\n",
" <th>postUrl</th>\n",
" <th>visibility</th>\n",
" <th>categoryId</th>\n",
" <th>comments</th>\n",
" <th>trackbacks</th>\n",
" <th>date</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>205</td>\n",
" <td>[취준생의 데이터 분야의 커리어 고민 3] 엔지니어가 되자</td>\n",
" <td>https://dailyheumsi.tistory.com/205</td>\n",
" <td>20</td>\n",
" <td>864097</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>2020-03-01 21:07:57</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>204</td>\n",
" <td>[취준생의 데이터 분야의 커리어 고민 2] 분석으로 취업은 힘들다</td>\n",
" <td>https://dailyheumsi.tistory.com/204</td>\n",
" <td>20</td>\n",
" <td>864097</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" <td>2020-02-26 18:07:20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>203</td>\n",
" <td>스프링 부트를 활용한 간단한 웹 사이트</td>\n",
" <td>https://dailyheumsi.tistory.com/203</td>\n",
" <td>20</td>\n",
" <td>801880</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2020-02-24 00:55:55</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>202</td>\n",
" <td>[스프링 프레임워크 핵심 기술] AOP</td>\n",
" <td>https://dailyheumsi.tistory.com/202</td>\n",
" <td>20</td>\n",
" <td>874866</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2020-02-23 23:36:01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>201</td>\n",
" <td>[디자인 패턴 9편] 구조 패턴, 프록시(Proxy)</td>\n",
" <td>https://dailyheumsi.tistory.com/201</td>\n",
" <td>20</td>\n",
" <td>855210</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2020-02-23 21:49:14</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id title \\\n",
"0 205 [취준생의 데이터 분야의 커리어 고민 3] 엔지니어가 되자 \n",
"1 204 [취준생의 데이터 분야의 커리어 고민 2] 분석으로 취업은 힘들다 \n",
"2 203 스프링 부트를 활용한 간단한 웹 사이트 \n",
"3 202 [스프링 프레임워크 핵심 기술] AOP \n",
"4 201 [디자인 패턴 9편] 구조 패턴, 프록시(Proxy) \n",
"\n",
" postUrl visibility categoryId comments \\\n",
"0 https://dailyheumsi.tistory.com/205 20 864097 4 \n",
"1 https://dailyheumsi.tistory.com/204 20 864097 7 \n",
"2 https://dailyheumsi.tistory.com/203 20 801880 0 \n",
"3 https://dailyheumsi.tistory.com/202 20 874866 0 \n",
"4 https://dailyheumsi.tistory.com/201 20 855210 0 \n",
"\n",
" trackbacks date \n",
"0 0 2020-03-01 21:07:57 \n",
"1 0 2020-02-26 18:07:20 \n",
"2 0 2020-02-24 00:55:55 \n",
"3 0 2020-02-23 23:36:01 \n",
"4 0 2020-02-23 21:49:14 "
]
},
"execution_count": 147,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 데이터 확인\n",
"df_posts.head()"
]
},
{
"cell_type": "code",
"execution_count": 148,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:43.459654Z",
"start_time": "2020-03-03T06:58:43.450005Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 193 entries, 0 to 192\n",
"Data columns (total 8 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 id 193 non-null object\n",
" 1 title 193 non-null object\n",
" 2 postUrl 193 non-null object\n",
" 3 visibility 193 non-null object\n",
" 4 categoryId 193 non-null object\n",
" 5 comments 193 non-null object\n",
" 6 trackbacks 193 non-null object\n",
" 7 date 193 non-null object\n",
"dtypes: object(8)\n",
"memory usage: 12.2+ KB\n"
]
}
],
"source": [
"# 자료형을 살펴보면 다음과 같다.\n",
"df_posts.info()"
]
},
{
"cell_type": "code",
"execution_count": 149,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:43.480359Z",
"start_time": "2020-03-03T06:58:43.463613Z"
}
},
"outputs": [],
"source": [
"# 일부 컬럼들의 자료형을 바꿔준다.\n",
"df_posts['id'] = df_posts['id'].astype('int')\n",
"df_posts['date'] = pd.to_datetime(df_posts['date'])\n",
"df_posts[['comments', 'trackbacks']] = df_posts[['comments', 'trackbacks']].astype('int')\n",
"df_posts[['visibility', 'categoryId']] = df_posts[['visibility', 'categoryId']].astype('category')"
]
},
{
"cell_type": "code",
"execution_count": 150,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:43.493003Z",
"start_time": "2020-03-03T06:58:43.484401Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"184"
]
},
"execution_count": 150,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 공개된 글 데이터만 남겨둠.\n",
"df_posts = df_posts[df_posts['visibility'] == '20']\n",
"len(df_posts)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"총 184개의 글을 올렸음."
]
},
{
"cell_type": "code",
"execution_count": 151,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:43.505178Z",
"start_time": "2020-03-03T06:58:43.496547Z"
},
"scrolled": true
},
"outputs": [],
"source": [
"df_posts['year'] = df_posts['date'].dt.year\n",
"df_posts['month'] = df_posts['date'].dt.month\n",
"df_posts['day'] = df_posts['date'].dt.day"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 월별 포스팅된 글 개수"
]
},
{
"cell_type": "code",
"execution_count": 152,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:43.524738Z",
"start_time": "2020-03-03T06:58:43.507739Z"
}
},
"outputs": [],
"source": [
"# 2018-08 ~ 2020-02 까지의 데이터프레임을 하나 만들어 둠.\n",
"size_by_month = pd.DataFrame({'date': pd.date_range('2018-08', '2020-03', freq='m')})\n",
"size_by_month['year'] = size_by_month['date'].dt.year\n",
"size_by_month['month'] = size_by_month['date'].dt.month\n",
"size_by_month.drop('date', 1, inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 153,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:43.546859Z",
"start_time": "2020-03-03T06:58:43.527908Z"
}
},
"outputs": [],
"source": [
"# 위에서 구한 df_posts 를 위 데이터프레임에 합침.\n",
"tmp = df_posts.groupby(['year', 'month']).size().reset_index()\n",
"tmp.columns = ['year', 'month', '글 개수']\n",
"\n",
"size_by_month = pd.merge(size_by_month, tmp, how='left').fillna(0)"
]
},
{
"cell_type": "code",
"execution_count": 154,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:43.558422Z",
"start_time": "2020-03-03T06:58:43.549076Z"
}
},
"outputs": [],
"source": [
"# 년/월별 글 개수를 시각화 해보자.\n",
"tmp = pd.DataFrame()\n",
"tmp['년/월'] = size_by_month.apply(lambda x: \"%d/%d\" %(x['year'], x['month']), axis=1)\n",
"tmp['글 개수'] = size_by_month['글 개수']\n",
"tmp.set_index('년/월', inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 155,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:43.871468Z",
"start_time": "2020-03-03T06:58:43.560625Z"
}
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": true
},
"data": [
{
"line": {
"color": "rgba(255, 153, 51, 1.0)",
"dash": "solid",
"shape": "linear",
"width": 1.3
},
"marker": {
"size": 12,
"symbol": "circle"
},
"mode": "markers+lines",
"name": "글 개수",
"text": "",
"type": "scatter",
"x": [
"2018/8",
"2018/9",
"2018/10",
"2018/11",
"2018/12",
"2019/1",
"2019/2",
"2019/3",
"2019/4",
"2019/5",
"2019/6",
"2019/7",
"2019/8",
"2019/9",
"2019/10",
"2019/11",
"2019/12",
"2020/1",
"2020/2"
],
"y": [
8,
2,
3,
5,
1,
0,
0,
9,
42,
4,
5,
14,
7,
14,
6,
13,
1,
15,
34
]
}
],
"layout": {
"legend": {
"bgcolor": "#FFFFFF",
"font": {
"color": "#4D5663"
}
},
"paper_bgcolor": "#FFFFFF",
"plot_bgcolor": "#FFFFFF",
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#2a3f5f"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
},
"title": {
"font": {
"color": "#4D5663"
}
},
"xaxis": {
"gridcolor": "#E1E5ED",
"showgrid": true,
"tickfont": {
"color": "#4D5663"
},
"title": {
"font": {
"color": "#4D5663"
},
"text": ""
},
"zerolinecolor": "#E1E5ED"
},
"yaxis": {
"gridcolor": "#E1E5ED",
"showgrid": true,
"tickfont": {
"color": "#4D5663"
},
"title": {
"font": {
"color": "#4D5663"
},
"text": ""
},
"zerolinecolor": "#E1E5ED"
}
}
},
"text/html": [
"<div>\n",
" \n",
" \n",
" <div id=\"13715acb-9f52-4da7-9fd3-82dfc375629a\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>\n",
" <script type=\"text/javascript\">\n",
" require([\"plotly\"], function(Plotly) {\n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" window.PLOTLYENV.BASE_URL='https://plot.ly';\n",
" \n",
" if (document.getElementById(\"13715acb-9f52-4da7-9fd3-82dfc375629a\")) {\n",
" Plotly.newPlot(\n",
" '13715acb-9f52-4da7-9fd3-82dfc375629a',\n",
" [{\"line\": {\"color\": \"rgba(255, 153, 51, 1.0)\", \"dash\": \"solid\", \"shape\": \"linear\", \"width\": 1.3}, \"marker\": {\"size\": 12, \"symbol\": \"circle\"}, \"mode\": \"markers+lines\", \"name\": \"\\uae00 \\uac1c\\uc218\", \"text\": \"\", \"type\": \"scatter\", \"x\": [\"2018/8\", \"2018/9\", \"2018/10\", \"2018/11\", \"2018/12\", \"2019/1\", \"2019/2\", \"2019/3\", \"2019/4\", \"2019/5\", \"2019/6\", \"2019/7\", \"2019/8\", \"2019/9\", \"2019/10\", \"2019/11\", \"2019/12\", \"2020/1\", \"2020/2\"], \"y\": [8.0, 2.0, 3.0, 5.0, 1.0, 0.0, 0.0, 9.0, 42.0, 4.0, 5.0, 14.0, 7.0, 14.0, 6.0, 13.0, 1.0, 15.0, 34.0]}],\n",
" {\"legend\": {\"bgcolor\": \"#FFFFFF\", \"font\": {\"color\": \"#4D5663\"}}, \"paper_bgcolor\": \"#FFFFFF\", \"plot_bgcolor\": \"#FFFFFF\", \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#2a3f5f\"}, \"error_y\": {\"color\": \"#2a3f5f\"}, \"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"baxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#EBF0F8\"}, \"line\": {\"color\": \"white\"}}, \"header\": {\"fill\": {\"color\": \"#C8D4E3\"}, \"line\": {\"color\": \"white\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#2a3f5f\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#2a3f5f\"}, \"geo\": {\"bgcolor\": \"white\", \"lakecolor\": \"white\", \"landcolor\": \"#E5ECF6\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"white\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"light\"}, \"paper_bgcolor\": \"white\", \"plot_bgcolor\": \"#E5ECF6\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"radialaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"yaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"zaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#2a3f5f\"}}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"caxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}}}, \"title\": {\"font\": {\"color\": \"#4D5663\"}}, \"xaxis\": {\"gridcolor\": \"#E1E5ED\", \"showgrid\": true, \"tickfont\": {\"color\": \"#4D5663\"}, \"title\": {\"font\": {\"color\": \"#4D5663\"}, \"text\": \"\"}, \"zerolinecolor\": \"#E1E5ED\"}, \"yaxis\": {\"gridcolor\": \"#E1E5ED\", \"showgrid\": true, \"tickfont\": {\"color\": \"#4D5663\"}, \"title\": {\"font\": {\"color\": \"#4D5663\"}, \"text\": \"\"}, \"zerolinecolor\": \"#E1E5ED\"}},\n",
" {\"showLink\": true, \"linkText\": \"Export to plot.ly\", \"plotlyServerURL\": \"https://plot.ly\", \"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('13715acb-9f52-4da7-9fd3-82dfc375629a');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" });\n",
" </script>\n",
" </div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"tmp.iplot(mode='markers+lines')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"각 글들을 카테고리로 나눠서 보면??"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"먼저 카테고리 id만 있으므로, 카테고리 관련 데이터를 받아오자."
]
},
{
"cell_type": "code",
"execution_count": 156,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:43.879611Z",
"start_time": "2020-03-03T06:58:43.874626Z"
}
},
"outputs": [],
"source": [
"def get_category_list():\n",
" url = \"https://www.tistory.com/apis/category/list\"\n",
" params = {\n",
" 'output': 'json',\n",
" 'access_token': access_token,\n",
" 'blogName': 'dailyheumsi',\n",
" }\n",
" return requests.get(url, params)"
]
},
{
"cell_type": "code",
"execution_count": 157,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:43.979104Z",
"start_time": "2020-03-03T06:58:43.882401Z"
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>name</th>\n",
" <th>parent</th>\n",
" <th>label</th>\n",
" <th>entries</th>\n",
" <th>entriesInLogin</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>804355</td>\n",
" <td>언젠가 또 기억하고 싶은거</td>\n",
" <td>864096</td>\n",
" <td>일상, 생각, 경험/언젠가 또 기억하고 싶은거</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>864096</td>\n",
" <td>일상, 생각, 경험</td>\n",
" <td></td>\n",
" <td>일상, 생각, 경험</td>\n",
" <td>10</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>854906</td>\n",
" <td>데이터 시각화</td>\n",
" <td>815369</td>\n",
" <td>공부하며 적어놓기 1/데이터 시각화</td>\n",
" <td>13</td>\n",
" <td>14</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>855210</td>\n",
" <td>빽 투더 기본기</td>\n",
" <td>800526</td>\n",
" <td>취업과 기본기 튼튼/빽 투더 기본기</td>\n",
" <td>29</td>\n",
" <td>29</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>882621</td>\n",
" <td>자바로 개발하기</td>\n",
" <td>882620</td>\n",
" <td>공부하며 적어놓기 2/자바로 개발하기</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id name parent label entries \\\n",
"0 804355 언젠가 또 기억하고 싶은거 864096 일상, 생각, 경험/언젠가 또 기억하고 싶은거 1 \n",
"1 864096 일상, 생각, 경험 일상, 생각, 경험 10 \n",
"2 854906 데이터 시각화 815369 공부하며 적어놓기 1/데이터 시각화 13 \n",
"3 855210 빽 투더 기본기 800526 취업과 기본기 튼튼/빽 투더 기본기 29 \n",
"4 882621 자바로 개발하기 882620 공부하며 적어놓기 2/자바로 개발하기 2 \n",
"\n",
" entriesInLogin \n",
"0 1 \n",
"1 10 \n",
"2 14 \n",
"3 29 \n",
"4 3 "
]
},
"execution_count": 157,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# category data 를 받아옴.\n",
"res = get_category_list()\n",
"res = json.loads(res.content)\n",
"\n",
"df_categories = pd.DataFrame(res['tistory']['item']['categories'])\n",
"df_categories.head()"
]
},
{
"cell_type": "code",
"execution_count": 158,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:43.985191Z",
"start_time": "2020-03-03T06:58:43.981231Z"
}
},
"outputs": [],
"source": [
"df_categories.set_index('id', inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 159,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:43.997163Z",
"start_time": "2020-03-03T06:58:43.987326Z"
}
},
"outputs": [],
"source": [
"categories = [] # ['id', 'category_1', 'category_2'] 의 페어 리스트를 담음.\n",
"for idx, row in df_categories.iterrows():\n",
" if row['parent'] == '':\n",
" categories.append([idx, row['name'], row['name']])\n",
" else:\n",
" categories.append([idx, df_categories.loc[row['parent'], 'name'], row['name']])\n",
"\n",
"# category 와 id 를 담는 데이터프레임을 다시 구성\n",
"df_categories = pd.DataFrame(categories, columns=['categoryId', 'category_1', 'category_2'])"
]
},
{
"cell_type": "code",
"execution_count": 160,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:44.008205Z",
"start_time": "2020-03-03T06:58:43.999566Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>categoryId</th>\n",
" <th>category_1</th>\n",
" <th>category_2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>804355</td>\n",
" <td>일상, 생각, 경험</td>\n",
" <td>언젠가 또 기억하고 싶은거</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>864096</td>\n",
" <td>일상, 생각, 경험</td>\n",
" <td>일상, 생각, 경험</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>854906</td>\n",
" <td>공부하며 적어놓기 1</td>\n",
" <td>데이터 시각화</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>855210</td>\n",
" <td>취업과 기본기 튼튼</td>\n",
" <td>빽 투더 기본기</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>882621</td>\n",
" <td>공부하며 적어놓기 2</td>\n",
" <td>자바로 개발하기</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" categoryId category_1 category_2\n",
"0 804355 일상, 생각, 경험 언젠가 또 기억하고 싶은거\n",
"1 864096 일상, 생각, 경험 일상, 생각, 경험\n",
"2 854906 공부하며 적어놓기 1 데이터 시각화\n",
"3 855210 취업과 기본기 튼튼 빽 투더 기본기\n",
"4 882621 공부하며 적어놓기 2 자바로 개발하기"
]
},
"execution_count": 160,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_categories.head()"
]
},
{
"cell_type": "code",
"execution_count": 161,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:44.014655Z",
"start_time": "2020-03-03T06:58:44.010409Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"8"
]
},
"execution_count": 161,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 카테고리1 (큰 카테고리) 에 해당하는 카테고리 수\n",
"df_categories['category_1'].nunique()"
]
},
{
"cell_type": "code",
"execution_count": 162,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:44.021976Z",
"start_time": "2020-03-03T06:58:44.016966Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"20"
]
},
"execution_count": 162,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 카테고리2 (작은 카테고리) 에 해당하는 카테고리 수\n",
"df_categories['category_2'].nunique()"
]
},
{
"cell_type": "code",
"execution_count": 163,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:44.048280Z",
"start_time": "2020-03-03T06:58:44.023999Z"
},
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>title</th>\n",
" <th>postUrl</th>\n",
" <th>visibility</th>\n",
" <th>categoryId</th>\n",
" <th>comments</th>\n",
" <th>trackbacks</th>\n",
" <th>date</th>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>day</th>\n",
" <th>category_1</th>\n",
" <th>category_2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>205</td>\n",
" <td>[취준생의 데이터 분야의 커리어 고민 3] 엔지니어가 되자</td>\n",
" <td>https://dailyheumsi.tistory.com/205</td>\n",
" <td>20</td>\n",
" <td>864097</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>2020-03-01 21:07:57</td>\n",
" <td>2020</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>일상, 생각, 경험</td>\n",
" <td>그냥 얘기</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>204</td>\n",
" <td>[취준생의 데이터 분야의 커리어 고민 2] 분석으로 취업은 힘들다</td>\n",
" <td>https://dailyheumsi.tistory.com/204</td>\n",
" <td>20</td>\n",
" <td>864097</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" <td>2020-02-26 18:07:20</td>\n",
" <td>2020</td>\n",
" <td>2</td>\n",
" <td>26</td>\n",
" <td>일상, 생각, 경험</td>\n",
" <td>그냥 얘기</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>203</td>\n",
" <td>스프링 부트를 활용한 간단한 웹 사이트</td>\n",
" <td>https://dailyheumsi.tistory.com/203</td>\n",
" <td>20</td>\n",
" <td>801880</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2020-02-24 00:55:55</td>\n",
" <td>2020</td>\n",
" <td>2</td>\n",
" <td>24</td>\n",
" <td>프로젝트들</td>\n",
" <td>프로젝트들</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>202</td>\n",
" <td>[스프링 프레임워크 핵심 기술] AOP</td>\n",
" <td>https://dailyheumsi.tistory.com/202</td>\n",
" <td>20</td>\n",
" <td>874866</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2020-02-23 23:36:01</td>\n",
" <td>2020</td>\n",
" <td>2</td>\n",
" <td>23</td>\n",
" <td>공부하며 적어놓기 2</td>\n",
" <td>웹 백엔드 with 자바</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>201</td>\n",
" <td>[디자인 패턴 9편] 구조 패턴, 프록시(Proxy)</td>\n",
" <td>https://dailyheumsi.tistory.com/201</td>\n",
" <td>20</td>\n",
" <td>855210</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2020-02-23 21:49:14</td>\n",
" <td>2020</td>\n",
" <td>2</td>\n",
" <td>23</td>\n",
" <td>취업과 기본기 튼튼</td>\n",
" <td>빽 투더 기본기</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id title \\\n",
"0 205 [취준생의 데이터 분야의 커리어 고민 3] 엔지니어가 되자 \n",
"1 204 [취준생의 데이터 분야의 커리어 고민 2] 분석으로 취업은 힘들다 \n",
"2 203 스프링 부트를 활용한 간단한 웹 사이트 \n",
"3 202 [스프링 프레임워크 핵심 기술] AOP \n",
"4 201 [디자인 패턴 9편] 구조 패턴, 프록시(Proxy) \n",
"\n",
" postUrl visibility categoryId comments \\\n",
"0 https://dailyheumsi.tistory.com/205 20 864097 4 \n",
"1 https://dailyheumsi.tistory.com/204 20 864097 7 \n",
"2 https://dailyheumsi.tistory.com/203 20 801880 0 \n",
"3 https://dailyheumsi.tistory.com/202 20 874866 0 \n",
"4 https://dailyheumsi.tistory.com/201 20 855210 0 \n",
"\n",
" trackbacks date year month day category_1 \\\n",
"0 0 2020-03-01 21:07:57 2020 3 1 일상, 생각, 경험 \n",
"1 0 2020-02-26 18:07:20 2020 2 26 일상, 생각, 경험 \n",
"2 0 2020-02-24 00:55:55 2020 2 24 프로젝트들 \n",
"3 0 2020-02-23 23:36:01 2020 2 23 공부하며 적어놓기 2 \n",
"4 0 2020-02-23 21:49:14 2020 2 23 취업과 기본기 튼튼 \n",
"\n",
" category_2 \n",
"0 그냥 얘기 \n",
"1 그냥 얘기 \n",
"2 프로젝트들 \n",
"3 웹 백엔드 with 자바 \n",
"4 빽 투더 기본기 "
]
},
"execution_count": 163,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# category 데이터프레임을 기존 posts 데이터프레임과 합침.\n",
"df_posts = pd.merge(df_posts, df_categories, how='left')\n",
"df_posts.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"이제 포스트 데이터에 카테고리가 추가되었으므로, 월별 카테고리 글 개수를 살펴보자."
]
},
{
"cell_type": "code",
"execution_count": 164,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:44.058332Z",
"start_time": "2020-03-03T06:58:44.050317Z"
}
},
"outputs": [],
"source": [
"# 2018-08 ~ 2020-02 까지의 데이터프레임을 하나 만들어 둠.\n",
"size_by_month = pd.DataFrame({'date': pd.date_range('2018-08', '2020-03', freq='m')})\n",
"size_by_month['year'] = size_by_month['date'].dt.year\n",
"size_by_month['month'] = size_by_month['date'].dt.month\n",
"size_by_month.drop('date', 1, inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 165,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:44.083036Z",
"start_time": "2020-03-03T06:58:44.064991Z"
}
},
"outputs": [],
"source": [
"pvt = df_posts.pivot_table(index=['year', 'month'], columns='category_1', aggfunc='size', fill_value=0).reset_index()"
]
},
{
"cell_type": "code",
"execution_count": 166,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:44.098007Z",
"start_time": "2020-03-03T06:58:44.087075Z"
}
},
"outputs": [],
"source": [
"size_by_month = pd.merge(size_by_month, pvt, how='left').fillna(0)\n",
"size_by_month.set_index(['year', 'month'], inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 167,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:45.259352Z",
"start_time": "2020-03-03T06:58:44.099998Z"
}
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": true
},
"data": [
{
"fill": "tonexty",
"fillcolor": "rgba(255, 153, 51, 0.3)",
"line": {
"color": "rgba(255, 153, 51, 1.0)",
"dash": "solid",
"shape": "linear",
"width": 1.3
},
"mode": "lines",
"name": "공부하며 적어놓기 1",
"text": "",
"type": "scatter",
"x": [
"(2018,8)",
"(2018,9)",
"(2018,10)",
"(2018,11)",
"(2018,12)",
"(2019,1)",
"(2019,2)",
"(2019,3)",
"(2019,4)",
"(2019,5)",
"(2019,6)",
"(2019,7)",
"(2019,8)",
"(2019,9)",
"(2019,10)",
"(2019,11)",
"(2019,12)",
"(2020,1)",
"(2020,2)"
],
"y": [
0,
0,
0,
0,
0,
0,
0,
5,
10,
2,
4,
6,
7,
2,
2,
6,
1,
1,
2
]
},
{
"fill": "tonexty",
"fillcolor": "rgba(55, 128, 191, 0.3)",
"line": {
"color": "rgba(55, 128, 191, 1.0)",
"dash": "solid",
"shape": "linear",
"width": 1.3
},
"mode": "lines",
"name": "공부하며 적어놓기 2",
"text": "",
"type": "scatter",
"x": [
"(2018,8)",
"(2018,9)",
"(2018,10)",
"(2018,11)",
"(2018,12)",
"(2019,1)",
"(2019,2)",
"(2019,3)",
"(2019,4)",
"(2019,5)",
"(2019,6)",
"(2019,7)",
"(2019,8)",
"(2019,9)",
"(2019,10)",
"(2019,11)",
"(2019,12)",
"(2020,1)",
"(2020,2)"
],
"y": [
0,
0,
0,
0,
0,
0,
0,
5,
10,
2,
4,
6,
7,
2,
2,
6,
1,
13,
25
]
},
{
"fill": "tonexty",
"fillcolor": "rgba(50, 171, 96, 0.3)",
"line": {
"color": "rgba(50, 171, 96, 1.0)",
"dash": "solid",
"shape": "linear",
"width": 1.3
},
"mode": "lines",
"name": "블로깅",
"text": "",
"type": "scatter",
"x": [
"(2018,8)",
"(2018,9)",
"(2018,10)",
"(2018,11)",
"(2018,12)",
"(2019,1)",
"(2019,2)",
"(2019,3)",
"(2019,4)",
"(2019,5)",
"(2019,6)",
"(2019,7)",
"(2019,8)",
"(2019,9)",
"(2019,10)",
"(2019,11)",
"(2019,12)",
"(2020,1)",
"(2020,2)"
],
"y": [
1,
0,
1,
0,
0,
0,
0,
6,
10,
2,
5,
6,
7,
2,
3,
7,
1,
13,
25
]
},
{
"fill": "tonexty",
"fillcolor": "rgba(128, 0, 128, 0.3)",
"line": {
"color": "rgba(128, 0, 128, 1.0)",
"dash": "solid",
"shape": "linear",
"width": 1.3
},
"mode": "lines",
"name": "시행착오 노트",
"text": "",
"type": "scatter",
"x": [
"(2018,8)",
"(2018,9)",
"(2018,10)",
"(2018,11)",
"(2018,12)",
"(2019,1)",
"(2019,2)",
"(2019,3)",
"(2019,4)",
"(2019,5)",
"(2019,6)",
"(2019,7)",
"(2019,8)",
"(2019,9)",
"(2019,10)",
"(2019,11)",
"(2019,12)",
"(2020,1)",
"(2020,2)"
],
"y": [
1,
0,
3,
0,
1,
0,
0,
6,
10,
3,
5,
6,
7,
4,
3,
7,
1,
13,
25
]
},
{
"fill": "tonexty",
"fillcolor": "rgba(219, 64, 82, 0.3)",
"line": {
"color": "rgba(219, 64, 82, 1.0)",
"dash": "solid",
"shape": "linear",
"width": 1.3
},
"mode": "lines",
"name": "일상, 생각, 경험",
"text": "",
"type": "scatter",
"x": [
"(2018,8)",
"(2018,9)",
"(2018,10)",
"(2018,11)",
"(2018,12)",
"(2019,1)",
"(2019,2)",
"(2019,3)",
"(2019,4)",
"(2019,5)",
"(2019,6)",
"(2019,7)",
"(2019,8)",
"(2019,9)",
"(2019,10)",
"(2019,11)",
"(2019,12)",
"(2020,1)",
"(2020,2)"
],
"y": [
1,
0,
3,
0,
1,
0,
0,
6,
10,
4,
5,
6,
7,
5,
3,
10,
1,
15,
27
]
},
{
"fill": "tonexty",
"fillcolor": "rgba(0, 128, 128, 0.3)",
"line": {
"color": "rgba(0, 128, 128, 1.0)",
"dash": "solid",
"shape": "linear",
"width": 1.3
},
"mode": "lines",
"name": "책 읽기",
"text": "",
"type": "scatter",
"x": [
"(2018,8)",
"(2018,9)",
"(2018,10)",
"(2018,11)",
"(2018,12)",
"(2019,1)",
"(2019,2)",
"(2019,3)",
"(2019,4)",
"(2019,5)",
"(2019,6)",
"(2019,7)",
"(2019,8)",
"(2019,9)",
"(2019,10)",
"(2019,11)",
"(2019,12)",
"(2020,1)",
"(2020,2)"
],
"y": [
3,
0,
3,
0,
1,
0,
0,
6,
10,
4,
5,
6,
7,
5,
3,
10,
1,
15,
27
]
},
{
"fill": "tonexty",
"fillcolor": "rgba(255, 255, 51, 0.3)",
"line": {
"color": "rgba(255, 255, 51, 1.0)",
"dash": "solid",
"shape": "linear",
"width": 1.3
},
"mode": "lines",
"name": "취업과 기본기 튼튼",
"text": "",
"type": "scatter",
"x": [
"(2018,8)",
"(2018,9)",
"(2018,10)",
"(2018,11)",
"(2018,12)",
"(2019,1)",
"(2019,2)",
"(2019,3)",
"(2019,4)",
"(2019,5)",
"(2019,6)",
"(2019,7)",
"(2019,8)",
"(2019,9)",
"(2019,10)",
"(2019,11)",
"(2019,12)",
"(2020,1)",
"(2020,2)"
],
"y": [
7,
1,
3,
5,
1,
0,
0,
9,
42,
4,
5,
7,
7,
14,
6,
13,
1,
15,
33
]
},
{
"fill": "tonexty",
"fillcolor": "rgba(128, 128, 0, 0.3)",
"line": {
"color": "rgba(128, 128, 0, 1.0)",
"dash": "solid",
"shape": "linear",
"width": 1.3
},
"mode": "lines",
"name": "프로젝트들",
"text": "",
"type": "scatter",
"x": [
"(2018,8)",
"(2018,9)",
"(2018,10)",
"(2018,11)",
"(2018,12)",
"(2019,1)",
"(2019,2)",
"(2019,3)",
"(2019,4)",
"(2019,5)",
"(2019,6)",
"(2019,7)",
"(2019,8)",
"(2019,9)",
"(2019,10)",
"(2019,11)",
"(2019,12)",
"(2020,1)",
"(2020,2)"
],
"y": [
8,
2,
3,
5,
1,
0,
0,
9,
42,
4,
5,
14,
7,
14,
6,
13,
1,
15,
34
]
}
],
"layout": {
"legend": {
"bgcolor": "#FFFFFF",
"font": {
"color": "#4D5663"
}
},
"paper_bgcolor": "#FFFFFF",
"plot_bgcolor": "#FFFFFF",
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#2a3f5f"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
},
"title": {
"font": {
"color": "#4D5663"
}
},
"xaxis": {
"gridcolor": "#E1E5ED",
"showgrid": true,
"tickfont": {
"color": "#4D5663"
},
"title": {
"font": {
"color": "#4D5663"
},
"text": ""
},
"zerolinecolor": "#E1E5ED"
},
"yaxis": {
"gridcolor": "#E1E5ED",
"showgrid": true,
"tickfont": {
"color": "#4D5663"
},
"title": {
"font": {
"color": "#4D5663"
},
"text": ""
},
"zerolinecolor": "#E1E5ED"
}
}
},
"text/html": [
"<div>\n",
" \n",
" \n",
" <div id=\"9b54bd06-e6a9-4b45-bcb2-5f5595ca6a1f\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>\n",
" <script type=\"text/javascript\">\n",
" require([\"plotly\"], function(Plotly) {\n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" window.PLOTLYENV.BASE_URL='https://plot.ly';\n",
" \n",
" if (document.getElementById(\"9b54bd06-e6a9-4b45-bcb2-5f5595ca6a1f\")) {\n",
" Plotly.newPlot(\n",
" '9b54bd06-e6a9-4b45-bcb2-5f5595ca6a1f',\n",
" [{\"fill\": \"tonexty\", \"fillcolor\": \"rgba(255, 153, 51, 0.3)\", \"line\": {\"color\": \"rgba(255, 153, 51, 1.0)\", \"dash\": \"solid\", \"shape\": \"linear\", \"width\": 1.3}, \"mode\": \"lines\", \"name\": \"\\uacf5\\ubd80\\ud558\\uba70 \\uc801\\uc5b4\\ub193\\uae30 1\", \"text\": \"\", \"type\": \"scatter\", \"x\": [\"(2018,8)\", \"(2018,9)\", \"(2018,10)\", \"(2018,11)\", \"(2018,12)\", \"(2019,1)\", \"(2019,2)\", \"(2019,3)\", \"(2019,4)\", \"(2019,5)\", \"(2019,6)\", \"(2019,7)\", \"(2019,8)\", \"(2019,9)\", \"(2019,10)\", \"(2019,11)\", \"(2019,12)\", \"(2020,1)\", \"(2020,2)\"], \"y\": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.0, 10.0, 2.0, 4.0, 6.0, 7.0, 2.0, 2.0, 6.0, 1.0, 1.0, 2.0]}, {\"fill\": \"tonexty\", \"fillcolor\": \"rgba(55, 128, 191, 0.3)\", \"line\": {\"color\": \"rgba(55, 128, 191, 1.0)\", \"dash\": \"solid\", \"shape\": \"linear\", \"width\": 1.3}, \"mode\": \"lines\", \"name\": \"\\uacf5\\ubd80\\ud558\\uba70 \\uc801\\uc5b4\\ub193\\uae30 2\", \"text\": \"\", \"type\": \"scatter\", \"x\": [\"(2018,8)\", \"(2018,9)\", \"(2018,10)\", \"(2018,11)\", \"(2018,12)\", \"(2019,1)\", \"(2019,2)\", \"(2019,3)\", \"(2019,4)\", \"(2019,5)\", \"(2019,6)\", \"(2019,7)\", \"(2019,8)\", \"(2019,9)\", \"(2019,10)\", \"(2019,11)\", \"(2019,12)\", \"(2020,1)\", \"(2020,2)\"], \"y\": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.0, 10.0, 2.0, 4.0, 6.0, 7.0, 2.0, 2.0, 6.0, 1.0, 13.0, 25.0]}, {\"fill\": \"tonexty\", \"fillcolor\": \"rgba(50, 171, 96, 0.3)\", \"line\": {\"color\": \"rgba(50, 171, 96, 1.0)\", \"dash\": \"solid\", \"shape\": \"linear\", \"width\": 1.3}, \"mode\": \"lines\", \"name\": \"\\ube14\\ub85c\\uae45\", \"text\": \"\", \"type\": \"scatter\", \"x\": [\"(2018,8)\", \"(2018,9)\", \"(2018,10)\", \"(2018,11)\", \"(2018,12)\", \"(2019,1)\", \"(2019,2)\", \"(2019,3)\", \"(2019,4)\", \"(2019,5)\", \"(2019,6)\", \"(2019,7)\", \"(2019,8)\", \"(2019,9)\", \"(2019,10)\", \"(2019,11)\", \"(2019,12)\", \"(2020,1)\", \"(2020,2)\"], \"y\": [1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 6.0, 10.0, 2.0, 5.0, 6.0, 7.0, 2.0, 3.0, 7.0, 1.0, 13.0, 25.0]}, {\"fill\": \"tonexty\", \"fillcolor\": \"rgba(128, 0, 128, 0.3)\", \"line\": {\"color\": \"rgba(128, 0, 128, 1.0)\", \"dash\": \"solid\", \"shape\": \"linear\", \"width\": 1.3}, \"mode\": \"lines\", \"name\": \"\\uc2dc\\ud589\\ucc29\\uc624 \\ub178\\ud2b8\", \"text\": \"\", \"type\": \"scatter\", \"x\": [\"(2018,8)\", \"(2018,9)\", \"(2018,10)\", \"(2018,11)\", \"(2018,12)\", \"(2019,1)\", \"(2019,2)\", \"(2019,3)\", \"(2019,4)\", \"(2019,5)\", \"(2019,6)\", \"(2019,7)\", \"(2019,8)\", \"(2019,9)\", \"(2019,10)\", \"(2019,11)\", \"(2019,12)\", \"(2020,1)\", \"(2020,2)\"], \"y\": [1.0, 0.0, 3.0, 0.0, 1.0, 0.0, 0.0, 6.0, 10.0, 3.0, 5.0, 6.0, 7.0, 4.0, 3.0, 7.0, 1.0, 13.0, 25.0]}, {\"fill\": \"tonexty\", \"fillcolor\": \"rgba(219, 64, 82, 0.3)\", \"line\": {\"color\": \"rgba(219, 64, 82, 1.0)\", \"dash\": \"solid\", \"shape\": \"linear\", \"width\": 1.3}, \"mode\": \"lines\", \"name\": \"\\uc77c\\uc0c1, \\uc0dd\\uac01, \\uacbd\\ud5d8\", \"text\": \"\", \"type\": \"scatter\", \"x\": [\"(2018,8)\", \"(2018,9)\", \"(2018,10)\", \"(2018,11)\", \"(2018,12)\", \"(2019,1)\", \"(2019,2)\", \"(2019,3)\", \"(2019,4)\", \"(2019,5)\", \"(2019,6)\", \"(2019,7)\", \"(2019,8)\", \"(2019,9)\", \"(2019,10)\", \"(2019,11)\", \"(2019,12)\", \"(2020,1)\", \"(2020,2)\"], \"y\": [1.0, 0.0, 3.0, 0.0, 1.0, 0.0, 0.0, 6.0, 10.0, 4.0, 5.0, 6.0, 7.0, 5.0, 3.0, 10.0, 1.0, 15.0, 27.0]}, {\"fill\": \"tonexty\", \"fillcolor\": \"rgba(0, 128, 128, 0.3)\", \"line\": {\"color\": \"rgba(0, 128, 128, 1.0)\", \"dash\": \"solid\", \"shape\": \"linear\", \"width\": 1.3}, \"mode\": \"lines\", \"name\": \"\\ucc45 \\uc77d\\uae30\", \"text\": \"\", \"type\": \"scatter\", \"x\": [\"(2018,8)\", \"(2018,9)\", \"(2018,10)\", \"(2018,11)\", \"(2018,12)\", \"(2019,1)\", \"(2019,2)\", \"(2019,3)\", \"(2019,4)\", \"(2019,5)\", \"(2019,6)\", \"(2019,7)\", \"(2019,8)\", \"(2019,9)\", \"(2019,10)\", \"(2019,11)\", \"(2019,12)\", \"(2020,1)\", \"(2020,2)\"], \"y\": [3.0, 0.0, 3.0, 0.0, 1.0, 0.0, 0.0, 6.0, 10.0, 4.0, 5.0, 6.0, 7.0, 5.0, 3.0, 10.0, 1.0, 15.0, 27.0]}, {\"fill\": \"tonexty\", \"fillcolor\": \"rgba(255, 255, 51, 0.3)\", \"line\": {\"color\": \"rgba(255, 255, 51, 1.0)\", \"dash\": \"solid\", \"shape\": \"linear\", \"width\": 1.3}, \"mode\": \"lines\", \"name\": \"\\ucde8\\uc5c5\\uacfc \\uae30\\ubcf8\\uae30 \\ud2bc\\ud2bc\", \"text\": \"\", \"type\": \"scatter\", \"x\": [\"(2018,8)\", \"(2018,9)\", \"(2018,10)\", \"(2018,11)\", \"(2018,12)\", \"(2019,1)\", \"(2019,2)\", \"(2019,3)\", \"(2019,4)\", \"(2019,5)\", \"(2019,6)\", \"(2019,7)\", \"(2019,8)\", \"(2019,9)\", \"(2019,10)\", \"(2019,11)\", \"(2019,12)\", \"(2020,1)\", \"(2020,2)\"], \"y\": [7.0, 1.0, 3.0, 5.0, 1.0, 0.0, 0.0, 9.0, 42.0, 4.0, 5.0, 7.0, 7.0, 14.0, 6.0, 13.0, 1.0, 15.0, 33.0]}, {\"fill\": \"tonexty\", \"fillcolor\": \"rgba(128, 128, 0, 0.3)\", \"line\": {\"color\": \"rgba(128, 128, 0, 1.0)\", \"dash\": \"solid\", \"shape\": \"linear\", \"width\": 1.3}, \"mode\": \"lines\", \"name\": \"\\ud504\\ub85c\\uc81d\\ud2b8\\ub4e4\", \"text\": \"\", \"type\": \"scatter\", \"x\": [\"(2018,8)\", \"(2018,9)\", \"(2018,10)\", \"(2018,11)\", \"(2018,12)\", \"(2019,1)\", \"(2019,2)\", \"(2019,3)\", \"(2019,4)\", \"(2019,5)\", \"(2019,6)\", \"(2019,7)\", \"(2019,8)\", \"(2019,9)\", \"(2019,10)\", \"(2019,11)\", \"(2019,12)\", \"(2020,1)\", \"(2020,2)\"], \"y\": [8.0, 2.0, 3.0, 5.0, 1.0, 0.0, 0.0, 9.0, 42.0, 4.0, 5.0, 14.0, 7.0, 14.0, 6.0, 13.0, 1.0, 15.0, 34.0]}],\n",
" {\"legend\": {\"bgcolor\": \"#FFFFFF\", \"font\": {\"color\": \"#4D5663\"}}, \"paper_bgcolor\": \"#FFFFFF\", \"plot_bgcolor\": \"#FFFFFF\", \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#2a3f5f\"}, \"error_y\": {\"color\": \"#2a3f5f\"}, \"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"baxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#EBF0F8\"}, \"line\": {\"color\": \"white\"}}, \"header\": {\"fill\": {\"color\": \"#C8D4E3\"}, \"line\": {\"color\": \"white\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#2a3f5f\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#2a3f5f\"}, \"geo\": {\"bgcolor\": \"white\", \"lakecolor\": \"white\", \"landcolor\": \"#E5ECF6\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"white\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"light\"}, \"paper_bgcolor\": \"white\", \"plot_bgcolor\": \"#E5ECF6\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"radialaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"yaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"zaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#2a3f5f\"}}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"caxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}}}, \"title\": {\"font\": {\"color\": \"#4D5663\"}}, \"xaxis\": {\"gridcolor\": \"#E1E5ED\", \"showgrid\": true, \"tickfont\": {\"color\": \"#4D5663\"}, \"title\": {\"font\": {\"color\": \"#4D5663\"}, \"text\": \"\"}, \"zerolinecolor\": \"#E1E5ED\"}, \"yaxis\": {\"gridcolor\": \"#E1E5ED\", \"showgrid\": true, \"tickfont\": {\"color\": \"#4D5663\"}, \"title\": {\"font\": {\"color\": \"#4D5663\"}, \"text\": \"\"}, \"zerolinecolor\": \"#E1E5ED\"}},\n",
" {\"showLink\": true, \"linkText\": \"Export to plot.ly\", \"plotlyServerURL\": \"https://plot.ly\", \"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('9b54bd06-e6a9-4b45-bcb2-5f5595ca6a1f');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" });\n",
" </script>\n",
" </div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"size_by_month.iplot('area', fill=True, )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 시간대별 글 개수"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"혹시 내가 자주 글을 쓰는 시간대가 있었을까?"
]
},
{
"cell_type": "code",
"execution_count": 168,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:45.265920Z",
"start_time": "2020-03-03T06:58:45.261214Z"
}
},
"outputs": [],
"source": [
"df_posts['hour'] = df_posts['date'].dt.hour"
]
},
{
"cell_type": "code",
"execution_count": 169,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:45.540465Z",
"start_time": "2020-03-03T06:58:45.268197Z"
}
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": true
},
"data": [
{
"marker": {
"color": "rgba(255, 153, 51, 0.6)",
"line": {
"color": "rgba(255, 153, 51, 1.0)",
"width": 1
}
},
"name": "None",
"orientation": "v",
"text": "",
"type": "bar",
"x": [
0,
1,
2,
3,
9,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"y": [
9,
15,
4,
1,
1,
1,
5,
2,
16,
16,
16,
20,
12,
10,
10,
11,
15,
20
]
}
],
"layout": {
"legend": {
"bgcolor": "#FFFFFF",
"font": {
"color": "#4D5663"
}
},
"paper_bgcolor": "#FFFFFF",
"plot_bgcolor": "#FFFFFF",
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#2a3f5f"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
},
"title": {
"font": {
"color": "#4D5663"
}
},
"xaxis": {
"gridcolor": "#E1E5ED",
"showgrid": true,
"tickfont": {
"color": "#4D5663"
},
"title": {
"font": {
"color": "#4D5663"
},
"text": ""
},
"zerolinecolor": "#E1E5ED"
},
"yaxis": {
"gridcolor": "#E1E5ED",
"showgrid": true,
"tickfont": {
"color": "#4D5663"
},
"title": {
"font": {
"color": "#4D5663"
},
"text": ""
},
"zerolinecolor": "#E1E5ED"
}
}
},
"text/html": [
"<div>\n",
" \n",
" \n",
" <div id=\"b6efe906-ba2d-4b96-bab5-228766f0cb36\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>\n",
" <script type=\"text/javascript\">\n",
" require([\"plotly\"], function(Plotly) {\n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" window.PLOTLYENV.BASE_URL='https://plot.ly';\n",
" \n",
" if (document.getElementById(\"b6efe906-ba2d-4b96-bab5-228766f0cb36\")) {\n",
" Plotly.newPlot(\n",
" 'b6efe906-ba2d-4b96-bab5-228766f0cb36',\n",
" [{\"marker\": {\"color\": \"rgba(255, 153, 51, 0.6)\", \"line\": {\"color\": \"rgba(255, 153, 51, 1.0)\", \"width\": 1}}, \"name\": \"None\", \"orientation\": \"v\", \"text\": \"\", \"type\": \"bar\", \"x\": [0, 1, 2, 3, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], \"y\": [9, 15, 4, 1, 1, 1, 5, 2, 16, 16, 16, 20, 12, 10, 10, 11, 15, 20]}],\n",
" {\"legend\": {\"bgcolor\": \"#FFFFFF\", \"font\": {\"color\": \"#4D5663\"}}, \"paper_bgcolor\": \"#FFFFFF\", \"plot_bgcolor\": \"#FFFFFF\", \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#2a3f5f\"}, \"error_y\": {\"color\": \"#2a3f5f\"}, \"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"baxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#EBF0F8\"}, \"line\": {\"color\": \"white\"}}, \"header\": {\"fill\": {\"color\": \"#C8D4E3\"}, \"line\": {\"color\": \"white\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#2a3f5f\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#2a3f5f\"}, \"geo\": {\"bgcolor\": \"white\", \"lakecolor\": \"white\", \"landcolor\": \"#E5ECF6\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"white\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"light\"}, \"paper_bgcolor\": \"white\", \"plot_bgcolor\": \"#E5ECF6\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"radialaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"yaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"zaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#2a3f5f\"}}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"caxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}}}, \"title\": {\"font\": {\"color\": \"#4D5663\"}}, \"xaxis\": {\"gridcolor\": \"#E1E5ED\", \"showgrid\": true, \"tickfont\": {\"color\": \"#4D5663\"}, \"title\": {\"font\": {\"color\": \"#4D5663\"}, \"text\": \"\"}, \"zerolinecolor\": \"#E1E5ED\"}, \"yaxis\": {\"gridcolor\": \"#E1E5ED\", \"showgrid\": true, \"tickfont\": {\"color\": \"#4D5663\"}, \"title\": {\"font\": {\"color\": \"#4D5663\"}, \"text\": \"\"}, \"zerolinecolor\": \"#E1E5ED\"}},\n",
" {\"showLink\": true, \"linkText\": \"Export to plot.ly\", \"plotlyServerURL\": \"https://plot.ly\", \"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('b6efe906-ba2d-4b96-bab5-228766f0cb36');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" });\n",
" </script>\n",
" </div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df_posts.groupby('hour').size().iplot('bar')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"카테고리별로 비율을 보면?"
]
},
{
"cell_type": "code",
"execution_count": 170,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:45.931262Z",
"start_time": "2020-03-03T06:58:45.542616Z"
}
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": true
},
"data": [
{
"marker": {
"color": "rgba(255, 153, 51, 0.6)",
"line": {
"color": "rgba(255, 153, 51, 1.0)",
"width": 1
}
},
"name": "공부하며 적어놓기 1",
"orientation": "v",
"text": "",
"type": "bar",
"x": [
0,
1,
2,
3,
9,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"y": [
0.1111111111111111,
0.13333333333333333,
0,
0,
1,
0,
0.4,
0.5,
0.1875,
0.375,
0.375,
0.45,
0.16666666666666666,
0.4,
0.1,
0.09090909090909091,
0.4,
0.15
]
},
{
"marker": {
"color": "rgba(55, 128, 191, 0.6)",
"line": {
"color": "rgba(55, 128, 191, 1.0)",
"width": 1
}
},
"name": "공부하며 적어놓기 2",
"orientation": "v",
"text": "",
"type": "bar",
"x": [
0,
1,
2,
3,
9,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"y": [
0,
0.06666666666666667,
0,
0,
0,
0,
0.2,
0,
0.4375,
0.4375,
0.4375,
0.35,
0.08333333333333333,
0,
0.1,
0,
0,
0.15
]
},
{
"marker": {
"color": "rgba(50, 171, 96, 0.6)",
"line": {
"color": "rgba(50, 171, 96, 1.0)",
"width": 1
}
},
"name": "블로깅",
"orientation": "v",
"text": "",
"type": "bar",
"x": [
0,
1,
2,
3,
9,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"y": [
0,
0.06666666666666667,
0.25,
0,
0,
0,
0,
0.5,
0.0625,
0,
0.0625,
0.05,
0,
0,
0,
0,
0,
0
]
},
{
"marker": {
"color": "rgba(128, 0, 128, 0.6)",
"line": {
"color": "rgba(128, 0, 128, 1.0)",
"width": 1
}
},
"name": "시행착오 노트",
"orientation": "v",
"text": "",
"type": "bar",
"x": [
0,
1,
2,
3,
9,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"y": [
0,
0.06666666666666667,
0.25,
0,
0,
0,
0,
0,
0,
0.125,
0.0625,
0,
0,
0,
0,
0.09090909090909091,
0,
0
]
},
{
"marker": {
"color": "rgba(219, 64, 82, 0.6)",
"line": {
"color": "rgba(219, 64, 82, 1.0)",
"width": 1
}
},
"name": "일상, 생각, 경험",
"orientation": "v",
"text": "",
"type": "bar",
"x": [
0,
1,
2,
3,
9,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"y": [
0.2222222222222222,
0.26666666666666666,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.05,
0.08333333333333333,
0,
0,
0.09090909090909091,
0,
0.05
]
},
{
"marker": {
"color": "rgba(0, 128, 128, 0.6)",
"line": {
"color": "rgba(0, 128, 128, 1.0)",
"width": 1
}
},
"name": "책 읽기",
"orientation": "v",
"text": "",
"type": "bar",
"x": [
0,
1,
2,
3,
9,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"y": [
0.1111111111111111,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.08333333333333333,
0,
0,
0,
0,
0
]
},
{
"marker": {
"color": "rgba(255, 255, 51, 0.6)",
"line": {
"color": "rgba(255, 255, 51, 1.0)",
"width": 1
}
},
"name": "취업과 기본기 튼튼",
"orientation": "v",
"text": "",
"type": "bar",
"x": [
0,
1,
2,
3,
9,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"y": [
0.1111111111111111,
0.4,
0.5,
0,
0,
1,
0.4,
0,
0.3125,
0.0625,
0.0625,
0.1,
0.5833333333333334,
0.6,
0.7,
0.7272727272727273,
0.6,
0.45
]
},
{
"marker": {
"color": "rgba(128, 128, 0, 0.6)",
"line": {
"color": "rgba(128, 128, 0, 1.0)",
"width": 1
}
},
"name": "프로젝트들",
"orientation": "v",
"text": "",
"type": "bar",
"x": [
0,
1,
2,
3,
9,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"y": [
0.4444444444444444,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.1,
0,
0,
0.2
]
}
],
"layout": {
"barmode": "stack",
"legend": {
"bgcolor": "#FFFFFF",
"font": {
"color": "#4D5663"
},
"traceorder": "normal"
},
"paper_bgcolor": "#FFFFFF",
"plot_bgcolor": "#FFFFFF",
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#2a3f5f"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
},
"title": {
"font": {
"color": "#4D5663"
}
},
"xaxis": {
"gridcolor": "#E1E5ED",
"showgrid": true,
"tickfont": {
"color": "#4D5663"
},
"title": {
"font": {
"color": "#4D5663"
},
"text": ""
},
"zerolinecolor": "#E1E5ED"
},
"yaxis": {
"gridcolor": "#E1E5ED",
"showgrid": true,
"tickfont": {
"color": "#4D5663"
},
"title": {
"font": {
"color": "#4D5663"
},
"text": ""
},
"zerolinecolor": "#E1E5ED"
}
}
},
"text/html": [
"<div>\n",
" \n",
" \n",
" <div id=\"d5ba7712-ede7-420b-bbee-0fbdc850a92f\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>\n",
" <script type=\"text/javascript\">\n",
" require([\"plotly\"], function(Plotly) {\n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" window.PLOTLYENV.BASE_URL='https://plot.ly';\n",
" \n",
" if (document.getElementById(\"d5ba7712-ede7-420b-bbee-0fbdc850a92f\")) {\n",
" Plotly.newPlot(\n",
" 'd5ba7712-ede7-420b-bbee-0fbdc850a92f',\n",
" [{\"marker\": {\"color\": \"rgba(255, 153, 51, 0.6)\", \"line\": {\"color\": \"rgba(255, 153, 51, 1.0)\", \"width\": 1}}, \"name\": \"\\uacf5\\ubd80\\ud558\\uba70 \\uc801\\uc5b4\\ub193\\uae30 1\", \"orientation\": \"v\", \"text\": \"\", \"type\": \"bar\", \"x\": [0, 1, 2, 3, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], \"y\": [0.1111111111111111, 0.13333333333333333, 0.0, 0.0, 1.0, 0.0, 0.4, 0.5, 0.1875, 0.375, 0.375, 0.45, 0.16666666666666666, 0.4, 0.1, 0.09090909090909091, 0.4, 0.15]}, {\"marker\": {\"color\": \"rgba(55, 128, 191, 0.6)\", \"line\": {\"color\": \"rgba(55, 128, 191, 1.0)\", \"width\": 1}}, \"name\": \"\\uacf5\\ubd80\\ud558\\uba70 \\uc801\\uc5b4\\ub193\\uae30 2\", \"orientation\": \"v\", \"text\": \"\", \"type\": \"bar\", \"x\": [0, 1, 2, 3, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], \"y\": [0.0, 0.06666666666666667, 0.0, 0.0, 0.0, 0.0, 0.2, 0.0, 0.4375, 0.4375, 0.4375, 0.35, 0.08333333333333333, 0.0, 0.1, 0.0, 0.0, 0.15]}, {\"marker\": {\"color\": \"rgba(50, 171, 96, 0.6)\", \"line\": {\"color\": \"rgba(50, 171, 96, 1.0)\", \"width\": 1}}, \"name\": \"\\ube14\\ub85c\\uae45\", \"orientation\": \"v\", \"text\": \"\", \"type\": \"bar\", \"x\": [0, 1, 2, 3, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], \"y\": [0.0, 0.06666666666666667, 0.25, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0625, 0.0, 0.0625, 0.05, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}, {\"marker\": {\"color\": \"rgba(128, 0, 128, 0.6)\", \"line\": {\"color\": \"rgba(128, 0, 128, 1.0)\", \"width\": 1}}, \"name\": \"\\uc2dc\\ud589\\ucc29\\uc624 \\ub178\\ud2b8\", \"orientation\": \"v\", \"text\": \"\", \"type\": \"bar\", \"x\": [0, 1, 2, 3, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], \"y\": [0.0, 0.06666666666666667, 0.25, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.125, 0.0625, 0.0, 0.0, 0.0, 0.0, 0.09090909090909091, 0.0, 0.0]}, {\"marker\": {\"color\": \"rgba(219, 64, 82, 0.6)\", \"line\": {\"color\": \"rgba(219, 64, 82, 1.0)\", \"width\": 1}}, \"name\": \"\\uc77c\\uc0c1, \\uc0dd\\uac01, \\uacbd\\ud5d8\", \"orientation\": \"v\", \"text\": \"\", \"type\": \"bar\", \"x\": [0, 1, 2, 3, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], \"y\": [0.2222222222222222, 0.26666666666666666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05, 0.08333333333333333, 0.0, 0.0, 0.09090909090909091, 0.0, 0.05]}, {\"marker\": {\"color\": \"rgba(0, 128, 128, 0.6)\", \"line\": {\"color\": \"rgba(0, 128, 128, 1.0)\", \"width\": 1}}, \"name\": \"\\ucc45 \\uc77d\\uae30\", \"orientation\": \"v\", \"text\": \"\", \"type\": \"bar\", \"x\": [0, 1, 2, 3, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], \"y\": [0.1111111111111111, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08333333333333333, 0.0, 0.0, 0.0, 0.0, 0.0]}, {\"marker\": {\"color\": \"rgba(255, 255, 51, 0.6)\", \"line\": {\"color\": \"rgba(255, 255, 51, 1.0)\", \"width\": 1}}, \"name\": \"\\ucde8\\uc5c5\\uacfc \\uae30\\ubcf8\\uae30 \\ud2bc\\ud2bc\", \"orientation\": \"v\", \"text\": \"\", \"type\": \"bar\", \"x\": [0, 1, 2, 3, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], \"y\": [0.1111111111111111, 0.4, 0.5, 0.0, 0.0, 1.0, 0.4, 0.0, 0.3125, 0.0625, 0.0625, 0.1, 0.5833333333333334, 0.6, 0.7, 0.7272727272727273, 0.6, 0.45]}, {\"marker\": {\"color\": \"rgba(128, 128, 0, 0.6)\", \"line\": {\"color\": \"rgba(128, 128, 0, 1.0)\", \"width\": 1}}, \"name\": \"\\ud504\\ub85c\\uc81d\\ud2b8\\ub4e4\", \"orientation\": \"v\", \"text\": \"\", \"type\": \"bar\", \"x\": [0, 1, 2, 3, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], \"y\": [0.4444444444444444, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.2]}],\n",
" {\"barmode\": \"stack\", \"legend\": {\"bgcolor\": \"#FFFFFF\", \"font\": {\"color\": \"#4D5663\"}, \"traceorder\": \"normal\"}, \"paper_bgcolor\": \"#FFFFFF\", \"plot_bgcolor\": \"#FFFFFF\", \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#2a3f5f\"}, \"error_y\": {\"color\": \"#2a3f5f\"}, \"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"baxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#EBF0F8\"}, \"line\": {\"color\": \"white\"}}, \"header\": {\"fill\": {\"color\": \"#C8D4E3\"}, \"line\": {\"color\": \"white\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#2a3f5f\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#2a3f5f\"}, \"geo\": {\"bgcolor\": \"white\", \"lakecolor\": \"white\", \"landcolor\": \"#E5ECF6\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"white\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"light\"}, \"paper_bgcolor\": \"white\", \"plot_bgcolor\": \"#E5ECF6\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"radialaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"yaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"zaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#2a3f5f\"}}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"caxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}}}, \"title\": {\"font\": {\"color\": \"#4D5663\"}}, \"xaxis\": {\"gridcolor\": \"#E1E5ED\", \"showgrid\": true, \"tickfont\": {\"color\": \"#4D5663\"}, \"title\": {\"font\": {\"color\": \"#4D5663\"}, \"text\": \"\"}, \"zerolinecolor\": \"#E1E5ED\"}, \"yaxis\": {\"gridcolor\": \"#E1E5ED\", \"showgrid\": true, \"tickfont\": {\"color\": \"#4D5663\"}, \"title\": {\"font\": {\"color\": \"#4D5663\"}, \"text\": \"\"}, \"zerolinecolor\": \"#E1E5ED\"}},\n",
" {\"showLink\": true, \"linkText\": \"Export to plot.ly\", \"plotlyServerURL\": \"https://plot.ly\", \"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('d5ba7712-ede7-420b-bbee-0fbdc850a92f');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" });\n",
" </script>\n",
" </div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pvt = df_posts.pivot_table(index='hour', columns='category_1', aggfunc='size', fill_value=0)\n",
"pvt = pvt.div(pvt.sum(axis=1), axis=0)\n",
"pvt.iplot('bar', barmode='stack')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 나는 어떤 글들을 썼을까?"
]
},
{
"cell_type": "code",
"execution_count": 171,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:45.955303Z",
"start_time": "2020-03-03T06:58:45.933528Z"
}
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": true
},
"data": [
{
"hole": 0.4,
"labels": [
"공부하며 적어놓기 1",
"공부하며 적어놓기 2",
"블로깅",
"시행착오 노트",
"일상, 생각, 경험",
"책 읽기",
"취업과 기본기 튼튼",
"프로젝트들"
],
"marker": {
"colors": [
"rgba(255, 153, 51, 1.0)",
"rgba(55, 128, 191, 1.0)",
"rgba(50, 171, 96, 1.0)",
"rgba(128, 0, 128, 1.0)",
"rgba(219, 64, 82, 1.0)",
"rgba(0, 128, 128, 1.0)",
"rgba(255, 255, 51, 1.0)",
"rgba(128, 128, 0, 1.0)"
]
},
"name": "",
"type": "pie",
"values": [
48,
35,
6,
6,
10,
2,
67,
10
]
}
],
"layout": {
"legend": {
"bgcolor": "#FFFFFF",
"font": {
"color": "#4D5663"
}
},
"paper_bgcolor": "#FFFFFF",
"plot_bgcolor": "#FFFFFF",
"titlefont": {
"color": "#4D5663"
}
}
},
"text/html": [
"<div>\n",
" \n",
" \n",
" <div id=\"506565b1-2af4-4d12-99cf-5c11a1632854\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>\n",
" <script type=\"text/javascript\">\n",
" require([\"plotly\"], function(Plotly) {\n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" window.PLOTLYENV.BASE_URL='https://plot.ly';\n",
" \n",
" if (document.getElementById(\"506565b1-2af4-4d12-99cf-5c11a1632854\")) {\n",
" Plotly.newPlot(\n",
" '506565b1-2af4-4d12-99cf-5c11a1632854',\n",
" [{\"hole\": 0.4, \"labels\": [\"\\uacf5\\ubd80\\ud558\\uba70 \\uc801\\uc5b4\\ub193\\uae30 1\", \"\\uacf5\\ubd80\\ud558\\uba70 \\uc801\\uc5b4\\ub193\\uae30 2\", \"\\ube14\\ub85c\\uae45\", \"\\uc2dc\\ud589\\ucc29\\uc624 \\ub178\\ud2b8\", \"\\uc77c\\uc0c1, \\uc0dd\\uac01, \\uacbd\\ud5d8\", \"\\ucc45 \\uc77d\\uae30\", \"\\ucde8\\uc5c5\\uacfc \\uae30\\ubcf8\\uae30 \\ud2bc\\ud2bc\", \"\\ud504\\ub85c\\uc81d\\ud2b8\\ub4e4\"], \"marker\": {\"colors\": [\"rgba(255, 153, 51, 1.0)\", \"rgba(55, 128, 191, 1.0)\", \"rgba(50, 171, 96, 1.0)\", \"rgba(128, 0, 128, 1.0)\", \"rgba(219, 64, 82, 1.0)\", \"rgba(0, 128, 128, 1.0)\", \"rgba(255, 255, 51, 1.0)\", \"rgba(128, 128, 0, 1.0)\"]}, \"name\": \"\", \"type\": \"pie\", \"values\": [48, 35, 6, 6, 10, 2, 67, 10]}],\n",
" {\"legend\": {\"bgcolor\": \"#FFFFFF\", \"font\": {\"color\": \"#4D5663\"}}, \"paper_bgcolor\": \"#FFFFFF\", \"plot_bgcolor\": \"#FFFFFF\", \"titlefont\": {\"color\": \"#4D5663\"}},\n",
" {\"showLink\": true, \"linkText\": \"Export to plot.ly\", \"plotlyServerURL\": \"https://plot.ly\", \"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('506565b1-2af4-4d12-99cf-5c11a1632854');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" });\n",
" </script>\n",
" </div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"tmp = df_posts.groupby('category_1').size().reset_index()\n",
"tmp.columns = ['category', 'size']\n",
"tmp.iplot('pie', labels='category', values='size', hole=.4)"
]
},
{
"cell_type": "code",
"execution_count": 172,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:45.968942Z",
"start_time": "2020-03-03T06:58:45.957397Z"
}
},
"outputs": [],
"source": [
"tmp = df_posts.groupby(['category_1', 'category_2']).size().reset_index()\n",
"tmp.rename({0: '포스팅 수'}, axis=1, inplace=True)\n",
"\n",
"categories = ['취업과 기본기 튼튼', '공부하며 적어놓기 1', '공부하며 적어놓기 2']\n",
"tmp = tmp[tmp['category_1'].isin(categories)]"
]
},
{
"cell_type": "code",
"execution_count": 173,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:46.019555Z",
"start_time": "2020-03-03T06:58:45.971260Z"
}
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": true
},
"data": [
{
"hole": 0.4,
"labels": [
"데이터 with 파이썬",
"데이터 시각화",
"머신러닝",
"커널 공부하기",
"통계 기초 공부"
],
"marker": {
"colors": [
"rgba(255, 153, 51, 1.0)",
"rgba(55, 128, 191, 1.0)",
"rgba(50, 171, 96, 1.0)",
"rgba(128, 0, 128, 1.0)",
"rgba(219, 64, 82, 1.0)"
]
},
"name": "",
"type": "pie",
"values": [
10,
13,
11,
6,
8
]
}
],
"layout": {
"legend": {
"bgcolor": "#FFFFFF",
"font": {
"color": "#4D5663"
}
},
"paper_bgcolor": "#FFFFFF",
"plot_bgcolor": "#FFFFFF",
"title": "공부하며 적어놓기 1",
"titlefont": {
"color": "#4D5663"
}
}
},
"text/html": [
"<div>\n",
" \n",
" \n",
" <div id=\"913795c3-ed00-48cd-b196-d3526d3814c7\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>\n",
" <script type=\"text/javascript\">\n",
" require([\"plotly\"], function(Plotly) {\n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" window.PLOTLYENV.BASE_URL='https://plot.ly';\n",
" \n",
" if (document.getElementById(\"913795c3-ed00-48cd-b196-d3526d3814c7\")) {\n",
" Plotly.newPlot(\n",
" '913795c3-ed00-48cd-b196-d3526d3814c7',\n",
" [{\"hole\": 0.4, \"labels\": [\"\\ub370\\uc774\\ud130 with \\ud30c\\uc774\\uc36c\", \"\\ub370\\uc774\\ud130 \\uc2dc\\uac01\\ud654\", \"\\uba38\\uc2e0\\ub7ec\\ub2dd\", \"\\ucee4\\ub110 \\uacf5\\ubd80\\ud558\\uae30\", \"\\ud1b5\\uacc4 \\uae30\\ucd08 \\uacf5\\ubd80\"], \"marker\": {\"colors\": [\"rgba(255, 153, 51, 1.0)\", \"rgba(55, 128, 191, 1.0)\", \"rgba(50, 171, 96, 1.0)\", \"rgba(128, 0, 128, 1.0)\", \"rgba(219, 64, 82, 1.0)\"]}, \"name\": \"\", \"type\": \"pie\", \"values\": [10, 13, 11, 6, 8]}],\n",
" {\"legend\": {\"bgcolor\": \"#FFFFFF\", \"font\": {\"color\": \"#4D5663\"}}, \"paper_bgcolor\": \"#FFFFFF\", \"plot_bgcolor\": \"#FFFFFF\", \"title\": \"\\uacf5\\ubd80\\ud558\\uba70 \\uc801\\uc5b4\\ub193\\uae30 1\", \"titlefont\": {\"color\": \"#4D5663\"}},\n",
" {\"showLink\": true, \"linkText\": \"Export to plot.ly\", \"plotlyServerURL\": \"https://plot.ly\", \"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('913795c3-ed00-48cd-b196-d3526d3814c7');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" });\n",
" </script>\n",
" </div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": true
},
"data": [
{
"hole": 0.4,
"labels": [
"웹 백엔드 with 자바",
"자바로 개발하기"
],
"marker": {
"colors": [
"rgba(255, 153, 51, 1.0)",
"rgba(55, 128, 191, 1.0)"
]
},
"name": "",
"type": "pie",
"values": [
33,
2
]
}
],
"layout": {
"legend": {
"bgcolor": "#FFFFFF",
"font": {
"color": "#4D5663"
}
},
"paper_bgcolor": "#FFFFFF",
"plot_bgcolor": "#FFFFFF",
"title": "공부하며 적어놓기 2",
"titlefont": {
"color": "#4D5663"
}
}
},
"text/html": [
"<div>\n",
" \n",
" \n",
" <div id=\"afd15112-b510-40a3-a902-96f3c9f4b21f\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>\n",
" <script type=\"text/javascript\">\n",
" require([\"plotly\"], function(Plotly) {\n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" window.PLOTLYENV.BASE_URL='https://plot.ly';\n",
" \n",
" if (document.getElementById(\"afd15112-b510-40a3-a902-96f3c9f4b21f\")) {\n",
" Plotly.newPlot(\n",
" 'afd15112-b510-40a3-a902-96f3c9f4b21f',\n",
" [{\"hole\": 0.4, \"labels\": [\"\\uc6f9 \\ubc31\\uc5d4\\ub4dc with \\uc790\\ubc14\", \"\\uc790\\ubc14\\ub85c \\uac1c\\ubc1c\\ud558\\uae30\"], \"marker\": {\"colors\": [\"rgba(255, 153, 51, 1.0)\", \"rgba(55, 128, 191, 1.0)\"]}, \"name\": \"\", \"type\": \"pie\", \"values\": [33, 2]}],\n",
" {\"legend\": {\"bgcolor\": \"#FFFFFF\", \"font\": {\"color\": \"#4D5663\"}}, \"paper_bgcolor\": \"#FFFFFF\", \"plot_bgcolor\": \"#FFFFFF\", \"title\": \"\\uacf5\\ubd80\\ud558\\uba70 \\uc801\\uc5b4\\ub193\\uae30 2\", \"titlefont\": {\"color\": \"#4D5663\"}},\n",
" {\"showLink\": true, \"linkText\": \"Export to plot.ly\", \"plotlyServerURL\": \"https://plot.ly\", \"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('afd15112-b510-40a3-a902-96f3c9f4b21f');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" });\n",
" </script>\n",
" </div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": true
},
"data": [
{
"hole": 0.4,
"labels": [
"빽 투더 기본기",
"취업과 기본기 튼튼",
"코딩 테스트 노트"
],
"marker": {
"colors": [
"rgba(255, 153, 51, 1.0)",
"rgba(55, 128, 191, 1.0)",
"rgba(50, 171, 96, 1.0)"
]
},
"name": "",
"type": "pie",
"values": [
29,
1,
37
]
}
],
"layout": {
"legend": {
"bgcolor": "#FFFFFF",
"font": {
"color": "#4D5663"
}
},
"paper_bgcolor": "#FFFFFF",
"plot_bgcolor": "#FFFFFF",
"title": "취업과 기본기 튼튼",
"titlefont": {
"color": "#4D5663"
}
}
},
"text/html": [
"<div>\n",
" \n",
" \n",
" <div id=\"903d664f-c835-47c0-9c03-7d331eb1a81a\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>\n",
" <script type=\"text/javascript\">\n",
" require([\"plotly\"], function(Plotly) {\n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" window.PLOTLYENV.BASE_URL='https://plot.ly';\n",
" \n",
" if (document.getElementById(\"903d664f-c835-47c0-9c03-7d331eb1a81a\")) {\n",
" Plotly.newPlot(\n",
" '903d664f-c835-47c0-9c03-7d331eb1a81a',\n",
" [{\"hole\": 0.4, \"labels\": [\"\\ube7d \\ud22c\\ub354 \\uae30\\ubcf8\\uae30\", \"\\ucde8\\uc5c5\\uacfc \\uae30\\ubcf8\\uae30 \\ud2bc\\ud2bc\", \"\\ucf54\\ub529 \\ud14c\\uc2a4\\ud2b8 \\ub178\\ud2b8\"], \"marker\": {\"colors\": [\"rgba(255, 153, 51, 1.0)\", \"rgba(55, 128, 191, 1.0)\", \"rgba(50, 171, 96, 1.0)\"]}, \"name\": \"\", \"type\": \"pie\", \"values\": [29, 1, 37]}],\n",
" {\"legend\": {\"bgcolor\": \"#FFFFFF\", \"font\": {\"color\": \"#4D5663\"}}, \"paper_bgcolor\": \"#FFFFFF\", \"plot_bgcolor\": \"#FFFFFF\", \"title\": \"\\ucde8\\uc5c5\\uacfc \\uae30\\ubcf8\\uae30 \\ud2bc\\ud2bc\", \"titlefont\": {\"color\": \"#4D5663\"}},\n",
" {\"showLink\": true, \"linkText\": \"Export to plot.ly\", \"plotlyServerURL\": \"https://plot.ly\", \"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('903d664f-c835-47c0-9c03-7d331eb1a81a');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" });\n",
" </script>\n",
" </div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"grp = tmp.groupby('category_1')\n",
"for grp_name, grp_df in grp:\n",
" size_by_cat2 = grp_df.groupby('category_2').sum().reset_index()\n",
" size_by_cat2.iplot(kind='pie', labels='category_2', values='포스팅 수', title=grp_name, hole=0.4)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"원래는 아래 코드와 같이 파이 그래프 3개를 하나로 묶어서 표현하려고 했으나, \n",
"plotly subplots 에는 각각 파이마다 레전드를 달 수가 없음 (현재 지원 x) \n",
"~~따라서 위 같이 그냥 하나씩 그린 후에 그냥 포토샵으로 묶어야 겠다...._~~\n",
"\n",
"엑셀로 그리니까 편하다 ㅠㅠㅠㅠ \n",
"아래 코드들 다 안씀."
]
},
{
"cell_type": "code",
"execution_count": 174,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:46.024833Z",
"start_time": "2020-03-03T06:58:46.021803Z"
},
"code_folding": [],
"scrolled": true
},
"outputs": [],
"source": [
"# grp = tmp.groupby('category_1')\n",
"# plots = []\n",
"# for grp_name, grp_df in grp:\n",
"# size_by_cat2 = grp_df.groupby('category_2').sum().reset_index()\n",
"# plots.append(size_by_cat2.figure(kind='pie', labels='category_2', values='포스팅 수')['data'][0])\n",
"\n",
"# from plotly.subplots import make_subplots\n",
"\n",
"# fig = make_subplots(rows=1, cols=3, specs=[[{'type':'domain'}, {'type':'domain'}, {'type':'domain'}]]) # pie 라서 ..\n",
"# fig.add_traces(plots, rows=[1,1,1], cols=[1,2,3])\n",
"# fig.update_traces(hole=.4)\n",
"# fig.show()"
]
},
{
"cell_type": "code",
"execution_count": 175,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:46.029834Z",
"start_time": "2020-03-03T06:58:46.026975Z"
}
},
"outputs": [],
"source": [
"# tmp = tmp[tmp['category_1'] != tmp['category_2']]\n",
"\n",
"# category_1 = tmp['category_1'].unique().tolist()\n",
"# category_2 = tmp['category_2'].tolist()\n",
"# parents = len(category_1)*[\"\"] + tmp['category_1'].tolist()\n",
"# # values = tmp.groupby('category_1')['포스팅 수'].sum().tolist() + tmp['포스팅 수'].tolist()\n",
"# values = len(category_1)*[0] + tmp['포스팅 수'].tolist()"
]
},
{
"cell_type": "code",
"execution_count": 176,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:46.034736Z",
"start_time": "2020-03-03T06:58:46.032242Z"
},
"scrolled": true
},
"outputs": [],
"source": [
"# fig = go.Figure(go.Sunburst(\n",
"# labels=category_1+category_2,\n",
"# parents=parents,\n",
"# values=values\n",
"# ))\n",
"# fig.update_layout(margin = dict(t=0, l=0, r=0, b=0))\n",
"# fig.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 준비 작업"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"먼저 각 포스팅 데이터를 받아오자"
]
},
{
"cell_type": "code",
"execution_count": 177,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:58:46.041167Z",
"start_time": "2020-03-03T06:58:46.037261Z"
}
},
"outputs": [],
"source": [
"def get_post_content(post_id):\n",
" url = \"https://www.tistory.com/apis/post/read\"\n",
" params = {\n",
" 'output': 'json',\n",
" 'access_token': access_token,\n",
" 'blogName': 'dailyheumsi',\n",
" 'postId': post_id,\n",
" }\n",
" return requests.get(url, params)"
]
},
{
"cell_type": "code",
"execution_count": 178,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:15.410607Z",
"start_time": "2020-03-03T06:58:46.043951Z"
}
},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "9586e654dc5e4269a6ae61c19ceb9f65",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"HBox(children=(IntProgress(value=0, max=205), HTML(value='')))"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"# id 0 부터 끝까지 넣어보며 post 받아오기.\n",
"# 나는 마지막 포스팅 id 가 204 임을 확인함\n",
"detail_posts = []\n",
"\n",
"for post_id in tqdm_notebook(range(205)):\n",
" res = get_post_content(post_id)\n",
" if res.status_code != 200:\n",
" continue\n",
" \n",
" res = json.loads(res.content)\n",
" if res['tistory']['item']['visibility'] != '20':\n",
" continue\n",
" \n",
" content = res['tistory']['item']['content']\n",
" detail_posts.append([post_id, content])"
]
},
{
"cell_type": "code",
"execution_count": 179,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:15.426005Z",
"start_time": "2020-03-03T06:59:15.413063Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>content</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4</td>\n",
" <td>&lt;p&gt;1 * 2 * .. * n 과 같은 꼴을 팩토리얼이라 하고, 기호로 n! 이라...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5</td>\n",
" <td>&lt;p cid=\"n0\" mdtype=\"paragraph\" class=\"md-end-b...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>6</td>\n",
" <td>&lt;p&gt;당신이 컴퓨터공학과 출신이거나 혹은 신입 개발자 취업 준비를 해왔다면, 수 많...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>8</td>\n",
" <td>&lt;p&gt;만약에, 면접장에서 큐를 구현해보라는 말을 들으면 어떻게 해야할까? 이런 기본...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>9</td>\n",
" <td>&lt;p&gt;[##_Image|kage@JBi9h/btqzyhu4JHV/S8kXHSV2Rk...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id content\n",
"0 4 <p>1 * 2 * .. * n 과 같은 꼴을 팩토리얼이라 하고, 기호로 n! 이라...\n",
"1 5 <p cid=\"n0\" mdtype=\"paragraph\" class=\"md-end-b...\n",
"2 6 <p>당신이 컴퓨터공학과 출신이거나 혹은 신입 개발자 취업 준비를 해왔다면, 수 많...\n",
"3 8 <p>만약에, 면접장에서 큐를 구현해보라는 말을 들으면 어떻게 해야할까? 이런 기본...\n",
"4 9 <p>[##_Image|kage@JBi9h/btqzyhu4JHV/S8kXHSV2Rk..."
]
},
"execution_count": 179,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_detail_posts = pd.DataFrame(detail_posts, columns=['id', 'content'])\n",
"df_detail_posts.head()"
]
},
{
"cell_type": "code",
"execution_count": 180,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:15.441047Z",
"start_time": "2020-03-03T06:59:15.428331Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 184 entries, 0 to 183\n",
"Data columns (total 2 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 id 184 non-null int64 \n",
" 1 content 184 non-null object\n",
"dtypes: int64(1), object(1)\n",
"memory usage: 3.0+ KB\n"
]
}
],
"source": [
"df_detail_posts.info()"
]
},
{
"cell_type": "code",
"execution_count": 181,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:16.819078Z",
"start_time": "2020-03-03T06:59:15.444982Z"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/heumsi/anaconda3/envs/py36/lib/python3.6/site-packages/bs4/__init__.py:181: UserWarning:\n",
"\n",
"No parser was explicitly specified, so I'm using the best available HTML parser for this system (\"lxml\"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.\n",
"\n",
"The code that caused this warning is on line 193 of the file /Users/heumsi/anaconda3/envs/py36/lib/python3.6/runpy.py. To get rid of this warning, change code that looks like this:\n",
"\n",
" BeautifulSoup(YOUR_MARKUP})\n",
"\n",
"to this:\n",
"\n",
" BeautifulSoup(YOUR_MARKUP, \"lxml\")\n",
"\n",
"\n"
]
}
],
"source": [
"# content 에서 html tag 모두 제거\n",
"def remove_html(html):\n",
" bs = BeautifulSoup(html)\n",
" return bs.get_text()\n",
"\n",
"df_detail_posts['content'] = df_detail_posts['content'].apply(lambda x: remove_html(x))\n",
"df_detail_posts['content'] = df_detail_posts['content'].str.replace('\\n', ' ')"
]
},
{
"cell_type": "code",
"execution_count": 182,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:16.831153Z",
"start_time": "2020-03-03T06:59:16.821543Z"
}
},
"outputs": [],
"source": [
"# 이를 다시 df_posts 로 모아주자.\n",
"df_posts = pd.merge(df_posts, df_detail_posts, how='left')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"근데 이후에 결국에 글 내용은 결국 안쓰고, 타이틀만 씀..."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### LDA 로 주제 분석"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"비율이 가장 높았던 3개의 카테고리 내 포스팅들은 어떤 주제를 가지고 있나 살펴보자."
]
},
{
"cell_type": "code",
"execution_count": 183,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:16.839060Z",
"start_time": "2020-03-03T06:59:16.835279Z"
}
},
"outputs": [],
"source": [
"categories = [\n",
" '공부하며 적어놓기 1',\n",
" '공부하며 적어놓기 2',\n",
" '취업과 기본기 튼튼'\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 184,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:16.847422Z",
"start_time": "2020-03-03T06:59:16.841395Z"
}
},
"outputs": [],
"source": [
"def get_tokenized_corpus(corpus, tagger):\n",
" # 참고: https://ratsgo.github.io/korean%20linguistics/2017/03/15/words/#%EC%A3%BC%EA%B2%A9%EC%A1%B0%EC%82%AC\n",
" stopwords = list(\"[]().,?!@#$%^&*~+-/<>\\n\") + list(map(str, range(10))) + list(\"은는이가을를의과와만도로의에\") + ['\\xa0']\n",
" tokenized_corpus = []\n",
"\n",
" for title in corpus:\n",
" # words = tagger.nouns(title) # <- 1) 성능이 너무 안나온다.\n",
" words = []\n",
" for word, tag in tagger.pos(title):\n",
" if tag in ['Foreign', 'Alpha', 'Noun']: # <- 2) 따라서 수동으로 단어들을 찾아냄.\n",
" words.append(word)\n",
"\n",
" words = [word for word in words if word not in stopwords]\n",
" tokenized_corpus.append(words)\n",
" return tokenized_corpus"
]
},
{
"cell_type": "code",
"execution_count": 185,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:16.861160Z",
"start_time": "2020-03-03T06:59:16.852543Z"
}
},
"outputs": [],
"source": [
"def draw_word_score_heatmap(topn, cmap, num_topic, lda_model, dictionary):\n",
" word_score = []\n",
"\n",
" for topic_id in range(num_topic):\n",
" for word_id, score in lda_model.get_topic_terms(topic_id, topn=topn):\n",
" word_score.append([topic_id, dictionary[word_id], score])\n",
" \n",
" df_topic_words = pd.DataFrame(word_score, columns=['topic_id', 'word', 'score'])\n",
" \n",
" # 참고 : https://brunch.co.kr/@goodvc78/13#comment\n",
" # 참고에 해당하는 topic - score heatmap 을 만들어보려함.\n",
"\n",
" labels, scores = [], []\n",
" for grp_name, grp_df in df_topic_words.groupby('topic_id'):\n",
" grp_df.sort_values('score', inplace=True, ascending=False)\n",
"\n",
" labels.append(grp_df['word'].tolist())\n",
" scores.append(grp_df['score'].tolist())\n",
" \n",
" tmp = pd.DataFrame(scores)\n",
"\n",
" plt.figure()\n",
" ax = sns.heatmap(tmp, cmap=cmap, square=True, annot=np.array(labels), fmt='', cbar_kws={\"shrink\": 0.5})\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 186,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:20.257344Z",
"start_time": "2020-03-03T06:59:16.863244Z"
},
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"공부하며 적어놓기 1\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABA4AAAHlCAYAAAB1Zb6mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XmcTeUDx/HPuffOZixjl33fd5F9jWwlW2QrCQmFNkVZQgqVSFFSEoqQSIUk+77v+zp2Y/aZu5zfH5dhzNyZ4Ycx5vt+vebFPfec5zznzJ17zvme53mOYZomIiIiIiIiIiLxsSR3BURERERERETk4aXgQEREREREREQ8UnAgIiIiIiIiIh4pOBARERERERERjxQciIiIiIiIiIhHCg5ERERERERExCMFByIiIiIiIiLikYIDEREREREREfFIwYGIiIiIiIiIeGR70Ct0zXvVfNDrFJEUKlfp5K6ByP/NyFosuasgcm9kyJvcNRCRFMLIXMRI7jrIvaUWByIiIiIiIiLikYIDEREREREREfFIwYGIiIiIiIiIeKTgQEREREREREQ8UnAgIiIiIiIiIh4pOBARERERERERjxQciIiIiIiIiIhHCg5ERERERERExCMFByIiIiIiIiLikYIDEREREREREfFIwYGIiIiIiIiIeKTgQEREREREREQ8UnAgIiIiIiIiIh4pOBARERERERERjxQciIiIiIiIiIhHCg5ERERERERExCMFByIiIiIiIiLikYIDEREREREREfFIwYGIiIiIiIiIeKTgQEREREREREQ8UnAgIiIiIiIiIh4pOBARERERERERjxQciIiIiIiIiIhHCg5ERERERERExCMFByIiIiIiIiLikYIDEREREREREfFIwYGIiIiIiIiIeKTgQEREREREREQ8UnAgIiIiIiIiIh4pOBARERERERERjxQciIiIiIiIiIhHCg5ERERERERExCMFByIiIiIiIiLikYIDEREREREREfFIwYGIiIiIiIiIeKTgQEREREREREQ8UnAgIiIiIiIiIh49csHB/C1nKT3oHyoN+ZdKQ/7l8aH/0vyz9UxecRy703VP1nHmagTl3l8BQNNP17HtxLVEl9l49Cobj169J+t/GGw8epWS7y2P2c+3/oxdcjjR5edvOcuZqxEPoKaPlgvBUbw/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M7z38Cm6vz+RNbM+vifrTRYZ8iZ3DTw6HXg+1iMURR4Wl68EUaN5J+Z//0WydGOp/UwXXurQihfbP/tA12tkLqK+go+YRNvLm6YZAYy9/iMiIrcpmT9bnNAAYNo77tGJrRZLgiMuS8KqlcpLtVLxX7D8NLhtzECJADXL5qNm2cQfVyXy/woNi8BqtfLr3+t45+XYI5EfORnI59MX8m6PNhQvmJvT5y4z4qtfaHe99YCIpB6ZMwWwf23yte75b+H0ZFu3PFoe3Y72IiLJzEstCe477WNJLl/8uIi5f6+l7VM1qFK2aKz3KpQsSPO6lXnnPr4HAAAgAElEQVR7zPecPneZbJkz0KxuZXo93ySZaisiIvL/SbSrwr2mrgoikmQppKuCSEIexq4KInflIe6qICIPF3VVePSkrucEioiIiIiIiMgdUXAgIiIiIiIiIh4pOBARERERERERjxQciIiIiIiIiIhHCg5ERERERERExCMFByIiIiIiIiLikYIDEREREREREfFIwYGIiIiIiIiIeKTgQEREREREREQ8UnAgIiIiIiIiIh4pOBARERERERERjxQciIiIiIiIiIhHCg5ERERERERExCMFByIiIiIiIiLikYIDEREREREREfFIwYGIiIiIiIiIeKTgQEREREREREQ8UnAgIiIiIiIiIh4pOBARERERERERjxQciIiIiIiIiIhHCg5ERERERERExCMFByIiIiIiIiLikYIDEREREREREfFIwYGIiIiIiIiIeKTgQEREREREREQ8UnAgIiIiIiIiIh4pOBARERERERERjxQciIiIiIiIiIhHCg5ERERERERExCMFByIiIiIiIiLikYIDEREREREREfFIwYGIiIiIiIiIeKTgQEREREREREQ8UnAgIiIiIiIiIh4pOBARERERERERj2zJXQERERERERGRlGJocS/zjpfZbzfuR10elAcfHGQt+MBXKSIpVHR4ctdA5P9mntmW3FV45BnFmyZ3FVIHlz25ayAi8lBI0QnAXVKLAxEREREREZEkMlJhcqDgQERERERERCSJUuNAgQoORERERERERJIoNbY4SI1hiYiIiIiIiIgkkVociIiIiIiIiCRRKmxwoOBAREREREREJKlSY1cFBQciIiIiIiIiSZQa+/srOBARERERERFJIrU4EBERERERERGPUmFuoOBARERE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xcBs59y6POUvA22KcFaFUuBAREREREREJF7Fk3FQH1gSo/z3yLY90a65mc0ys3Vm9puZjcwznKFAChyIiIiIiIiIxGs3Mg7MrJuZzcvx6JZnr2WADTGOth4oW0hv4m33LeH7/1uAKkALwoGFqfGcspZjFBEREREREYnXbizH6JybCEwspMo2IA34M095GrAljnZ55WrnnLs9z/bfzewKYK2Z1XDOrSzkGMo4EBEREREREYlb8cxxsAQ4IkZ5XWBRMbTDObcR+BeovqvOKXAgIiIiIiIiEq/imePgHaBD7sNYGtAksi27LO89/AzCcxfkzTpoB0wv/DSsPuHlG3/ZVecUOBARERERERGJV/FkHIwBGptZFzPzRJZZnAaMc86tBjCz2sAmMzszu5FzbhkwCZhkZpXMLMnMbgZOBsZFu2w2xcy6mll5M/OaWRPgTaC/c27TrjqnwIGIiIiIiIhIvIoh4yCy9OK5hJdl3ADMB74C+uWotgNIj/yZU2/gJ+BHYB3hiQ+bO+e25agzHmgGLAY2Ew5UDHbODYvnlDU5ooiIiIiIiEi84ssgKDLn3K9Ay0K2rwUqxyjPIhxg6Jev0c46XwBf7G7fFDgQERERERERiddurKpwoNNQBREREREREREpkDIOREREREREROJVTEMV9mcKHIiIiIiIiIjEKwGHKihwICIiIiIiIhIvZRyIiIiIiIiISIGUcSAiIiIiIiIiBVLGgYiIiIiIiIgUyKOMAxEREREREREpiIYqiIiIiIiIiEiBNFRBRERERERERAqkjAMRERERERERKZAyDkRERERERESkQAociIiIiIiIiEiBFDgQERERERERkQJpjgMRERERERERKZAyDkRERERERESkQAociIiIiIiIiEiBEnCoQuKFSkREREREREQkbso4EBEREREREYlXAg5VSLwzFhEREREREdld5in6I57dmtUws+lmtsnM1pjZEDPzxtHOzKyfma00s81m9p6Z1dlFm6fN7Jc4z3jvZxw88MZLe/uQIiJSkMyt+7oHIiIiUtKUOmhf96B4FUPGgZmVAmYCjwPtgUrAc8CDQN9dNB8EnBh5rAO6ATPNrKFzbluMY7UHzge2x9s/ZRyIiIiIiIiIxMus6I9d6wUsdM6Nc84FnHNrgU5ATzOrVnBXrBrQB7jaObc20nYc8C3QM0b9msBA4PainLICByIiIiIiIiLxKp6hCm2BaTkLnHMbgFlAq0LaXQzMds6ty1P+MtAmV7fDwx5eAG4F/omnU9kUOBARERERERGJV/EEDuoDS2KU/x7Ztifa9QO+dc59EE+HctKqCiIiIiIiIiLx8hT993cz60Z47oFsE51zE3M8LwNsiNF0PVC7kF2XAZYX0K5sjuOfDlwCNI63zzkpcCAiIiIiIiISr/jmLMglEiSYWEiVbUAa8Gee8jRgSxzt8oq2M7PywNNAe+dcRrx9zklDFURERERERETiVTxDFZYAR8Qorwss+j/bNQHqAHPNbKOZbQTeAY6MPH9nV51T4EBEREREREQkXsUTOHgH6JDrMGZphG/638lRlndnM4Dmkbo5tQOmAzjn3nbOlXLOpWU/CE+4+GvkeWGTLwIKHIiIiIiIiIjEr3iWYxwDNDazLmbmiSyzOA0Y55xbHT6s1QY2mdmZ2Y2cc8uAScAkM6tkZklmdjNwMjBuT52yAgciIiIiIiIi8SqGjIPI0ovnEl6WcQMwH/iK8EoI2XYA6ZE/c+oN/AT8CKwDWgDNnXPb/t9TzabJEUVERERERETiFd/QgyJzzv0KtCxk+1qgcozyLMIBhn75GhW8r0+Bo+Ktr8CBiIiIiIiISLyKKXCwP1PgQERERERERCReu7Ec44FOgQMRERERERGReCnjQEREREREREQKlICBg8Q7YxERERERERGJmzIOREREREREROKlOQ5EREREREREpEAJOFRBgQMRERERERGReClwICIiIiIiIiIFUuBARERERERERArk0RwHIiIiIiIiIlIQZRyIiIiIiIiISIEUOBARERERERGRAilwICIiIiIiIiIFMs1xICIiIiIiIiIFUuBARERERERERAqioQoiIiIiIiIiUiANVRARERERERGRginjQEREREREREQKoowDERERERERESlQAgYOEi/HQkRERERERGS3eXbjsWtmVsPMppvZJjNbY2ZDzMwbRzszs35mttLMNpvZe2ZWJ0+dc8zsNTP7O7L/uWZ2TlHOWERERERERET2ETMrBcyMPCoBxwMnAA/G0XwQ0Bg4EagIvA3MNLPSOeqMBaYDtYGDgBHA62ZWN57+aaiCiIiIiIiISLyKZ6hCL2Chc25c5PlaM+sErDCz0c651bG7YtWAPsChzrl1keJxZnY20BN4NFJ2mnNu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zJlpjnhOU+JAREREREREJNuUOBARERERERGRYFRxICIiIiIiIiLBKXEgIiIiIiIiIsGo4kBEREREREREglPiQERERERERESCUcWBiIiIiIiIiASX+xIHrlAHICIiIiIiIiLnLlUciIiIiIiIiGSXhiqIiIiIiIiISHBKHIiIiIiIiIhIMLkvb6DEgYiIiIiIiEj25b7MgRIHIiIiIiIiItmlHgdnQVLcWX/JXMdosgwRyR5n6y+hDiHsmXKXhzoEERGRsyr8L6vD/x2mp4oDERERERERkexSxYGIiIiIiIiIBJW3eK7LHKimXURERERERESCUuJARERERERERIJS4kBEREREREREglLiQERERERERESCUuJARERERERERIJS4kBEREREREREglLiQERERERERESCUuJARERERERERIJS4kBEREREREREglLiQERERERERESCUuJARERERERERIJS4kBEREREREREglLiQERERERERESCUuJARERERERERIJS4kBEREREREREglLiQERERERERESCUuJARERERERERIJS4kBEREREREREglLiQERERERERESCUuJARERERERERIJS4kBEREREREREglLiQERERERERESCUuJARERERERERIJS4kBEREREREREglLiQERERERERESCUuJARERERERERIJS4kBEREREREREglLiQERERERERESCUuJARERERERERIJS4kBEREREREREglLiQERERERERESCUuJARERERERERIJS4kBEREREREREglLiQERERERERESCUuJARERERERERIJS4kAkzC3fsIv9MccCj5O8PhzHhjCi88OzY75g5ryl//l52r/8Pt/9vioHIjr/rd++n5ZPT6DRQ0OZ88fqU247evp8Rk+fz+/LN3N3n8lnKcLcJyb2KIcOxxITe5QjR48F/h06HMvx44kA/P7XEh7o2ivEkYaG1+tj2qdfcFe7x2l47T00uaE1jzzZj+9++jVHX+eaux5myYo1PDdoOO98OOM/P9+Ro8eY8vGsHIhMJHtmfv0DrwwfD0DP/q/y5fc/hzii3KHvy28ycer0UIchuYQn1AGEUvuXP6TdLY25umG1bO+zeN0Onh37Fd+91SXDOmstxpjA46PxxymQNxqA35Zt5sM5/zD6mVb/PfBz3KadB3jk5Q+YN/5J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gYhIuFHiQEREchslDsKPrjBFREREREREJCglDkREREREREQkKCUORERERERERCQoJQ5EREREREREJCglDkREREREREQkKCUORERERERERCQoJQ5EREREREREJCglDkREREREREQkKCUORERERERERCQoJQ5EREREREREJCglDkREREREREQkKCUORERERERERCQoJQ5EREREREREJCglDkREREREREQkKCUORERERERERCQoJQ5EREREREREJCglDkREREREREQkKCUORERERERERCQoJQ5EREREREREJCglDkREREREREQkKCUORERERERERCQoJQ5EREREREREJCglDkREREREREQkKCUORERERERERCQoJQ5EREREREREJCglDkREREREREQkKCUORERERERERCQoJQ5EREREREREJCglDkREREREREQkKCUORERERERERCQoJQ5EREREREREJCglDkREREREREQkKCUORERERERERCQoJQ5EREREREREJCglDkREREREREQkKCUORERERERERCQoJQ5EREREREREJChjrQ11DOc8Y0xna+3EUMcRznSMzzwd47NDx/nM0zE+83SMzw4d5zNPx/jM0zE+83SM5VygioPs6RzqAHIBHeMzT8f47NBxPvN0jM88HeOzQ8f5zNMxPvN0jM88HWMJOSUORERERERERCQoJQ5EREREREREJCglDrJHY4rOPB3jM0/H+OzQcT7zdIzPPB3js0PH+czTMT7zdIzPPB1jCTk1RxQRERERERGRoFRxICIiIiIiIiJBKXEQhDGmrDFmpjEm1hiz2xgzyBjjDnVc4cwYs88YUyrUcYQTY4zLGNPGGDPHGLPXGLPfGDPLGFMj1LGFC2NMfWPMFGPMLmPMUWPMEmPM3aGOK9wZY/obY46HOo5wYoyZlPIZjkn3b0KoYws3xphWxpi/U84xNhljxhljokMdVzgwxkzI5DMcY4yJN8a0DXV84cIYU9IY87YxZmfK5/h3Y8zNoY4r3BhjahtjvjHGHEw5hxtvjCkU6rgkd1LiIBPGmLzA3JR/xYBLgAbA4FDGFa6MMfmMMT2B4qGOJQyVB9oDrwAVUh7/BfxojCkYysDCyJvAn0AtoDDwFDDWGHNFSKMKY8aYpsAjoY4jDEUAr1hrC6f792ioAwsnxpjuwMvAU9baQsClwGYgb0gDCxPW2kfTf4bx//bFAz+HOLywYIwxwDfAYfy/fRcAbwGfGmMahTK2cGKMqQosAGYBFwL18J9n/GCMiQplbJI7qcdBJowxvYBLrbWtUi0rAmwDalhrd4UsuDBjjOmBPyHjAqKA0tbaPaGNKnwYY1zWWieT5SuAntbauSEIK6wYY/Jba4+lW9YXKG6tfTpEYYWtlITXAuAZYLa1Vndpc4gx5j1gjbV2SKhjCVcpFwILgXrW2h2hjie3MMY8DVxirX0w1LGEA2NMNeCvlKRM6uWfAAuttW+EJrLwYowZBURZazunWuYB/gA+sNYOD1lwkiup4iBzdwMfp15grT2MP1N9W0giClPW2restXl18n9mBEkaRABFgaNnP6Lwkz5pkCIPkNly+e/GASOBtaEORORf6AR8rKTB2ZMyzPQJ/NVhkjMOAXmMMRVPLDDG5MdfnbswRDGFo2r4kwQB1lov/hkW7g1JRJKrKXGQuVrAukyWb0xZJ3JeMsa4gFHAWmvtH1ltL6fHGFPYGPMQ0BYYH+p4wo0xph2Qx1o7KdSxhLGGxpivUnrObDXGvGuM0TCynHM58GtK75k/jTEHUnod3BXqwMJYK2CztXZxqAMJF9bag8BzwAJjTC9jTBv8QxeGWmt/CW10YWUbUD2T5eWCLBc5ozyhDuAclR//uK30DuEfJy5y3jHGFAOm4r8brpPUHGSM+Q2oA+QDLP7xyzEhDSrMGGOqAM8CzUIdSxhbCTQEBgGL8I9bHgJ8Z4xpYq31hTK4MFESeAz/+UQH/JUz1wIfGmOOafjYGdETf58fyVkfA82BjsBqoBJQyxhTwFqrisac8Tbwfco5xrf4vz964/+e1jWcnHWqOMhcHP7mI+kVRuXdch4yxjTH3xTxd+A6a60uanOQtfbylCZnEfirki4GZoY2qvCRMqbzfaCbtfZQqOMJV9ba162191tr/7DWJqX08+kAlAIuC3F44SIJfyPEO6y1K6y1ydba74BXgW6hDS38GGOa4R+a91WoYwknxpgb8JfQT7PW1rDW3ok/eV4ImJvSPFH+I2vtn8B9+JPmu4EvgVX4e/yoH5icdcpWZW4dUBVYnm55dfx/tCLnDWPM/cBrQOuUHyE5Q6y/2+wGY8wjwGFjTGElaXJEbfyz28xIdT7qAqKMMTHANmttvVAFF86stcnGmC34O3rLf7cGf9l8+s7Uq/APcZKc9RTwVibHW/6bl4A+1toZJxZYa48YY7rgr6apA6wIVXDhxFr7PfB96mXGmP6AhoTIWaeKg8x9BbROvcAYUxi4AmWt5TxijCmLvyHUtUoanFVlgMSUf/IfWWuXWWvzpJterR6QmPJYSYMzJKW/QV1gaahjCROfAY+kNJJLrRGZ91aSf8kYUwloAbwX4lDCVYbmy/iHN0UDB89yLLmGMaYk8DgwNtSxSO6jxEHmRgLNjDEdjTEuY0wZ/GO5xmoqRjnPPAC8a63dEOpAwpUx5uOURmf5Ur4vGgOfAK9ZaxNCHZ9Idhlj3jDGPGOMKWH8LsFfZfe+tXZNqOMLE9Px95L40hhT1RjjSWmM2B1/PwnJOT2Aydba+FAHEoYmAG8aY24xxkQZYyKMMZcDXwNjrLW7Qxxf2DDGvGqMKZ3y/y8DfsR/PaJmn3LWGVVvZS5ljtoR+BtxJeDvkP5SZtPbSc4wxligtLVW47ZyiDFmMv7kgTeT1WOstX3OckhhJ+VkqQdwJRCFf/aVN621H4Q0sDCXMg3YGk3lmnOMMXWBJ4Eb8N853I7/rtZIlXrnHGNMNP4GlA8ABfE3ouxjrV0Q0sDCiDGmELAJqKsbPmdGSsLraaBmyqJ1+G+8faLvi5xjjHkFfxV0afz9UYZZa6eENirJrZQ4EBEREREREZGgNFRBRERERERERIJS4kBEREREREREglLiQERERERERESCUuJARERERERERIJS4kBEREREREREglLiQERERERERESCUuJARERERERERIJS4kBEREREREREglLiQERERERERESC+n8dykjSUHvP0QAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 1440x720 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"공부하며 적어놓기 2\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABA4AAAElCAYAAABkjaASAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xd8U9X/x/HXuUnaskrZewkCIorgQAW3X9wLce+FiuAAnCgiijhABRUUtzhQERRw/ARxLwQEFBUQVKaAtBQoHUnu+f2RNF1JmyKllLyfj0egvfNzb26Tez/3c8411lpERERERERERKJxKjsAEREREREREdl9KXEgIiIiIiIiIjEpcSAiIiIiIiIiMSlxICIiIiIiIiIxKXEgIiIiIiIiIjEpcSAiIiIiIiIiMSlxICIiIiIiIiIxKXEgIiIiIiIiIjEpcSAiIiIiIiIiMSlxICIiIiIiIiIxeSs7ABEREREREZGqolrX/ra882T/9JSpiFh2FSUOREREREREROJlEq9wX4kDERERERERkXiZKl08sEOUOBARERERERGJlyoORERERERERCQmVRyIiIiIiIiISEyqOBARERERERGRmFRxICIiIiIiIiIxqeJARERERERERGJKwIqDxEuViIiIiIiIiEjcVHEgIiIiIiIiEi81VRARERERERGRmBKwqYISByIiIiIiIiLxUsWBiIiIiIiIiMSkigMRERERERERiUkVByIiIiIiIiISkxIHIiIiIiIiIhKTo6YKIiIiIiIiIhKLKg5EREREREREJCZ1jigiIiIiIiIiManiQERERERERERiUsWBiIiIiIiIiMSkigMRERERERERiUkVByIiIiIiIiISkyoORERERERERCSmBKw4SLxUiYiIiIiIiMiOMk75X/Es1pjmxpipxphMY8w6Y8wDxhhPuUIz5hFjzB1RhjvGmAuNMZ8YY9YbYzYaY94zxnSIZ7lKHIiIiIiIiIhUImNMdWBm+FUPOADoBjwY5/yOMeZg4MIYk7QErgBGAK3Cv/8IfGqMSS1r+UociIiIiIiIiMTLmPK/ynYDsNhaO85aG7DWrgcuAvoZY5qWHo5pCGQCXwFNYky20lr7P2vtF9baHGtttrV2BLAZ6F5WcEociIiIiIiIiMSrYpoq9AYmFR5grc0APgNOLW1Ga+0Ga20ta20KMDHGNG6JzTDGB9QFtpYVnDpHFBEREREREYlXxTxVYR9gaZThy8PjdipjjAM8CSyx1n5f1vSqOBARERERERGJ1w40VTDG9DXGzC306ltsqTWBjChrSwdq7dzwTT1gOtAeOCueeVRxICIiIiIiIhKvHag4sNZOACaUMkkWkAasKjY8jTiaEsTLGNMTeBV4EXgwWhOGaFRxICIiIiIiIhKviukccSnQLsrw9sBvOydscz7wOnCBtfaBeJMGoMSBiIiIiIiISPwqpnPEGcC5RVZjTBpwZHhc/rAduoY3xjQHHgOOs9b+UN75lTgQERERERERiVfFVByMBXoYY642xjjhRzBOAsZZa9eGVmtaAZnh5gbldTHwkrX2jx2YV4kDERERERERkXiZUGeH5XqVJfzoxeMIPZYxA5gPfA8MKTRZDpAd/r+82gGDjDHborweLnObrbU7sE4RERERERGRxFOjz0vlvojOmnxFXGUHuys9VUFEREREREQkXlU6BbBjlDgQERERERERiVM8TQ/2NEociIiIiIiIiMRJiQMRERERERERiUmJAxERERERERGJSYkDEREREREREYkt8fIGOJUdgIiIiIiIiIjsvlRxICIiIiIiIhInNVUQERERERERkZiUONgFqnXtb3f1OhNNvcOOr+wQ9njVaqRUdggJIQE/k3e5KTf1rOwQ9njVfJ7KDmGP5/How2JX8HnUwrWi1auZVNkhiOwUKd49uxcAJQ5EREREREREJCYlDkREREREREQktsTLGyhxICIiIiIiIhIvVRyIiIiIiIiISExKHIiIiIiIiIhITEociIiIiIiIiEhsiZc3UOJAREREREREJF6qOBARERERERGRmJQ4EBEREREREZGYlDgQERERERERkZiUOBARERERERGR2BIvb6DEgYiIiIiIiEi8VHEgIiIiIiIiIjElYuLAqewARERERERERGT3pYoDERERERERkTglYsWBEgciIiIiIiIi8Uq8vIESByIiIiIiIiLxUsWBiIiIiIiIiMSkxIGIiIiIiIiIxKTEgYiIiIiIiIjEpMSBiIiIiIiIiMSWeHkDJQ5ERERERERE4qWKAxERERERERGJKRETB05lByAiIiIiIiJSVRhT/ld8yzXNjTFTjTGZxph1xpgHjDGe8sVmHjHG3LGzl6/EgYiIiIiIiEic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gVqlhFOe+Z4CNgBXE6pwaAZ0Mcb4ytpmVRyIiIiIiIiIxGlHKg6stROACaVMkgWkAauKDU8DtsYxX3FF5jPGXA7cDVxtrf08PKwR8CLwGnBeafGr4kBEREREREQkThXxVAVCzQ3aRRneHvhtJ8z3EHBpftIAINwB41XAueGnLsSkxIGIiIiIiIhInIwx5X7FYQZwbrH1pAFHhsflDyt+Df8hcHzhTg/DzgamFhvmRllvS2AbkF1acEociIiIiIiIiMRpR/o4iMNYoIcx5mpjjBN+zOIkYJy1di2AMaYVkGmM6Zk/U7hjw1eAV4wx9YwxScaYAcDBwLhCy38WeNEY09MY4zXGpBhjTgyv4x5rbaC04NTHgYiIiIiIiEicKuKpCtbaDGPMccAYYDShCoBngOGFJssJD88pNvtNwDDgZ0IdIn4BHG+tzSo0zX3ASuAJYC/AH57+OmvtJ2XFp8SBiIiIiIiISJwq5GGMgLV2GXByKePXAw2jDPcDQ8KvWPO6wAvhV7kpcSAiIiIiIiISJ6cCKg52d+rjQERERERERERiUsWBiIiIiIiISJwSsOBAiQMRERERERGReFVE54i7OyUOREREREREROKUgHkDJQ5ERERERERE4pWInSMqcSAiIiIiIiISpwTMG+z6xMHAB2/c1atMOE1Tkyo7BBGpIjZsza3sEEREJKx9o1qVHcIer1aK7pvuCinePfvhferjQERERERERERi2rPTItEpcSAiIiIiIiISJ1UciIiIiIiIiEhMTuLlDZQ4EBEREREREYmXEgciIiIiIiIiEpOaKoiIiIiIiIhITKo4EBEREREREZGYErDgQIkDERERERERkXg5CZg5UOJAREREREREJE5OZQdQCZQ4EBEREREREYlTAhYcJGSyRERERERERETipIoDERERERERkTipjwMRERERERERiSkB8wZKHIiIiIiIiIjEy1HiQERERERERERiUVMFEREREREREYkpAfMGShyIiIiIiIiIxEtNFUREREREREQkJkPiZQ6UOBARERERERGJkyoORERERERERCQmJQ5EREREREREJCaTgL0jKnEgIiIiIiIiEidVHIiIiIiIiIhITAlYcKDEgYiIiIiIiEi8nATMHChxICIiIiIiIhKnRGyq4FR2ACIiIiIiIiJVhTHlf8W3XNPcGDPVGJNpjFlnjHnA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\n",
"text/plain": [
"<Figure size 1440x720 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"취업과 기본기 튼튼\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABA4AAAE0CAYAAACsB3EsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XeUFFXax/Hv7TQ5kKMEQYIEEcy46irmjGEVFXVFDJj1VVbFiIiCWVHAtJhzXHXXNUdUgiIKCLoSJc8wTOpQ9/2jenL3TM84Ceb3OacPTHVV9a1b1dVVz33uLWOtRUREREREREQkFk9TF0BEREREREREmi8FDkREREREREQkLgUORERERERERCQuBQ5EREREREREJC4FDkREREREREQkLgUORERERERERCQuBQ5EREREREREJC4FDkREREREREQkLgUORERERERERCQuX1MXQERERERERGRbEbnJ2Nou473JmoYoS2NRxoGIiIiIiIiIxNX4GQcfe2odnZFaapfR1CXY/mUkN3UJRGQbUZjZq6mLICLbiJC/bVMXYbsX9Ldp6iK0CG0DT2zTres12r63LiZlHIiIiIiIiIhIXBrjQERERERERCRRyjgQERERERERESmjjAMRERERERGRRCnjQERERERERESkjDIORERERERERBKljAMRERERERERkTIKHIiIiIiIiIgkytThlchqjelqjHnNGJNrjFljjJlojPHWqmjG3GmMGV/N+ycaY76LfsavxpiHjTHJNa1XgQMRERERERGRJmSMSQXej77aAEOAocCkBJf3GGN2B0ZVM88lwK3AFdbaLGBP4Dcgtab1a4wDERERERERkQSZhhnjYByw0Fo7Lfr3WmPMacByY8x91trV8ctj2gPLAH/0FWue3sBNwGBr7UoAa+164M5ECqeMAxEREREREZGmNRJ4vvwEa+1m4CPgqOoWtNaus9ZmWGuTgafizHYu8HxJ0KC2FDgQERERERERSVTDjHHQH1gSY/qy6Ht/1j7A58aYUcaY2caYDdGxDo5PZGF1VRARERERERFpQMaYscDYcpNmWGtnlPs7HdgcY9FNQPd6KEIH4MLo+s4BFgMHAc8aY7Zaa9+vbmEFDkREREREREQSVYcxDqJBghnVzJIPZAMrKk3PBvJq/4lVBHEHQhxtrbXR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tZtxHzowEneQxLnA18B15WYrAgqj/zaqehxbXURERERERGQ710C9RKy1vwBHVPP+WiD2KKVl85yV4Gf9D0h44DZlHIiIiIiIiIhIXMo4EBEREREREUlQSxyXUhkHIiIiIiIiIhKXMg5EREREREREEtUCMw4UOBARERERERFJVAsMHKirgoiIiIiIiIjEpYwDERERERERkUQp40BEREREREREpIwyDkREREREREQSpYwDEREREREREZEyyjgQERERERERSZQyDkREREREREREyijjQERERERERCRRyjgQERERERERESmjwIGIiIiIiIjApNPfAAAgAElEQVSIxKXAgYiIiIiIiIjEpTEORERERERERBKlMQ5ERERERERERMoo40BEREREREQkUco4EBEREREREREpo4wDERERERERkUQp40BEREREREREpIwyDkREREREREQSpYwDEREREREREWlsxpiuxpjXjDG5xpg1xpiJxhhvLddxpzFmfIzpHmPMKGPMf4wxa40x640xrxtj+iayXgUORERERERERBJl6vCqaZXGpALvR19tgCHAUGBSQkVyAwO7A6PizNINOBu4Dege/ftb4ANjTGZN61fgQERERERERKRpjQMWWmunWWvD1tq1wGnAhcaYztUtaIxpD+QCnwGd4sy23Fp7sLX2E2ttkbW20Fp7G5AD7FlT4RQ4EBEREREREWlaI4Hny0+w1m4GPgKOqm5Ba+06a22GtTYZeCrOPE7lacYYP9AayKupcBocUURERERERCRRDTM4Yn9gSYzpy6Lv1StjjAd4AFhsrf26pvmVcSAiIiIiIiLSgIwxY40x35V7ja00SzqwOcaim4CMei5LG+AtoA9wfCLLKONAREREREREJFF1yDiw1s4AZlQzSz6QDayoND2bBLoSJMoYsy8wC3gcmBSrC0MsyjgQERERERERaVpLgN4xpvcBfq6PDzDGnAI8A5xqrZ2YaNAAFDgQERERERERaWpvAyeXn2CMyQb2i75XMq1O9/DGmK7A3cBB1trZtV1egQMRERERERGRRJk6vGp2PzDcGDPGGOOJPoLxeWCatXY1gDGmO5Ab7W5QW6cDT1hrl9ZhWQUORERERERERJpS9NGLB+E+lnEzMBf4Griu3GxFQGH039rqDVxpjNka43VHTQsba20dPvNP+NjTyB/Y8mwddlBTF2G7F/S3a+oiiNSL4qQuTV2E7Z5toGc2iYiINFedzZ3b94/fS6b297Qn2W26TpRxICIiIiIiIiJx6XGMIiIiIiIiIonapnMH6kYZByIiIiIiIiISlwIHIiIiIiIiIhKXuiqIiIiIiIiIJEpdFUREREREREREyijjQERERERERCRRyjgQERERERERESmjjAMRERERERGRRCnjQERERERERESkjDIORERERERERBKljAMRERERERERkTIKHIiIiIiIiIhIXOqqICIiIiIiIpIodVUQERERERERESmjwIGIiIiIiIiIxKWuCiIiIiIiIiKJUlcFEREREREREZEyyjgQERERERERSZQyDkREREREREREyijjQERERERERCRRyjgQERERERERESmjjAMRERERERGRRCnjQEREREREREQamzGmqzHmNWNMrjFmjTFmojHGW8t13GmMGV/f61fgQERERERERCRRpg6vmlZpTCrwfvTVBhgCDAUmJVQkYzzGmN2BUQ2xfgUORERERERERJrWOGChtXaatTZsrV0LnAZcaIzpXN2Cxpj2QC7wGdCpvtcPChyIiIiIiIiINLWRwPPlJ1hrNwMfAUdVt6C1dp21NsNamww8Vd/rBw2OKCIiIiIiIpK4hhkcsT+wJMb0ZdH3mnT9yjgQERERERERaUDGmLHGmO/KvcZWmiUd2Bxj0U1ARj0U4U+tXxkHIiIiIiIiIg3IWjsDmFHNLPlANrCi0vRsIK8eivCn1q+MAxEREREREZFENcBTFXC7EfSOMb0P8POfLfKfXb8CByIiIiIiIiJN623g5PITjDHZwH7R90qm1fUePqH1x6PAgYiIiIiIiEiiGibj4H5guDFmjDHGE31E4vPANGvtagBjTHcg1xizbx1KXeP6q6PAgYiIiIiIiEgTij4a8SDcxyZuBuYCXwPXlZutCCiM/tsQ649LgyOKiIiIiIiIJKphHseItfYX4Ihq3l8LtK9hHWfVdf3VUcaBiIiIiIiIiMSljAMRERERERGRRDVQxkFzpowDkW1YJGLrvKy18Zf9M+vd3jmOJRxKvH4cp2zecFj1WhfW2pjHq7WWSMQSDjmEw04TlGzbU+33PuxU+740Lu0LaY7K/6YlMl0an67hpKG0uIyDV7/M4PqnOpDkL/tSZadFOGK3PK44fiPeaCglJ9/Dg2+35j9z08kr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\n",
"text/plain": [
"<Figure size 1440x720 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from konlpy.tag import Okt\n",
"from gensim import corpora\n",
"from gensim.models import LdaModel\n",
"\n",
"cmaps = ['Oranges', 'Blues', 'Wistia']\n",
"plots = []\n",
"for category, cmap in zip(categories, cmaps):\n",
" print(category)\n",
" \n",
" # 해당 카테고리에 해당하는 데이터만 가져오기.\n",
" df_category = df_posts[df_posts['category_1'] == category]\n",
" df_category.reset_index(drop=True, inplace=True)\n",
" \n",
" # title 를 기준으로 tokenized 된 corpus 얻기.\n",
" corpus = get_tokenized_corpus(df_category['title'], Okt())\n",
" \n",
" # lda 모델링 전 데이터 전처리.\n",
" dictionary = corpora.Dictionary(corpus)\n",
" corpus = [dictionary.doc2bow(words) for words in corpus]\n",
" \n",
" # 토픽 수는 하위 카테고리 수 만큼.\n",
" num_topics = df_category['category_2'].nunique()\n",
" \n",
" # LDA 모델 구축.\n",
" lda = LdaModel(corpus, num_topics=num_topics, id2word=dictionary, passes=10)\n",
" \n",
" # 토픽별 word-score 를 히트맵으로 그리기.\n",
" draw_word_score_heatmap(10, cmap, num_topics, lda, dictionary)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 어떤 글들이 인기 많았을까?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"구글 애널리틱스에서 받은 데이터를 불러오자."
]
},
{
"cell_type": "code",
"execution_count": 187,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:20.415457Z",
"start_time": "2020-03-03T06:59:20.259928Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>페이지</th>\n",
" <th>페이지뷰 수</th>\n",
" <th>순 페이지뷰 수</th>\n",
" <th>평균 페이지에 머문 시간</th>\n",
" <th>방문수</th>\n",
" <th>이탈률</th>\n",
" <th>종료율(%)</th>\n",
" <th>페이지 값</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>/33</td>\n",
" <td>12220</td>\n",
" <td>7687</td>\n",
" <td>42.677364</td>\n",
" <td>7666</td>\n",
" <td>0.472998</td>\n",
" <td>0.617512</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>/36</td>\n",
" <td>10331</td>\n",
" <td>5862</td>\n",
" <td>49.533925</td>\n",
" <td>5670</td>\n",
" <td>0.335979</td>\n",
" <td>0.542058</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>/67</td>\n",
" <td>6175</td>\n",
" <td>3455</td>\n",
" <td>50.803914</td>\n",
" <td>3434</td>\n",
" <td>0.326150</td>\n",
" <td>0.553198</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>/105</td>\n",
" <td>5871</td>\n",
" <td>2582</td>\n",
" <td>74.029271</td>\n",
" <td>2552</td>\n",
" <td>0.160658</td>\n",
" <td>0.429739</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>/85</td>\n",
" <td>4867</td>\n",
" <td>2710</td>\n",
" <td>137.404666</td>\n",
" <td>2584</td>\n",
" <td>0.400542</td>\n",
" <td>0.489213</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 페이지 페이지뷰 수 순 페이지뷰 수 평균 페이지에 머문 시간 방문수 이탈률 종료율(%) 페이지 값\n",
"0 /33 12220 7687 42.677364 7666 0.472998 0.617512 0\n",
"1 /36 10331 5862 49.533925 5670 0.335979 0.542058 0\n",
"2 /67 6175 3455 50.803914 3434 0.326150 0.553198 0\n",
"3 /105 5871 2582 74.029271 2552 0.160658 0.429739 0\n",
"4 /85 4867 2710 137.404666 2584 0.400542 0.489213 0"
]
},
"execution_count": 187,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_pv = pd.read_excel('data/ga_pv.xlsx', sheet_name=\"데이터세트1\")\n",
"df_pv.head()"
]
},
{
"cell_type": "code",
"execution_count": 188,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:20.426901Z",
"start_time": "2020-03-03T06:59:20.419851Z"
}
},
"outputs": [],
"source": [
"df_pv.rename({'페이지': 'id'}, axis=1, inplace=True)\n",
"df_pv['id'] = df_pv['id'].str.replace('/', '')"
]
},
{
"cell_type": "code",
"execution_count": 189,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:20.469111Z",
"start_time": "2020-03-03T06:59:20.429236Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>페이지뷰 수</th>\n",
" <th>순 페이지뷰 수</th>\n",
" <th>평균 페이지에 머문 시간</th>\n",
" <th>방문수</th>\n",
" <th>이탈률</th>\n",
" <th>종료율(%)</th>\n",
" <th>페이지 값</th>\n",
" <th>title</th>\n",
" <th>category_1</th>\n",
" <th>category_2</th>\n",
" <th>comments</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>33</td>\n",
" <td>12220</td>\n",
" <td>7687</td>\n",
" <td>42.677364</td>\n",
" <td>7666</td>\n",
" <td>0.472998</td>\n",
" <td>0.617512</td>\n",
" <td>0</td>\n",
" <td>pip3? pip? 및 conda 내 pip 정리</td>\n",
" <td>공부하며 적어놓기 1</td>\n",
" <td>데이터 with 파이썬</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>36</td>\n",
" <td>10331</td>\n",
" <td>5862</td>\n",
" <td>49.533925</td>\n",
" <td>5670</td>\n",
" <td>0.335979</td>\n",
" <td>0.542058</td>\n",
" <td>0</td>\n",
" <td>파이썬으로 데이터 시각화하기 1편. matplotlib.</td>\n",
" <td>공부하며 적어놓기 1</td>\n",
" <td>데이터 시각화</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>67</td>\n",
" <td>6175</td>\n",
" <td>3455</td>\n",
" <td>50.803914</td>\n",
" <td>3434</td>\n",
" <td>0.326150</td>\n",
" <td>0.553198</td>\n",
" <td>0</td>\n",
" <td>파이썬 정렬, 다중 조건으로 한 번에 하기.</td>\n",
" <td>공부하며 적어놓기 1</td>\n",
" <td>데이터 with 파이썬</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>105</td>\n",
" <td>5871</td>\n",
" <td>2582</td>\n",
" <td>74.029271</td>\n",
" <td>2552</td>\n",
" <td>0.160658</td>\n",
" <td>0.429739</td>\n",
" <td>0</td>\n",
" <td>python 멀티 프로세싱은 parmap 으로 하자.</td>\n",
" <td>공부하며 적어놓기 1</td>\n",
" <td>데이터 with 파이썬</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>85</td>\n",
" <td>4867</td>\n",
" <td>2710</td>\n",
" <td>137.404666</td>\n",
" <td>2584</td>\n",
" <td>0.400542</td>\n",
" <td>0.489213</td>\n",
" <td>0</td>\n",
" <td>folium 의 plugins 패키지 샘플 살펴보기</td>\n",
" <td>공부하며 적어놓기 1</td>\n",
" <td>데이터 시각화</td>\n",
" <td>4</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id 페이지뷰 수 순 페이지뷰 수 평균 페이지에 머문 시간 방문수 이탈률 종료율(%) 페이지 값 \\\n",
"0 33 12220 7687 42.677364 7666 0.472998 0.617512 0 \n",
"1 36 10331 5862 49.533925 5670 0.335979 0.542058 0 \n",
"2 67 6175 3455 50.803914 3434 0.326150 0.553198 0 \n",
"3 105 5871 2582 74.029271 2552 0.160658 0.429739 0 \n",
"4 85 4867 2710 137.404666 2584 0.400542 0.489213 0 \n",
"\n",
" title category_1 category_2 comments \n",
"0 pip3? pip? 및 conda 내 pip 정리 공부하며 적어놓기 1 데이터 with 파이썬 3 \n",
"1 파이썬으로 데이터 시각화하기 1편. matplotlib. 공부하며 적어놓기 1 데이터 시각화 1 \n",
"2 파이썬 정렬, 다중 조건으로 한 번에 하기. 공부하며 적어놓기 1 데이터 with 파이썬 1 \n",
"3 python 멀티 프로세싱은 parmap 으로 하자. 공부하며 적어놓기 1 데이터 with 파이썬 5 \n",
"4 folium 의 plugins 패키지 샘플 살펴보기 공부하며 적어놓기 1 데이터 시각화 4 "
]
},
"execution_count": 189,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tmp = df_posts[['id', 'title', 'category_1', 'category_2', 'comments']]\n",
"tmp['id'] = tmp['id'].apply(str)\n",
"\n",
"df_pv = pd.merge(df_pv,\n",
" tmp, \n",
" how='inner')\n",
"df_pv.head()"
]
},
{
"cell_type": "code",
"execution_count": 190,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:20.479472Z",
"start_time": "2020-03-03T06:59:20.472641Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(181, 12)"
]
},
"execution_count": 190,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_pv.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"PV 로만 살펴보면"
]
},
{
"cell_type": "code",
"execution_count": 191,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:20.494779Z",
"start_time": "2020-03-03T06:59:20.488182Z"
}
},
"outputs": [],
"source": [
"topn = 10\n",
"df_pv_topn = df_pv.sort_values('페이지뷰 수', ascending=False)[:topn]"
]
},
{
"cell_type": "code",
"execution_count": 192,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:20.950679Z",
"start_time": "2020-03-03T06:59:20.499192Z"
}
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": true
},
"data": [
{
"marker": {
"color": "rgba(255, 153, 51, 0.6)",
"line": {
"color": "rgba(255, 153, 51, 1.0)",
"width": 1
}
},
"name": "페이지뷰 수",
"orientation": "h",
"text": "",
"type": "bar",
"x": [
3345,
3614,
3951,
3986,
4293,
4867,
5871,
6175,
10331,
12220
],
"y": [
"pandas, bar 그래프(plot) 이쁘게 그리기",
"django 웹사이트 배포를 하며 겪은 시행착오",
"이제는 matplotlib 말고, Plotly 를 쓰자.",
"올해 취업은 이렇게 실패로 끝났다.",
"파이썬으로 문제 풀 때 주의해야할 점들",
"folium 의 plugins 패키지 샘플 살펴보기",
"python 멀티 프로세싱은 parmap 으로 하자.",
"파이썬 정렬, 다중 조건으로 한 번에 하기.",
"파이썬으로 데이터 시각화하기 1편. matplotlib.",
"pip3? pip? 및 conda 내 pip 정리"
]
}
],
"layout": {
"legend": {
"bgcolor": "#FFFFFF",
"font": {
"color": "#4D5663"
}
},
"paper_bgcolor": "#FFFFFF",
"plot_bgcolor": "#FFFFFF",
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#2a3f5f"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
},
"title": {
"font": {
"color": "#4D5663"
}
},
"xaxis": {
"gridcolor": "#E1E5ED",
"showgrid": true,
"tickfont": {
"color": "#4D5663"
},
"title": {
"font": {
"color": "#4D5663"
},
"text": ""
},
"zerolinecolor": "#E1E5ED"
},
"yaxis": {
"gridcolor": "#E1E5ED",
"showgrid": true,
"tickfont": {
"color": "#4D5663"
},
"title": {
"font": {
"color": "#4D5663"
},
"text": ""
},
"zerolinecolor": "#E1E5ED"
}
}
},
"text/html": [
"<div>\n",
" \n",
" \n",
" <div id=\"df55f77b-c157-4924-881a-a69cf1649f5f\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>\n",
" <script type=\"text/javascript\">\n",
" require([\"plotly\"], function(Plotly) {\n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" window.PLOTLYENV.BASE_URL='https://plot.ly';\n",
" \n",
" if (document.getElementById(\"df55f77b-c157-4924-881a-a69cf1649f5f\")) {\n",
" Plotly.newPlot(\n",
" 'df55f77b-c157-4924-881a-a69cf1649f5f',\n",
" [{\"marker\": {\"color\": \"rgba(255, 153, 51, 0.6)\", \"line\": {\"color\": \"rgba(255, 153, 51, 1.0)\", \"width\": 1}}, \"name\": \"\\ud398\\uc774\\uc9c0\\ubdf0 \\uc218\", \"orientation\": \"h\", \"text\": \"\", \"type\": \"bar\", \"x\": [3345, 3614, 3951, 3986, 4293, 4867, 5871, 6175, 10331, 12220], \"y\": [\"pandas, bar \\uadf8\\ub798\\ud504(plot) \\uc774\\uc058\\uac8c \\uadf8\\ub9ac\\uae30\", \"django \\uc6f9\\uc0ac\\uc774\\ud2b8 \\ubc30\\ud3ec\\ub97c \\ud558\\uba70 \\uacaa\\uc740 \\uc2dc\\ud589\\ucc29\\uc624\", \"\\uc774\\uc81c\\ub294 matplotlib \\ub9d0\\uace0, Plotly \\ub97c \\uc4f0\\uc790.\", \"\\uc62c\\ud574 \\ucde8\\uc5c5\\uc740 \\uc774\\ub807\\uac8c \\uc2e4\\ud328\\ub85c \\ub05d\\ub0ac\\ub2e4.\", \"\\ud30c\\uc774\\uc36c\\uc73c\\ub85c \\ubb38\\uc81c \\ud480 \\ub54c \\uc8fc\\uc758\\ud574\\uc57c\\ud560 \\uc810\\ub4e4\", \"folium \\uc758 plugins \\ud328\\ud0a4\\uc9c0 \\uc0d8\\ud50c \\uc0b4\\ud3b4\\ubcf4\\uae30\", \"python \\uba40\\ud2f0 \\ud504\\ub85c\\uc138\\uc2f1\\uc740 parmap \\uc73c\\ub85c \\ud558\\uc790.\", \"\\ud30c\\uc774\\uc36c \\uc815\\ub82c, \\ub2e4\\uc911 \\uc870\\uac74\\uc73c\\ub85c \\ud55c \\ubc88\\uc5d0 \\ud558\\uae30.\", \"\\ud30c\\uc774\\uc36c\\uc73c\\ub85c \\ub370\\uc774\\ud130 \\uc2dc\\uac01\\ud654\\ud558\\uae30 1\\ud3b8. matplotlib.\", \"pip3? pip? \\ubc0f conda \\ub0b4 pip \\uc815\\ub9ac\"]}],\n",
" {\"legend\": {\"bgcolor\": \"#FFFFFF\", \"font\": {\"color\": \"#4D5663\"}}, \"paper_bgcolor\": \"#FFFFFF\", \"plot_bgcolor\": \"#FFFFFF\", \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#2a3f5f\"}, \"error_y\": {\"color\": \"#2a3f5f\"}, \"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"baxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#EBF0F8\"}, \"line\": {\"color\": \"white\"}}, \"header\": {\"fill\": {\"color\": \"#C8D4E3\"}, \"line\": {\"color\": \"white\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#2a3f5f\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#2a3f5f\"}, \"geo\": {\"bgcolor\": \"white\", \"lakecolor\": \"white\", \"landcolor\": \"#E5ECF6\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"white\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"light\"}, \"paper_bgcolor\": \"white\", \"plot_bgcolor\": \"#E5ECF6\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"radialaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"yaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"zaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#2a3f5f\"}}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"caxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}}}, \"title\": {\"font\": {\"color\": \"#4D5663\"}}, \"xaxis\": {\"gridcolor\": \"#E1E5ED\", \"showgrid\": true, \"tickfont\": {\"color\": \"#4D5663\"}, \"title\": {\"font\": {\"color\": \"#4D5663\"}, \"text\": \"\"}, \"zerolinecolor\": \"#E1E5ED\"}, \"yaxis\": {\"gridcolor\": \"#E1E5ED\", \"showgrid\": true, \"tickfont\": {\"color\": \"#4D5663\"}, \"title\": {\"font\": {\"color\": \"#4D5663\"}, \"text\": \"\"}, \"zerolinecolor\": \"#E1E5ED\"}},\n",
" {\"showLink\": true, \"linkText\": \"Export to plot.ly\", \"plotlyServerURL\": \"https://plot.ly\", \"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('df55f77b-c157-4924-881a-a69cf1649f5f');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" });\n",
" </script>\n",
" </div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df_pv_topn.set_index('title')['페이지뷰 수'].sort_values().iplot('barh')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"수치형 변수들간의 상관관계를 살펴보면"
]
},
{
"cell_type": "code",
"execution_count": 193,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:21.002330Z",
"start_time": "2020-03-03T06:59:20.960082Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>페이지뷰 수</th>\n",
" <th>순 페이지뷰 수</th>\n",
" <th>평균 페이지에 머문 시간</th>\n",
" <th>방문수</th>\n",
" <th>이탈률</th>\n",
" <th>종료율(%)</th>\n",
" <th>페이지 값</th>\n",
" <th>comments</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>페이지뷰 수</th>\n",
" <td>1.000000</td>\n",
" <td>0.993271</td>\n",
" <td>0.034142</td>\n",
" <td>0.991482</td>\n",
" <td>0.084858</td>\n",
" <td>0.157099</td>\n",
" <td>NaN</td>\n",
" <td>0.306384</td>\n",
" </tr>\n",
" <tr>\n",
" <th>순 페이지뷰 수</th>\n",
" <td>0.993271</td>\n",
" <td>1.000000</td>\n",
" <td>0.032642</td>\n",
" <td>0.999707</td>\n",
" <td>0.112546</td>\n",
" <td>0.177879</td>\n",
" <td>NaN</td>\n",
" <td>0.257182</td>\n",
" </tr>\n",
" <tr>\n",
" <th>평균 페이지에 머문 시간</th>\n",
" <td>0.034142</td>\n",
" <td>0.032642</td>\n",
" <td>1.000000</td>\n",
" <td>0.030804</td>\n",
" <td>0.198782</td>\n",
" <td>0.112584</td>\n",
" <td>NaN</td>\n",
" <td>0.117134</td>\n",
" </tr>\n",
" <tr>\n",
" <th>방문수</th>\n",
" <td>0.991482</td>\n",
" <td>0.999707</td>\n",
" <td>0.030804</td>\n",
" <td>1.000000</td>\n",
" <td>0.117920</td>\n",
" <td>0.184239</td>\n",
" <td>NaN</td>\n",
" <td>0.245301</td>\n",
" </tr>\n",
" <tr>\n",
" <th>이탈률</th>\n",
" <td>0.084858</td>\n",
" <td>0.112546</td>\n",
" <td>0.198782</td>\n",
" <td>0.117920</td>\n",
" <td>1.000000</td>\n",
" <td>0.848446</td>\n",
" <td>NaN</td>\n",
" <td>-0.052540</td>\n",
" </tr>\n",
" <tr>\n",
" <th>종료율(%)</th>\n",
" <td>0.157099</td>\n",
" <td>0.177879</td>\n",
" <td>0.112584</td>\n",
" <td>0.184239</td>\n",
" <td>0.848446</td>\n",
" <td>1.000000</td>\n",
" <td>NaN</td>\n",
" <td>-0.069448</td>\n",
" </tr>\n",
" <tr>\n",
" <th>페이지 값</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>comments</th>\n",
" <td>0.306384</td>\n",
" <td>0.257182</td>\n",
" <td>0.117134</td>\n",
" <td>0.245301</td>\n",
" <td>-0.052540</td>\n",
" <td>-0.069448</td>\n",
" <td>NaN</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 페이지뷰 수 순 페이지뷰 수 평균 페이지에 머문 시간 방문수 이탈률 \\\n",
"페이지뷰 수 1.000000 0.993271 0.034142 0.991482 0.084858 \n",
"순 페이지뷰 수 0.993271 1.000000 0.032642 0.999707 0.112546 \n",
"평균 페이지에 머문 시간 0.034142 0.032642 1.000000 0.030804 0.198782 \n",
"방문수 0.991482 0.999707 0.030804 1.000000 0.117920 \n",
"이탈률 0.084858 0.112546 0.198782 0.117920 1.000000 \n",
"종료율(%) 0.157099 0.177879 0.112584 0.184239 0.848446 \n",
"페이지 값 NaN NaN NaN NaN NaN \n",
"comments 0.306384 0.257182 0.117134 0.245301 -0.052540 \n",
"\n",
" 종료율(%) 페이지 값 comments \n",
"페이지뷰 수 0.157099 NaN 0.306384 \n",
"순 페이지뷰 수 0.177879 NaN 0.257182 \n",
"평균 페이지에 머문 시간 0.112584 NaN 0.117134 \n",
"방문수 0.184239 NaN 0.245301 \n",
"이탈률 0.848446 NaN -0.052540 \n",
"종료율(%) 1.000000 NaN -0.069448 \n",
"페이지 값 NaN NaN NaN \n",
"comments -0.069448 NaN 1.000000 "
]
},
"execution_count": 193,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_pv.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"별로 유의미한 관계는 안보이네."
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:10:10.111075Z",
"start_time": "2020-03-03T06:10:10.106401Z"
}
},
"source": [
"PV 를 카테고리별로 묶어서 봐보면 좀 압도적으로 차지하는 카테고리가 있을까?"
]
},
{
"cell_type": "code",
"execution_count": 194,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:21.047431Z",
"start_time": "2020-03-03T06:59:21.006073Z"
}
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": true
},
"data": [
{
"labels": [
"공부하며 적어놓기 1",
"공부하며 적어놓기 2",
"블로깅",
"시행착오 노트",
"일상, 생각, 경험",
"책 읽기",
"취업과 기본기 튼튼",
"프로젝트들"
],
"marker": {
"colors": [
"rgba(255, 153, 51, 1.0)",
"rgba(55, 128, 191, 1.0)",
"rgba(50, 171, 96, 1.0)",
"rgba(128, 0, 128, 1.0)",
"rgba(219, 64, 82, 1.0)",
"rgba(0, 128, 128, 1.0)",
"rgba(255, 255, 51, 1.0)",
"rgba(128, 128, 0, 1.0)"
]
},
"name": "",
"type": "pie",
"values": [
70566,
3045,
4450,
5467,
4873,
148,
17129,
2597
]
}
],
"layout": {
"legend": {
"bgcolor": "#FFFFFF",
"font": {
"color": "#4D5663"
}
},
"paper_bgcolor": "#FFFFFF",
"plot_bgcolor": "#FFFFFF",
"titlefont": {
"color": "#4D5663"
}
}
},
"text/html": [
"<div>\n",
" \n",
" \n",
" <div id=\"2c2ab750-d58b-457d-8f39-f0bbf729508d\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>\n",
" <script type=\"text/javascript\">\n",
" require([\"plotly\"], function(Plotly) {\n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" window.PLOTLYENV.BASE_URL='https://plot.ly';\n",
" \n",
" if (document.getElementById(\"2c2ab750-d58b-457d-8f39-f0bbf729508d\")) {\n",
" Plotly.newPlot(\n",
" '2c2ab750-d58b-457d-8f39-f0bbf729508d',\n",
" [{\"labels\": [\"\\uacf5\\ubd80\\ud558\\uba70 \\uc801\\uc5b4\\ub193\\uae30 1\", \"\\uacf5\\ubd80\\ud558\\uba70 \\uc801\\uc5b4\\ub193\\uae30 2\", \"\\ube14\\ub85c\\uae45\", \"\\uc2dc\\ud589\\ucc29\\uc624 \\ub178\\ud2b8\", \"\\uc77c\\uc0c1, \\uc0dd\\uac01, \\uacbd\\ud5d8\", \"\\ucc45 \\uc77d\\uae30\", \"\\ucde8\\uc5c5\\uacfc \\uae30\\ubcf8\\uae30 \\ud2bc\\ud2bc\", \"\\ud504\\ub85c\\uc81d\\ud2b8\\ub4e4\"], \"marker\": {\"colors\": [\"rgba(255, 153, 51, 1.0)\", \"rgba(55, 128, 191, 1.0)\", \"rgba(50, 171, 96, 1.0)\", \"rgba(128, 0, 128, 1.0)\", \"rgba(219, 64, 82, 1.0)\", \"rgba(0, 128, 128, 1.0)\", \"rgba(255, 255, 51, 1.0)\", \"rgba(128, 128, 0, 1.0)\"]}, \"name\": \"\", \"type\": \"pie\", \"values\": [70566, 3045, 4450, 5467, 4873, 148, 17129, 2597]}],\n",
" {\"legend\": {\"bgcolor\": \"#FFFFFF\", \"font\": {\"color\": \"#4D5663\"}}, \"paper_bgcolor\": \"#FFFFFF\", \"plot_bgcolor\": \"#FFFFFF\", \"titlefont\": {\"color\": \"#4D5663\"}},\n",
" {\"showLink\": true, \"linkText\": \"Export to plot.ly\", \"plotlyServerURL\": \"https://plot.ly\", \"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('2c2ab750-d58b-457d-8f39-f0bbf729508d');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" });\n",
" </script>\n",
" </div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"tmp = df_pv.groupby('category_1')['페이지뷰 수'].sum().reset_index()\n",
"\n",
"tmp.iplot('pie', labels='category_1', values='페이지뷰 수')\n",
"# tmp.iplot('barh')"
]
},
{
"cell_type": "code",
"execution_count": 195,
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-03T06:59:21.087126Z",
"start_time": "2020-03-03T06:59:21.055063Z"
}
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": true
},
"data": [
{
"labels": [
"그냥 얘기",
"데이터 with 파이썬",
"데이터 시각화",
"머신러닝",
"블로깅",
"빽 투더 기본기",
"시행착오 노트",
"언젠가 또 기억하고 싶은거",
"웹 백엔드 with 자바",
"이곳저곳 경험",
"자바로 개발하기",
"책 읽기",
"취업과 기본기 튼튼",
"커널 공부하기",
"코딩 테스트 노트",
"통계 기초 공부",
"프로젝트들"
],
"marker": {
"colors": [
"rgba(255, 153, 51, 1.0)",
"rgba(55, 128, 191, 1.0)",
"rgba(50, 171, 96, 1.0)",
"rgba(128, 0, 128, 1.0)",
"rgba(219, 64, 82, 1.0)",
"rgba(0, 128, 128, 1.0)",
"rgba(255, 255, 51, 1.0)",
"rgba(128, 128, 0, 1.0)",
"rgba(251, 128, 114, 1.0)",
"rgba(128, 177, 211, 1.0)",
"rgba(128, 177, 211, 0.8999999999999999)",
"rgba(255, 153, 51, 0.8999999999999999)",
"rgba(55, 128, 191, 0.8999999999999999)",
"rgba(50, 171, 96, 0.8999999999999999)",
"rgba(128, 0, 128, 0.8999999999999999)",
"rgba(219, 64, 82, 0.8999999999999999)",
"rgba(0, 128, 128, 0.8999999999999999)"
]
},
"name": "",
"type": "pie",
"values": [
4620,
27844,
29633,
4452,
4450,
4589,
5467,
27,
2880,
226,
165,
148,
86,
621,
12454,
8016,
2597
]
}
],
"layout": {
"legend": {
"bgcolor": "#FFFFFF",
"font": {
"color": "#4D5663"
}
},
"paper_bgcolor": "#FFFFFF",
"plot_bgcolor": "#FFFFFF",
"titlefont": {
"color": "#4D5663"
}
}
},
"text/html": [
"<div>\n",
" \n",
" \n",
" <div id=\"056d13e3-e918-4991-9961-31551634e649\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>\n",
" <script type=\"text/javascript\">\n",
" require([\"plotly\"], function(Plotly) {\n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" window.PLOTLYENV.BASE_URL='https://plot.ly';\n",
" \n",
" if (document.getElementById(\"056d13e3-e918-4991-9961-31551634e649\")) {\n",
" Plotly.newPlot(\n",
" '056d13e3-e918-4991-9961-31551634e649',\n",
" [{\"labels\": [\"\\uadf8\\ub0e5 \\uc598\\uae30\", \"\\ub370\\uc774\\ud130 with \\ud30c\\uc774\\uc36c\", \"\\ub370\\uc774\\ud130 \\uc2dc\\uac01\\ud654\", \"\\uba38\\uc2e0\\ub7ec\\ub2dd\", \"\\ube14\\ub85c\\uae45\", \"\\ube7d \\ud22c\\ub354 \\uae30\\ubcf8\\uae30\", \"\\uc2dc\\ud589\\ucc29\\uc624 \\ub178\\ud2b8\", \"\\uc5b8\\uc820\\uac00 \\ub610 \\uae30\\uc5b5\\ud558\\uace0 \\uc2f6\\uc740\\uac70\", \"\\uc6f9 \\ubc31\\uc5d4\\ub4dc with \\uc790\\ubc14\", \"\\uc774\\uacf3\\uc800\\uacf3 \\uacbd\\ud5d8\", \"\\uc790\\ubc14\\ub85c \\uac1c\\ubc1c\\ud558\\uae30\", \"\\ucc45 \\uc77d\\uae30\", \"\\ucde8\\uc5c5\\uacfc \\uae30\\ubcf8\\uae30 \\ud2bc\\ud2bc\", \"\\ucee4\\ub110 \\uacf5\\ubd80\\ud558\\uae30\", \"\\ucf54\\ub529 \\ud14c\\uc2a4\\ud2b8 \\ub178\\ud2b8\", \"\\ud1b5\\uacc4 \\uae30\\ucd08 \\uacf5\\ubd80\", \"\\ud504\\ub85c\\uc81d\\ud2b8\\ub4e4\"], \"marker\": {\"colors\": [\"rgba(255, 153, 51, 1.0)\", \"rgba(55, 128, 191, 1.0)\", \"rgba(50, 171, 96, 1.0)\", \"rgba(128, 0, 128, 1.0)\", \"rgba(219, 64, 82, 1.0)\", \"rgba(0, 128, 128, 1.0)\", \"rgba(255, 255, 51, 1.0)\", \"rgba(128, 128, 0, 1.0)\", \"rgba(251, 128, 114, 1.0)\", \"rgba(128, 177, 211, 1.0)\", \"rgba(128, 177, 211, 0.8999999999999999)\", \"rgba(255, 153, 51, 0.8999999999999999)\", \"rgba(55, 128, 191, 0.8999999999999999)\", \"rgba(50, 171, 96, 0.8999999999999999)\", \"rgba(128, 0, 128, 0.8999999999999999)\", \"rgba(219, 64, 82, 0.8999999999999999)\", \"rgba(0, 128, 128, 0.8999999999999999)\"]}, \"name\": \"\", \"type\": \"pie\", \"values\": [4620, 27844, 29633, 4452, 4450, 4589, 5467, 27, 2880, 226, 165, 148, 86, 621, 12454, 8016, 2597]}],\n",
" {\"legend\": {\"bgcolor\": \"#FFFFFF\", \"font\": {\"color\": \"#4D5663\"}}, \"paper_bgcolor\": \"#FFFFFF\", \"plot_bgcolor\": \"#FFFFFF\", \"titlefont\": {\"color\": \"#4D5663\"}},\n",
" {\"showLink\": true, \"linkText\": \"Export to plot.ly\", \"plotlyServerURL\": \"https://plot.ly\", \"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('056d13e3-e918-4991-9961-31551634e649');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" });\n",
" </script>\n",
" </div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"tmp = df_pv.groupby('category_2')['페이지뷰 수'].sum().reset_index()\n",
"\n",
"tmp.iplot('pie', labels='category_2', values='페이지뷰 수')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": true
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment