You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dev-wiki/docs/jupyter/Go-Frameworks-Github-Fork-S...

233 lines
23 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.\n",
"Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.\n",
"To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.\n",
"Defaulting to user installation because normal site-packages is not writeable\n",
"Requirement already satisfied: pandas in /home/deploy/.local/lib/python3.6/site-packages (1.0.0)\n",
"Requirement already satisfied: matplotlib in /home/deploy/.local/lib/python3.6/site-packages (3.1.3)\n",
"Requirement already satisfied: python-dateutil>=2.6.1 in /home/deploy/.local/lib/python3.6/site-packages (from pandas) (2.8.1)\n",
"Requirement already satisfied: pytz>=2017.2 in /home/deploy/.local/lib/python3.6/site-packages (from pandas) (2019.3)\n",
"Requirement already satisfied: numpy>=1.13.3 in /home/deploy/.local/lib/python3.6/site-packages (from pandas) (1.18.1)\n",
"Requirement already satisfied: kiwisolver>=1.0.1 in /home/deploy/.local/lib/python3.6/site-packages (from matplotlib) (1.1.0)\n",
"Requirement already satisfied: cycler>=0.10 in /home/deploy/.local/lib/python3.6/site-packages (from matplotlib) (0.10.0)\n",
"Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /home/deploy/.local/lib/python3.6/site-packages (from matplotlib) (2.4.6)\n",
"Requirement already satisfied: six>=1.5 in /home/deploy/.local/lib/python3.6/site-packages (from python-dateutil>=2.6.1->pandas) (1.14.0)\n",
"Requirement already satisfied: setuptools in /home/deploy/.local/lib/python3.6/site-packages (from kiwisolver>=1.0.1->matplotlib) (45.1.0)\n"
]
}
],
"source": [
"!pip install pandas matplotlib"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 3,
"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>forks</th>\n",
" <th>stars</th>\n",
" <th>watchs</th>\n",
" <th>openIssues</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Gin</th>\n",
" <td>4074</td>\n",
" <td>35455</td>\n",
" <td>1212</td>\n",
" <td>242</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Beego</th>\n",
" <td>4688</td>\n",
" <td>23243</td>\n",
" <td>1268</td>\n",
" <td>813</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Iris</th>\n",
" <td>1942</td>\n",
" <td>17507</td>\n",
" <td>683</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Revel</th>\n",
" <td>1357</td>\n",
" <td>11575</td>\n",
" <td>558</td>\n",
" <td>87</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Echo</th>\n",
" <td>1508</td>\n",
" <td>16500</td>\n",
" <td>551</td>\n",
" <td>46</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Buffalo</th>\n",
" <td>430</td>\n",
" <td>5372</td>\n",
" <td>171</td>\n",
" <td>70</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" forks stars watchs openIssues\n",
"Gin 4074 35455 1212 242\n",
"Beego 4688 23243 1268 813\n",
"Iris 1942 17507 683 5\n",
"Revel 1357 11575 558 87\n",
"Echo 1508 16500 551 46\n",
"Buffalo 430 5372 171 70"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 统计go框架fork次数信息\n",
"\n",
"frameworks = {\n",
" \"Gin\":\"gin-gonic/gin\",\n",
" \"Beego\": \"astaxie/beego\",\n",
" \"Iris\": \"kataras/iris\",\n",
" \"Revel\": \"revel/revel\",\n",
" \"Echo\": \"labstack/echo\",\n",
" \"Buffalo\": \"gobuffalo/buffalo\"\n",
"}\n",
"\n",
"\n",
"stats = {}\n",
"for name in frameworks.keys():\n",
" url = \"https://api.github.com/repos/\" + frameworks[name]\n",
" stats[name] = requests.get(url=url).json() # 获取仓库统计信息\n",
"\n",
"indexs = []\n",
"forks = []\n",
"stars = []\n",
"watchs = []\n",
"openIssues = []\n",
"\n",
"for name in stats:\n",
" indexs += [name]\n",
" forks += [stats[name]['forks_count']] # fork次数\n",
" stars += [stats[name]['watchers_count']] # star次数\n",
" watchs += [stats[name]['subscribers_count']] # watch次数\n",
" openIssues += [stats[name]['open_issues_count']] # open_issue次数\n",
"\n",
"df = pd.DataFrame({\n",
" 'forks':forks,\n",
" 'stars':stars,\n",
" 'watchs':watchs,\n",
" 'openIssues': openIssues\n",
"}, index = indexs)\n",
"\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6786d59240>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA3kAAAHrCAYAAABywVS0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3dfbhedXkn+u/NO/IOiYwQpjAt8v6SEBAbQ3k5YiieSqm2dECgqEwVS22nDDjjGZAWa49ombSKg4riVEXEUlFQjBoLzBEl0MhbcIyAJUAxBQwIxRL4nT/2It2GHZKdvcOz98rnc13Ptde611q/537iI9nfrLV+q1prAQAAoB82GHQDAAAAjB8hDwAAoEeEPAAAgB4R8gAAAHpEyAMAAOiRjQbdwNqaMmVK23XXXQfdBgAAwEDccsst/9xam7pyfdKGvF133TULFiwYdBsAAAADUVU/Hqnuck0AAIAeEfIAAAB6RMgDAADokUl7Tx4AADA4zzzzTJYsWZKnn3560K303mabbZZp06Zl4403XqP9hTwAAGDUlixZkq222iq77rprqmrQ7fRWay2PPPJIlixZkt12222NjnG5JgAAMGpPP/10dthhBwFvHauq7LDDDqM6YyrkAQAAa0XAe2mM9s9ZyAMAAOgR9+QBAABjtus514zrePe9/9jV7jN37txcfPHFmTFjRj7zmc+sdv9PfepTWbBgQf76r/96PFqcsIQ8AABgUvrIRz6Sb3zjG5k2bdpq912+fPlL0NHE4HJNAABg0vn93//93HPPPTnmmGPywQ9+MMcdd1z233//HHroobntttuSJOedd17e/OY3Z9asWXnzm9/8C8dfc801efWrX51//ud/zhe+8IXsu+++OeCAA3LYYYcN4uOMKyEPAACYdD760Y9mp512yvz583Pfffdl+vTpue222/K+970vJ5988or97rrrrnzjG9/I5z73uRW1q666Ku9///tz7bXXZsqUKTn//PNz3XXX5fvf/36uvvrqQXycceVyTQAAYFK78cYb88UvfjFJcuSRR+aRRx7J448/niT5jd/4jWy++eYr9v3Wt76VBQsW5Otf/3q23nrrJMmsWbNy6qmn5rd/+7dz/PHHv/QfYJw5kwcAAPTWFlts8Qvrv/zLv5wnnngi/+f//J8VtY9+9KP5sz/7s9x///056KCD8sgjj7zUbY4rIQ8AAJjUZs+evWJ2zW9/+9uZMmXKirN0K/ulX/qlfPGLX8zJJ5+cO++8M0nyox/9KK961aty/vnnZ+rUqbn//vtfst7XBZdrAgAAY7YmjzxYV84777ycdtpp2X///fOyl70sl1122Yvuv+eee+Yzn/lM3vSmN+XLX/5yzjrrrPzwhz9May1HHXVUDjjggJeo83WjWmuD7mGtzJw5sy1YsGDQbQAAwHpp0aJF2WuvvQbdxnpjpD/vqrqltTZz5X1drgkAANAjQh4AAECPuCdvojhvm3EYY9nYxwAAACY1Z/IAAAB6ZLUhr6o2q6rvVdX3q+rOqnpvV/9UVd1bVQu714FdvapqblUtrqrbqmrGsLFOqaofdq9ThtUPqqrbu2PmVlWtiw8LAADQd2tyuebPkxzZWvtZVW2c5Maq+mq37azW2pUr7X9Mkt2716uSXJzkVVW1fZJzk8xM0pLcUlVXt9Ye6/Z5W5LvJrk2yZwkXw0AAACjstqQ14aesfCzbnXj7vViz114Q5JPd8fdVFXbVtUrkhyeZF5r7dEkqap5SeZU1beTbN1au6mrfzrJcRHyAABg8hiPOSZ+YbzRzzdx0UUX5fTTT8/LXvay8e1lklmje/KqasOqWpjkJxkKat/tNl3QXZL5l1W1aVfbOcnwR8Qv6WovVl8yQn2kPk6vqgVVtWDp0qVr0joAALCeuOiii/LUU0+N6phnn312HXUzOGsU8lprz7bWDkwyLckhVbVvkncn2TPJwUm2T3L2Ouvy3/q4pLU2s7U2c+rUqev67QAAgAnqySefzLHHHpsDDjgg++67b9773vfmwQcfzBFHHJEjjjgiSfL2t789M2fOzD777JNzzz13xbG77rprzj777MyYMSNf+MIXMnfu3Oy9997Zf//9c8IJJwzqI42bUT1CobX206qan2ROa+3Crvzzqvpkkj/p1h9Issuww6Z1tQcydMnm8Pq3u/q0EfYHAAAY0de+9rXstNNOueaaa5Iky5Ytyyc/+cnMnz8/U6ZMSZJccMEF2X777fPss8/mqKOOym233Zb9998/SbLDDjvk1ltvTZLstNNOuffee7Ppppvmpz/96WA+0Dhak9k1p1bVtt3y5klem+Tu7j67dDNhHpfkju6Qq5Oc3M2yeWiSZa21h5Jcl+ToqtquqrZLcnSS67ptj1fVod1YJyf50vh+TAAAoE/222+/zJs3L2effXZuuOGGbLPNC+8JvOKKKzJjxoxMnz49d955Z+66664V237nd35nxfL++++fE088MX/zN3+TjTaa/I8SX5NP8Iokl1XVhhkKhVe01r5SVd+qqqlJKsnCJL/f7X9tkl9PsjjJU0l+L0laa49W1Z8mubnb7/znJ2FJ8o4kn0qyeYYmXDHpCgAAsEqvfOUrc+utt+baa6/Ne97znhx11FG/sP3ee+/NhRdemJtvvjnbbbddTj311Dz99NMrtm+xxRYrlq+55ppcf/31+fKXv5wLLrggt99++6QOe2syu+ZtSaaPUD9yFfu3JGesYtulSS4dob4gyb6r6wUAACBJHnzwwWy//fY56aSTsu222+bjH/94ttpqqzzxxBOZMmVKHn/88WyxxRbZZptt8vDDD+erX/1qDj/88BeM89xzz+X+++/PEUcckde85jW5/PLL87Of/SzbbrvtS/+hxsnkjacAAMDEsRaPPBiL22+/PWeddVY22GCDbLzxxrn44ovzne98J3PmzMlOO+2U+fPnZ/r06dlzzz2zyy67ZNasWSOO8+yzz+akk07KsmXL0lrLmWeeOakDXpLU0Im3yWfmzJltwYIFg25j/IzHc0Ve4v9jAQCw/lq0aFH22muvQbex3hjpz7uqbmmtzVx53zV6hAIAAACTg5AHAADQI0IeAABAjwh5AAAAPSLkAQAA9IiQBwAA0COekwcAAIzZfpftN67j3X7K7eM63vMuuuiinH766XnZy162yn3OO++8bLnllvmTP/mTddLDuuZMHgAAsN646KKL8tRTTw26jXVKyAMAACadD3zgA5k7d26S5I/+6I9y5JFHJkm+9a1v5cQTT8zb3/72zJw5M/vss0/OPffcJMncuXPz4IMP5ogjjsgRRxyRJPna176WGTNm5IADDshRRx21Yvy77rorhx9+eP7Df/gPK97nySefzLHHHpsDDjgg++67bz7/+c+/lB95jblcEwAAmHRmz56dD37wgznzzDOzYMGC/PznP88zzzyTG264IYcddlje9KY3Zfvtt8+zzz6bo446KrfddlvOPPPMfOhDH8r8+fMzZcqULF26NG9729ty/fXXZ7fddsujjz66Yvy777478+fPzxNPPJE99tgjb3/72/O1r30tO+20U6655pokybJlywb18V+UM3kAAMCkc9BBB+WWW27J448/nk033TSvfvWrs2DBgtxwww2ZPXt2rrjiisyYMSPTp0/PnXfembvuuusFY9x000057LDDsttuuyVJtt9++xXbjj322Gy66aaZMmVKXv7yl+fhhx/Ofvvtl3nz5uXss8/ODTfckG222eYl+7yjIeQBAACTzsYbb5zddtstn/rUp/Krv/qrmT17dubPn5/Fixdn8803z4UXXphvfvObue2223Lsscfm6aefHtX4m2666YrlDTfcMMuXL88rX/nK3Hrrrdlvv/3ynve8J+eff/54f6xxIeQBAACT0uzZs3PhhRfmsMMOy+zZs/PRj34006dPz+OPP54tttgi22yzTR5++OF89atfXXHMVlttlSeeeCJJcuihh+b666/PvffemyS/cLnmSB588MG87GUvy0knnZSzzjort95667r7cGPgnjwAAGDM1tUjD17M7Nmzc8EFF+TVr351tthii2y22WaZPXt2DjjggEyfPj177rlndtlll8yaNWvFMaeffnrmzJmTnXbaKfPnz88ll1yS448/Ps8991xe/vKXZ968eat8v9tvvz1nnXVWNthgg2y88ca5+OKLX4qPOWrVWht0D2tl5syZbcGCBYNuY/ycNw7X8543MW/8BACgfxYtWpS99tpr0G2sN0b6866qW1prM1fe1+WaAAAAPSLkAQAA9IiQBwAA0CNCHgAAQI8IeQAAAD0i5AEAAPSI5+QBAABjtmjP8X2cwl53LxrX8Ubr29/+di688MJ85StfGWgfa8OZPAAAgB4R8gAAgEnpQx/6UPbdd9/su+++ueiii3Lfffdlzz33zIknnpi99torb3zjG/PUU08lSW655Zb82q/9Wg466KC87nWvy0MPPZQkOfzww3P22WfnkEMOyStf+crccMMNL3ifv//7v8+BBx6YAw88MNOnT88TTzyRhx56KIcddlgOPPDA7LvvviuO23LLLVccd+WVV+bUU09NkixdujS/9Vu/lYMPPjgHH3xw/vf//t+rHHushDwAAGDSueWWW/LJT34y3/3ud3PTTTflYx/7WB577LH84Ac/yDve8Y4sWrQoW2+9dT7ykY/kmWeeyR/8wR/kyiuvzC233JLTTjst/+2//bcVYy1fvjzf+973ctFFF+W9733vC97rwgsvzIc//OEsXLgwN9xwQzbffPN89rOfzete97osXLgw3//+93PggQe+aL9/+Id/mD/6oz/KzTffnC9+8Yt561vfusqxx8o9eQAAwKRz44035jd/8zezxRZbJEmOP/743HDDDdlll10ya9asJMlJJ52UuXPnZs6cObnjjjvy2te+Nkny7LPP5hWveMWKsY4//vgkyUEHHZT77rvvBe81a9as/PEf/3FOPPHEHH/88Zk2bVoOPvjgnHbaaXnmmWdy3HHHrTbkfeMb38hdd921Yv3xxx/Pz372sxHHHitn8gAAgN6oqhest9ayzz77ZOHChVm4cGFuv/32fP3rX1+xz6abbpok2XDDDbN8+fIXjHnOOefk4x//eP7lX/4ls2bNyt13353DDjss119/fXbeeeeceuqp+fSnP/2C93/66adXLD/33HO56aabVvTwwAMPZMsttxxx7LES8gAAgEln9uzZ+bu/+7s89dRTefLJJ3PVVVdl9uzZ+cd//Md85zvfSZJ89rOfzWte85rsscceWbp06Yr6M888kzvvvHON3+tHP/pR9ttvv5x99tk5+OCDc/fdd+fHP/5xdtxxx7ztbW/LW9/61tx6661Jkh133DGLFi3Kc889l6uuumrFGEcffXT+6q/+asX6woULVzn2WLlcEwAAGLOX+pEHM2bMyKmnnppDDjkkSfLWt7412223XfbYY498+MMfzmmnnZa99947b3/727PJJpvkyiuvzJlnnplly5Zl+fLlede73pV99tlnjd7roosuyvz587PBBhtkn332yTHHHJPLL788H/jAB7Lxxhtnyy23XHEm7/3vf39e//rXZ+rUqZk5c2Z+9rOfJUnmzp2bM844I/vvv3+WL1+eww47LB/96EdHHHusqrU25kEGYebMmW3BggWDbmP8nLfNOIyxbOxjAADAGli0aFH22mt8n403Vvfdd19e//rX54477hh0K+NupD/vqrqltTZz5X1drgkAANAjQh4AANALu+66ay/P4o2WkAcAAKyVyXrr12Qz2j9nIQ8AABi1zTbbLI888oigt4611vLII49ks802W+NjzK4JAACM2rRp07JkyZIsXbp00K303mabbTaqh6QLeQAAwKhtvPHG2W233QbdBiNwuSYAAECPCHkAAAA9IuQBAAD0iJAHAADQI0IeAABAjwh5AAAAPSLkAQAA9IiQBwAA0CNCHgAAQI8IeQAA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\n",
"text/plain": [
"<Figure size 1080x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df.plot(kind='bar', figsize=(15, 8))"
]
}
],
"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.9"
}
},
"nbformat": 4,
"nbformat_minor": 4
}