Skip to content

Instantly share code, notes, and snippets.

@izderadicka
Created December 4, 2021 18:42
Show Gist options
  • Save izderadicka/65b88313763261227e37b9f6784bdd5a to your computer and use it in GitHub Desktop.
Save izderadicka/65b88313763261227e37b9f6784bdd5a to your computer and use it in GitHub Desktop.
Jupyter notebook for GH Stargazers
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 74,
"id": "5b4dce24",
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"import json\n",
"import datetime"
]
},
{
"cell_type": "code",
"execution_count": 75,
"id": "082fd077",
"metadata": {},
"outputs": [],
"source": [
"#parameters for the analysis\n",
"your_project=\"izderadicka/audioserve\"\n",
"start_date = datetime.date(2019,1,10)"
]
},
{
"cell_type": "code",
"execution_count": 76,
"id": "f61872c2",
"metadata": {},
"outputs": [],
"source": [
"url=\"https://api.github.com/repos/%s/stargazers\" % your_project\n",
"mime=\"application/vnd.github.v3.star+json\"\n",
"res = []\n",
"pg = 1\n",
"while True:\n",
" resp = requests.get(url, params={\"page\":pg, \"per_page\":100}, headers={\"Accept\":mime})\n",
" if resp.status_code >=400:\n",
" print(\"Got error response\", resp.status_code, resp.json(), resp.headers)\n",
" break\n",
" resp=resp.json()\n",
" if not len(resp):\n",
" break\n",
" res.extend(map(lambda i: {\"user\": i[\"user\"][\"login\"], \"date\": i[\"starred_at\"]}, resp))\n",
" pg+=1\n",
" \n",
"#res\n"
]
},
{
"cell_type": "code",
"execution_count": 77,
"id": "f617356d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"295\n"
]
}
],
"source": [
"print(len(res))\n",
"stargazers = list(map(lambda i : datetime.datetime.fromisoformat(i[\"date\"][:-1] + \" +00:00\"), res))\n",
"stargazers.sort()\n",
"stargazers = list(zip(stargazers, range(1, len(stargazers)+1)))\n",
"#stargazers"
]
},
{
"cell_type": "code",
"execution_count": 78,
"id": "cac2bbfe",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 79,
"id": "ccad0dc5",
"metadata": {},
"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>date</th>\n",
" <th>num</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2018-09-07 21:53:11+00:00</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2018-11-25 10:01:11+00:00</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2018-11-28 06:53:14+00:00</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2018-12-23 18:58:02+00:00</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2018-12-29 20:08:58+00:00</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>290</th>\n",
" <td>2021-11-30 16:11:22+00:00</td>\n",
" <td>291</td>\n",
" </tr>\n",
" <tr>\n",
" <th>291</th>\n",
" <td>2021-12-01 21:22:50+00:00</td>\n",
" <td>292</td>\n",
" </tr>\n",
" <tr>\n",
" <th>292</th>\n",
" <td>2021-12-04 11:23:12+00:00</td>\n",
" <td>293</td>\n",
" </tr>\n",
" <tr>\n",
" <th>293</th>\n",
" <td>2021-12-04 13:35:27+00:00</td>\n",
" <td>294</td>\n",
" </tr>\n",
" <tr>\n",
" <th>294</th>\n",
" <td>2021-12-04 15:14:07+00:00</td>\n",
" <td>295</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>295 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" date num\n",
"0 2018-09-07 21:53:11+00:00 1\n",
"1 2018-11-25 10:01:11+00:00 2\n",
"2 2018-11-28 06:53:14+00:00 3\n",
"3 2018-12-23 18:58:02+00:00 4\n",
"4 2018-12-29 20:08:58+00:00 5\n",
".. ... ...\n",
"290 2021-11-30 16:11:22+00:00 291\n",
"291 2021-12-01 21:22:50+00:00 292\n",
"292 2021-12-04 11:23:12+00:00 293\n",
"293 2021-12-04 13:35:27+00:00 294\n",
"294 2021-12-04 15:14:07+00:00 295\n",
"\n",
"[295 rows x 2 columns]"
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = pd.DataFrame(stargazers)\n",
"data.columns = [\"date\", \"num\"]\n",
"data"
]
},
{
"cell_type": "code",
"execution_count": 80,
"id": "377e6dcc",
"metadata": {},
"outputs": [],
"source": [
"data = data[data[\"date\"].dt.date>=start_date]"
]
},
{
"cell_type": "code",
"execution_count": 81,
"id": "6419b841",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Stargazes for project izderadicka/audioserve over time')"
]
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize= (12,6))\n",
"plt.plot(data[\"date\"], data[\"num\"])\n",
"plt.title(\"Stargazes for project %s over time\" % your_project)"
]
},
{
"cell_type": "code",
"execution_count": 82,
"id": "7ff61ad2",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_21039/3544505278.py:3: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" data[\"days\"] = (data[\"date\"] - start_date).apply(lambda x: x.total_seconds()/ (3600*24))\n"
]
}
],
"source": [
"(data[\"date\"].iloc[1] - data[\"date\"].iloc[0]).total_seconds()/ (3600*24)\n",
"start_date = data[\"date\"].iloc[0]\n",
"data[\"days\"] = (data[\"date\"] - start_date).apply(lambda x: x.total_seconds()/ (3600*24))"
]
},
{
"cell_type": "code",
"execution_count": 83,
"id": "930f6bd8",
"metadata": {},
"outputs": [],
"source": [
"poly_coef = np.polyfit(data[\"days\"], data[\"num\"], 3)\n",
"poly_coef\n",
"p=np.poly1d(poly_coef)"
]
},
{
"cell_type": "code",
"execution_count": 84,
"id": "404d22a3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 4.20321996e+01 1.85566840e-03 -1.67207666e+01]\n"
]
},
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f5151da03a0>]"
]
},
"execution_count": 84,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from scipy.optimize import curve_fit\n",
"def exp_func(x, a, b, c):\n",
" return a * np.exp(b * x) + c\n",
"popt, pcov = curve_fit(exp_func, data[\"days\"], data[\"num\"], p0=[1.0, 0.0001, 1.0])\n",
"print(popt)\n",
"def pf2(x):\n",
" return exp_func(x, *popt)\n",
"\n",
"plt.plot(data[\"days\"], data[\"num\"])\n",
"plt.plot(data[\"days\"], pf2(data[\"days\"]))\n"
]
},
{
"cell_type": "code",
"execution_count": 85,
"id": "3723f1ce",
"metadata": {},
"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>date</th>\n",
" <th>num</th>\n",
" <th>days</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>2019-01-12 05:01:10+00:00</td>\n",
" <td>24.0</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>2019-02-09 17:06:21+00:00</td>\n",
" <td>25.0</td>\n",
" <td>28.503600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>2019-02-24 07:51:47+00:00</td>\n",
" <td>26.0</td>\n",
" <td>43.118484</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>2019-03-02 12:09:38+00:00</td>\n",
" <td>27.0</td>\n",
" <td>49.297546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>2019-03-12 01:41:04+00:00</td>\n",
" <td>28.0</td>\n",
" <td>58.861042</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>360</th>\n",
" <td>2022-11-30 00:00:00+00:00</td>\n",
" <td>NaN</td>\n",
" <td>1418.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>361</th>\n",
" <td>2022-12-01 00:00:00+00:00</td>\n",
" <td>NaN</td>\n",
" <td>1419.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>362</th>\n",
" <td>2022-12-02 00:00:00+00:00</td>\n",
" <td>NaN</td>\n",
" <td>1420.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>363</th>\n",
" <td>2022-12-03 00:00:00+00:00</td>\n",
" <td>NaN</td>\n",
" <td>1421.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>364</th>\n",
" <td>2022-12-04 00:00:00+00:00</td>\n",
" <td>NaN</td>\n",
" <td>1422.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>637 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" date num days\n",
"23 2019-01-12 05:01:10+00:00 24.0 0.000000\n",
"24 2019-02-09 17:06:21+00:00 25.0 28.503600\n",
"25 2019-02-24 07:51:47+00:00 26.0 43.118484\n",
"26 2019-03-02 12:09:38+00:00 27.0 49.297546\n",
"27 2019-03-12 01:41:04+00:00 28.0 58.861042\n",
".. ... ... ...\n",
"360 2022-11-30 00:00:00+00:00 NaN 1418.000000\n",
"361 2022-12-01 00:00:00+00:00 NaN 1419.000000\n",
"362 2022-12-02 00:00:00+00:00 NaN 1420.000000\n",
"363 2022-12-03 00:00:00+00:00 NaN 1421.000000\n",
"364 2022-12-04 00:00:00+00:00 NaN 1422.000000\n",
"\n",
"[637 rows x 3 columns]"
]
},
"execution_count": 85,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"last_day = round(data[\"days\"].iloc[-1])\n",
"beg = start_date.floor(\"D\")\n",
"\n",
"fut= pd.DataFrame([{\"days\": last_day+i, \"date\": beg + pd.Timedelta(last_day+i, \"day\")} for i in range(1,366)])\n",
"pred = data.append(fut)\n",
"pred"
]
},
{
"cell_type": "code",
"execution_count": 86,
"id": "84edd916",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"date 2022-12-04 00:00:00+00:00\n",
"num NaN\n",
"days 1422.0\n",
"pred 578.79261\n",
"pred2 571.555365\n",
"Name: 364, dtype: object"
]
},
"execution_count": 86,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAF1CAYAAAD1FxxAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABrVUlEQVR4nO3dd3hUZd7G8e+T3kNIQi+hg0BooSNFRLErK1ZUxBXZXRXr6r42dHXXLnZUVLAh9u6qKKhIkya9G0gCIaGk95nn/WMOcUAIARImIffnuubKzKm/8+RM5s6Z55xjrLWIiIiIiIiHn68LEBERERGpSRSQRURERES8KCCLiIiIiHhRQBYRERER8aKALCIiIiLiRQFZRERERMSLArJIDWWMmWaMefAY5v/aGHNVVdZUXby31RhzsjFm/VEuZ4ox5p6qrQ6Mx+vGmL3GmEVVvfxjZYz5P2PM1OOwnqNqX2PMHGPMX6ujpoOsa6gxJtXr9WpjzNBKzGeNMW2rs7YjZYwZa4yZ6/U6zxjT2pc1idQVAb4uQKQ2MMYkAw0BF5APfA1cb63N82VdFbHWnrHvuTFmLPBXa+0g31VUOdban4EOh5vuYNtkrZ1QTWUNAkYAzay1+dW0jqNmrf3PsS7DCZFvWWubVbCe6mrfamOt7Vzd6zDGBAHbgYTq/JtgrY2ormWLyP50BFmk8s5xPqB6AknA3T6u56Cco50+e28bY07Ef7xbAslHE46roj1O0DY9rFq03YOB5TX5H+ajYYzx93UNIr6igCxyhKy1aXiOIHcBMMac63yNm+V8ldxp37TGmGRjzL+MMWucr+dfN8aEOOP2+/rUGXbQr3mNMTHGmC+MMZnOcr4wxjTzGj/HGPOQMeYXoABove9rbaeeKUB/5yvaLGNMb2PMTu8PQGPMKGPMbwfbZqcLxBRjzHfGmFxjzI/GmJYH1P0PY8xGYKMz7GxjzHJnffOMMYle0/cwxix1ljUTCPEad+BX5M2NMR85277bGPPcwbbJq84Hvea91hizyRizxxjzmTGmyQE1TzDGbHRqfN4YYw6y7dcAU73WdX8ll71fexywzARnmvHGmO3GmB3GmNu8xk8yxnxgjHnLGJMDjDXGNHHWs8dZ77UHTP+W1+t+TptnGWN+M15dDIwx9Z39cLuzL31ijAnHs083cbYxz3t7DtgP9nWF+dxr2jxjjNt4jupjjBlhjFlnjMk2xjwHmAOWM84Ys9ZZ/zeV2JeeNsakGGNyjDFLjDEne00f6tS11xizBuh9wLqSjTGnOs/9jac7ymZn31tijGl+kO0c5KxvqDnMe89xJvCVM+/VzrblGmO2GGOu81puhe95Y0ys8zvOMZ6uPG0qmDbaGPOGU9dWY8zdxvnH2BjT1njeo9nGmF3G8x7bt4yOxvM+3mOMWW+MueiA3++LxpivjDH5wG3GmHSz/9+JC4wxK5znfsaYO5323G2Mec8YU//A9hSplay1euihx2EeQDJwqvO8ObAa+DfQHk+XixFAIPBPYBMQ5DXfKmee+sAvwIPOuLHA3APWY4G2zvNpXtPGAn8BwoBI4H3gE6/55gDbgM54uk4FOsP+WsG61gBneL3+GLj1ENs/DcjFc6QsGHjae3lO3d852xgK9AAygL6AP3CV0xbBQBCwFbjZqfNCoNRrW4cCqc5zf+A34CkgHE+QHlTBNnm32SnALjxH/IOBZ4GfDqj5C6Ae0ALIBEYeYvv3W1cll13eHgdZXoIzzQxnu7o669+3j01y2uR8PAcyQoGfgBecNujuTH+K1/RvOc+bArvxhDY/PPvmbiDeGf8lMBOIcdp/yIHtXsH7oLx9Dxh+Bp4uBs2BODz7yoXO8m8GyvhjXzwPz3ukE5599W5gXkVtB4zB8x4IAG4F0oEQZ9zDwM/O9M3xvN9SvZaX7NWutwMr8XThMUA3INb7vQeMBFKAPpV57znTrAM6OM/PwhNsDTAEzz+sPSv5nn8XeM/ZJ7oAafz5fbZv2jeAT52aEoANwDXOuBnAXc7v3/s9E+5s29VOW/bAsx+f5PX7zQYGes27GRjhVcP7wJ3O84nAAqAZnvfBS8AMX/+91kOPqnj4vAA99KgND+dDNg/IwhPuXsATWu4B3vOazs/5UBvqNd8Er/FnApud54f7sJzGQcKIM647sNfr9RzggQOmmUPFAfkO4G3neX3ng7zxIdY3DXjX63UEnv7Yzb3qPsVr/IvAvw9Yxno8gWEwnjBlvMbN4+ABuT+eIBhwkJoOtk3TvJbzKvDoATWX4uknuq/mQV7j39v3wX+4dVVy2accbFnO+ARnmo5ewx4FXnWeT2L/wN3cae9Ir2H/BaZ5Tb8vIN8BvHnA+r7B809KY8ANxBykpvJ2r6Du8vb1GtYezz9D+0LYlcACr/EGSPXaF7/GCXJe75kCoGVl2s6ZZi/QzXm+Ba9/bIDxHDogrwfOO8QyLfAvPO/vLhWsuzv7v/faAJsqmP4TYGIF++y+YO7v7EPe+8R/OEhAdqYtwQm2zrjrgDnO8zeAl/H0mfde18XAzwcMewm4z+v3+8YB4x8EXnOeR+I5ILDvd7UWGO41bWNnG/70ftVDj9r2UBcLkco731pbz1rb0lr7d2ttIdAEzwcqANZaN54jNE295kvxer7VmeeIGGPCjDEvOV+l5uA5mljP7N9HMOUQsx/KW8A5ztfrF+H54NxRwfTly7eevpZ72H9bvNffErjV+Yo/y3i6QDR3pm8CpFlrrdf0Wzm45sBWa21ZJbfJ24G/mzw8R1K9fzfpXs8L8ATdqlp2ZX4fFe0b3uOaAHustbkHTO+9vn1aAqMPaPtBeMJLc2c5eytR22EZY6LxHMW821q7r+tAE/bfVyx/3jee9qptD54Qfci2M8bc5nRbyHbmicZzpPpP6+PQ+xJ4tn9zBeNvwvMP7yqvdR/uvXcmntC/b/ozjDELnC4MWc74OA4vHs9R3cpsSxyeo/NbD5h2Xxv+E0+bLjKe7l/jnOEtgb4H7BuXA428lnPgfvsOMMoYEwyMApZaa/ettyXwsdey1uL5R65hJbZXpEZTQBY5NtvxfEgAnhPk8HwIp3lN493HsYUzD3iOxIR5zev9IXWgW/F8LdzXWhuF5ygs7N+30/5prgrGWU9f6vl4PvSuAN6sYH7w2g5jTASeo87bvcZ7ryMFeMj5h2LfI8xaOwPYATR12mqfFodYZwrQwhz8ZK2Kthf+/LsJx/N1edoh56i8yiz7cPXBofeNA+ffDtQ3xkQeMP3BtiUFzxFk77YPt9Y+7Iyrb4ypd5D5KlNvOae/6zvAbGvty16jdrD/vmLYfztTgOsOqC/UWjvvYLU4/Y3/ieefuBhrbT083QD27T/7rY9D70v71t2mgvGjgfONMRO9hh3uvefd/zgY+BB4HGjo1PqV17QVvecz8XRFqcy27MJzpLblAdOmAVhr062111prm+A5svyC03c5BfjxgLaPsNb+zWs5++0H1to1eML3GcBleH7n+6Tg6ablvbwQ52+LSK2mgCxybN4DzjLGDDfGBOL5MC3G02Vgn38YY5o5J6/chaf/J3j61nY2xnQ3nhP3JlWwnkigEMhylnPfEda5E2hmPJej8vYGnvDRFfjoMMs40zl5KQhP/+sF1tpDHSV9BZhgjOlrPMKNMWc5AW8+niBwozEm0BgzCuhziOUswhOAHnaWEWKMGXiYbdpnBnC1077BeL6uXmitTT7MdlZGVS37HucIZWc8/UJnHmwip53nAf912iARuAbPtwAH2vfNwOnGc1JaiPGcbNbM+YbgazyBKcZp/32BbycQ6xwVroyH8PRpnXjA8C/x7NejnH9sbmT/I5RTgH8527zvZLPRFawnEs/+kgkEGGPuBaK8xr/nLC/GeE6eu6GCZU0F/m2Maefsl4nGmFiv8duB4cBEY8y+0HjI954xJgzPvjvbGRSEpy9uJlBmjDkDOM1r+Yd8z1trXXjeg5OcfeIkPN1i/sSZ9j3gIWNMpPGc5HgLzv5gjBlt/jiRcC+e0OvG0+e+vTHmCud3H2g8J+x2OshqvL2D5/c8GE8f5H2mODW0dNYbb4w57zDLEqkVFJBFjoG1dj2eE4iexXNU5xw8l4Mr8ZrsHeBbPH0lN+Pp04e1dgPwADALz9n6+53dfoDJePo878JzUsz/jrDUH/CcWJhujNnlNfxjnK9JrbUFh1nGO3jCwR6gF57tPihr7WLgWuA5PB/Qm/D0v8Rpm1HO6z14+kUeNJw7QeAcPP0ut+Hpy3rxYbZp37yz8PQR/xBPyG4DXHKYbayUKlz2j3ja5nvgcWvttxVMeymevsvb8fze7nPqOLC2FDwnwv0fnqCWgufktH1/76/Ac/RxHZ6+wzc5863DE/y3OF+ZH64r0KVAP2Cv+eNKFpdba3fhORL7MJ5uJ+3wnJy6r76PgUeAd50uC6vwHJ08lG/w7O8b8BzJLGL/bgD3O8N/x/M+q+ibkCfxBMtvgRw8fclDvSew1m7DE5LvNJ6bm0zm0O+9U4D51toiZ95cPP8QvIdnv78M+Mxr2Yd7z1+Pp5tPOp7+wK9XsC034DkivcVZzjvAa8643sBCY0yes/6J1totTn2n4dlXtzvreQRPqK/IDDznD/zg/H73edpZ/rfGmFw87dP3MMsSqRXM/t0ARaQqGc8NRv56sCBTUxhjNuP5yvuQNRpjpuE58alGXvu5tjHGJOAJdIFH2b/6wOU9gOeErHGHnViqjDHmBWCVtfYFX9ciIlVLR5BF6jBjzF/wfP36g69rkaPj9PE9CU/gluNrOZ6j+SJygqktdykSkSpmjJmDJ1hd4Vx9Q2qnpXj6vV/v60LqmgNOThSRE4i6WIiIiIiIeFEXCxERERERLwrIIiIiIiJeKtUH2bmo/FQ894a3wDg8t+ycieeyQ8nARdbavc4JI0/juXh6ATDWWru0ouXHxcXZhISEo9oAEREREZHKWrJkyS5rbXxF01T2JL2ngf9Zay90Lsofhucam99bax82xtwJ3Ancged6lu2cR1/gRQ5zXcSEhAQWL15cyVJERERERI6OMaaiW9IDlehi4dxVaTCeC6pjrS2x1mbhuRD9dGey6cD5zvPzgDesxwI896xvfMTVi4iIiIj4QGX6ILfCczem140xy4wxU40x4XjuM7/DmSYdaOg8b8r+dzlKdYbtxxgz3hiz2BizODMz8+i3QERERESkClUmIAcAPYEXrbU98Nza8k7vCaznWnFHdL04a+3L1toka21SfHyF3UBERERERI6byvRBTsVzi9mFzusP8ATkncaYxtbaHU4XigxnfBrQ3Gv+Zs6wI1JaWkpqaipFRUVHOqtItQoJCaFZs2YEBgb6uhQRERGpBocNyNbadGNMijGmg7V2PTAcWOM8rgIedn5+6szyGXC9MeZdPCfnZXt1xai01NRUIiMjSUhIwHNhDBHfs9aye/duUlNTadWqla/LERERkWpQ2atY3AC87VzBYgtwNZ7uGe8ZY64BtgIXOdN+hecSb5vwXObt6qMprKioSOFYahxjDLGxsajfvIiIyImrUgHZWrscSDrIqOEHmdYC/zi2sjwUjqUm0n4pIiJyYtOd9A7jk08+wRjDunXrDjvt5MmTKSgoOOp1TZs2jeuvv/6o5z9SycnJdOnS5bitT0RERKQ2UEA+jBkzZjBo0CBmzJhx2GmPNSDXNmVlZb4uQURERKTKKSBXIC8vj7lz5/Lqq6/y7rvvlg93uVzcdtttdOnShcTERJ599lmeeeYZtm/fzrBhwxg2bBgAERER5fN88MEHjB07FoDPP/+cvn370qNHD0499VR27txZYR2TJk1i3LhxDB06lNatW/PMM88Afz4C/PjjjzNp0iQAhg4dys0330xSUhKdOnXi119/ZdSoUbRr14677767fJ6ysjIuv/xyOnXqxIUXXlge8JcsWcKQIUPo1asXp59+Ojt27Chf7k033URSUhJPP/0077//Pl26dKFbt24MHjz4KFtaREREpOao7El6PnX/56tZsz2nSpd5UpMo7junc4XTfPrpp4wcOZL27dsTGxvLkiVL6NWrFy+//DLJycksX76cgIAA9uzZQ/369XnyySeZPXs2cXFxFS530KBBLFiwAGMMU6dO5dFHH+WJJ56ocJ5169Yxe/ZscnNz6dChA3/7298Ou41BQUEsXryYp59+mvPOO48lS5ZQv3592rRpw8033wzA+vXrefXVVxk4cCDjxo3jhRdeYOLEidxwww18+umnxMfHM3PmTO666y5ee+01AEpKSspvDd61a1e++eYbmjZtSlZW1mFrEhEREanpakVA9pUZM2YwceJEAC655BJmzJhBr169mDVrFhMmTCAgwNN89evXP6LlpqamcvHFF7Njxw5KSkoqdbmws846i+DgYIKDg2nQoMFhjzoDnHvuuYAnxHbu3JnGjT13/G7dujUpKSnUq1eP5s2bM3DgQADGjBnDM888w8iRI1m1ahUjRowAPEfM980LcPHFF5c/HzhwIGPHjuWiiy5i1KhRlW8EERERqZvyd8GO5dD2VF9Xcki1IiAf7khvddizZw8//PADK1euxBiDy+XCGMNjjz1W6WV4X+3A+4YnN9xwA7fccgvnnnsuc+bMKe8WUZHg4ODy5/7+/pSVlREQEIDb7T7oOrzn8fPz229+Pz+/8v7DB16RwRiDtZbOnTszf/78g9YSHh5e/nzKlCksXLiQL7/8kl69erFkyRJiY2MPuz0iIiJSB7ld8OE1sG0h3LQSImrm3ZTVB/kQPvjgA6644gq2bt1KcnIyKSkptGrVip9//pkRI0bw0ksvlYfMPXv2ABAZGUlubm75Mho2bMjatWtxu918/PHH5cOzs7Np2rQpANOnTz/qGhs2bEhGRga7d++muLiYL7744oiXsW3btvIg/M477zBo0CA6dOhAZmZm+fDS0lJWr1590Pk3b95M3759eeCBB4iPjyclJeWot0dEREROcHMehi1z4MxHa2w4BgXkQ5oxYwYXXHDBfsP+8pe/MGPGDP7617/SokULEhMT6datG++88w4A48ePZ+TIkeUn6T388MOcffbZDBgwYL8uCpMmTWL06NH06tXrsP2VKxIYGMi9995Lnz59GDFiBB07djziZXTo0IHnn3+eTp06sXfvXv72t78RFBTEBx98wB133EG3bt3o3r078+bNO+j8t99+O127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\n",
"text/plain": [
"<Figure size 864x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"pred[\"pred\"] = p(pred[\"days\"])\n",
"pred[\"pred2\"] = pf2(pred[\"days\"])\n",
"plt.figure(figsize= (12,6))\n",
"plt.plot(pred[\"date\"], pred[\"num\"], label=\"Actual numbers\")\n",
"plt.plot(pred[\"date\"], pred[\"pred\"], label=\"Interpolation - cubic\")\n",
"plt.plot(pred[\"date\"], pred[\"pred2\"], label=\"Interpolation - exponential\")\n",
"plt.title(\"Popularity prediction for project %s\" % your_project)\n",
"plt.legend()\n",
"pred.iloc[-1]"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment