{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 使用Python进行数据可视化分析" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 连接MySQL并获取数据" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "jupyter": { "source_hidden": true } }, "outputs": [], "source": [ "import pandas\n", "import pymysql\n", "\n", "connection = pymysql.connect('192.168.211.128', 'hive', 'hive', 'dblab')\n", "national = pandas.read_sql('SELECT * FROM national;', connection)\n", "national.set_index('id', inplace=True)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "jupyter": { "source_hidden": true } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " gender count\n", "id \n", "1 F 7065\n", "2 F 2604\n", "3 F 2003\n", "4 F 1939\n", "5 F 1746\n", "... ... ...\n", "1825429 M 5\n", "1825430 M 5\n", "1825431 M 5\n", "1825432 M 5\n", "1825433 M 5\n", "\n", "[1825433 rows x 2 columns]\n" ] } ], "source": [ "gender_counter = national[['gender', 'count']]\n", "print(gender_counter)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "jupyter": { "source_hidden": true } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " count\n", "gender \n", "F 167070477.0\n", "M 170064949.0\n" ] } ], "source": [ "# 由于数据量庞大,使用pandas聚合函数进行分组聚合会消耗大量时间,因此选择通过SQL语句进行数据提取\n", "gender_counter = pandas.read_sql(\n", " 'SELECT `gender`, SUM(`count`) as `count` FROM `national` GROUP BY `gender`;',\n", " connection,\n", " index_col='gender'\n", ")\n", "print(gender_counter)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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oUySJKkAy/2SGOutt15usskmzS5DkiRpse69997nM3NIZ/uW+1C2ySabMGXK4hYalyRJar6I6HI9PYcvJUmSCmAokyRJKoChTJIkqQCGMkmSpAIYyiRJkgpgKJMkSSqAoUySJKkAhjJJ0grrjTfe4LzzzmP//fdvaxs3bhyjRo1q+xk8eDD33HMPAGPHjmXEiBFsvfXW3HvvvQs934QJE9h0000ZNWoUF110UVv7rFmz+OAHP8jIkSPZaaed2p0zd+5cNthgAy699FIAnnvuOfbdd19GjRrFnnvuybPPPtvu+LvvvpuIYObMmW3bLS0tbLbZZhx77LHMmzdv2bw5Ko6hTJK0wtp8882ZOHEir7zySlvb2LFjmT59OtOnT+eGG26gpaWF7bffnptvvpnbbruNJ554gnPOOYcjjjii3XO98sorfOELX+C2227jtttu49RTT2XOnDkAHHjggRx88MHMmDGDm2++ud15Z555JgMHDmzb/uIXv8hee+3F9OnT2W+//Tj11FPb9mUmp512GmuuuWZb24EHHshPfvITHn30UZ5//nl+9atfLdP3SOUwlEmSVlhTp07l5JNP7nL/N7/5zbZQdOWVV3LYYYcxaNAgxowZw5w5c3jmmWfajr3hhhvYbbfdGD58OEOHDmWPPfbgpptu4t577yUzOeSQQwBYeeWV28657777+MMf/sDee+/d1jZlyhQ+8pGPAHDwwQczceLEtn3nnXceH/jAB1hrrbUAmDNnDq+//jotLS0MGDCAAw88sN3xWrEYyiRJK6zWcNOZ2bNnc88997DvvvsCMGPGDDbeeOO2/cOHD2f27Nlt2x33jxgxgtmzZzN16lSGDx/OmDFj2GKLLTj77LMBeP311znuuOP4wQ9+0O66W221FVdeeSUA1113XVtv2yOPPMJll13GKaec0nbsuuuuS2Zyxx13sGDBAm644Ya247XiMZRJkvql8ePHc/jhhxMRALz55psMGPC3j8UBAwa0G3bsav9zzz3HtGnTmDBhArfddhvnnXce9913H8cffzzHH388m222WbvrnnPOOUyePJltttmGGTNmsN566/Hqq69y6KGHcuGFFzJ48OB217j88ss58cQT2WmnnVhzzTVZd911e+stUZMt919ILknSkrj88su5/vrr27aHDRvGrFmz2raffvppRowY0W7/rbfe2rY9c+ZMdtxxR1588UV23XVX1l57bQB23nlnpk6dyjXXXMMdd9zBGWecwezZs5k4cSJz587l2GOP5brrrgOqocxbbrmFa6+9lieffJL99tsPqG4c2H333ZkwYQK77rpr200HZ5999iJ7/7Scy8zl+mf06NEpSVJXbrnlltxzzz3btT3yyCO51VZbtWu74oorco899sh58+blxIkTFzrnmWeeyQ033DCfffbZnD17dm666aY5d+7cfPLJJ3PLLbfMP//5z/nSSy/lO9/5znz00UfbnXvooYfmJZdckpmZL7/8cmZmvvrqq7nXXnvllVdeuVDNG2+8cc6YMSMzM1966aXMzHzsscdy1KhR+fTTTy/Fu6FmA6ZkF5nGnjJJUr/TusxEo/3335/Jkyfzjne8g3XXXZfLLrsMgFNPPZW9996b3XffnTPPPLNtyYvvfve7rLrqqqy66qqccsopbL/99mQmY8eOZdSoUV1e+5prruErX/kK8+fP59hjj223XEdnTjvtNK699lpWWmklvve97zFs2LClfPUqVVShbfnV0tKSU6ZMaXYZWgJvvPEGF110ERMnTuSqq65qa581axZHHHEEDz74ICNGjODOO+/kxBNP5Le//W3bMU888QSzZs1igw02aGubMGECX/rSlxg4cCCnnnoqhx9+OOPGjeOCCy5oO+app57i9ttvZ/vtt2fs2LFceumlrL322lx88cWMHj263XGbb745kyZNYpdddmGHHXbgxRdfbKt7jTXW4J577mGbbbZpO2fu3LmMHj2aa6+9tlfeL0nS8i8i7s3Mls722VOmptl8883Zbrvt2q0fBNWaPEcddRSHHHIIr732GgA//OEP2/ZPnjyZc889t10ga10/6K677mLgwIFsu+22fPSjH2Xs2LGMHTsWgMcee4xDDjlkofWIbrnlFo444gimTp3a9nxf/vKX260TdPfdd7c9Pv300xkyZAirrLIK06dPb2s/7LDD+OQnP7mM3h1JUn/j3Zdqms7WD1rUej+tvv71r/PVr361XVtX6wc16u56RNdddx2rrbYaW2yxxULXfvnll/n1r3/NkUce2a59+vTpTJs2re3WekmSespQpqbp7A6irtb7aXXPPfcwcOBAtt5663btXa0f1Kq76xE9//zzfP3rX+fb3/52pzWff/75HHDAAay00krt2r/3ve9xwgkndPOV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\n", "text/plain": [ "<Figure size 720x576 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from matplotlib import pyplot\n", "%matplotlib inline\n", "pyplot.rcParams['font.serif'] = '新宋体'\n", "pyplot.rcParams['font.sans-serif'] = 'Microsoft YaHei'\n", "pyplot.rcParams['font.monospace'] = 'Consolas'\n", "pyplot.rcParams['axes.unicode_minus'] = False\n", "pyplot.figure(figsize=(10, 8))\n", "pyplot.bar(gender_counter.index, gender_counter['count'] / 1e6)\n", "for (x, y) in zip(gender_counter.index, gender_counter['count'] / 1e6):\n", " pyplot.text(x, y + 0.2, str(y), ha='center', va='bottom', fontsize=10)\n", "pyplot.ylabel('出生人数(百万人)')\n", "pyplot.title('1880~2014年美国新生儿性别人数直方图')\n", "pyplot.savefig('./Gender_Hist.svg')\n", "pyplot.show()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true, "source_hidden": true } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVQAAAFkCAYAAAB/6MMYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd3gc1b3G8e9PlnsRYAw2dQETekmAYEoS4FIjIISWQq+hJZcUyEIIDCVEKZCEHpzr0FNIgBg2dDDBkAAmOJiWYEDBgI2xDYvlonruH2eEV7Ikq4x0dnbfz/PosXZnd/WurH33zJnZGXPOISIifVcROoCISKlQoYqIJESFKiKSEBWqiEhCVKgiIglRoZY5M1vbzIb24PYTzWzbdtdVmtkeCeUZmcTjJMG8onqNmJn14LaDevH4g8yssqf3E6+o/lgGgpmNMLOfmdnPCq4bY2Z3mdkyM/uPmR1csGywmd1oZnVmNsfMTi5YZmZ2uZktMrMFZnZOH3Ktb2a5OMN/zeysdsu/ZWZzzexjM7uy/QvLzHY1s9fNbFQnj3+MmTkzy7Rb9AfgoB5ErQRuNbPD4setAh4BjuzJi70LNWb21dYLZjbBzD5rZnub2Slm9nMzG1KwfB8zmxh/f42Znd2TH2Zmw81sRCeLTwIuLLxt/O80M9u+Jz8nvt94M6vtYvkkM5vWVVbgpa5+z3G29eKLfzCz3QqWXWtmBxRc/ouZ7druIb4JXFBwm/XM7CUz27DwdSEdK6t3IjM7A7g4vnhzwaLJwFxgLWBX4I9mtolzbgFwGTAOWB/YBHjAzJ5xzs0CTgYOBrYB1gammdnzzrnHehHvZOB3wBHADsBfzexl59zjZrYPkAX2AuqBacBLwBQzWwe4Fdg6zt/R8zbg+x1cvxPwBWAdM7usi2y7A98AdoovLwK+aWbHAIb/vXwE3B2/1i+L81wBfLCK5z3MOZcxs1/Hz3sMcIiZfQ94BnD43+9rwHvx8x4KNMQFMwXYrcNH7kD8hjLdOddaOt8FRuF/v13dbyjwtpmt38nyPYCpccZWGwHrApsDDcDbBbefBNQ45/bobnbgf/DP/6dmdhR+QLQAeNc5t1+7PEOAPYFrzWx3YDbwc+B+M/sb/u92GPCP+Pbr4V8D7Q0BGoEW4BIz2945d4mZRfi/iXx8uxHA0g7uP8w5l+nBc0y1sipUYDjwJeDUdtdvCxzhnFsMPGhms4GN8X+s2wLXOuc+BGaY2RPAFsAs/B9UjXPuXeBdM7sd+DrQm0L9kXOuIf7+STN7EPg88Hj8c65zzr0KfqQR/5wpQBXwMPC/caaOHIt/MW/VekW8WvdLYF/n3MMF19c551Ya5ZrZDbR9EwK4CfgNcGa76xfgC3Wyc67TooozzI4v/i9wmXPue/GyX+AL4DzgIufctA4e4gRgPPBsXOSjgWYzK/yZ851z23Zw3+7ax8zuBNYD3nDOLe9igPiQc+7w1gtm9lr87d5AHXBbT35wXP43A4c75z7Al+B9zrlb4zfJ6c65e+LbvuSc27rg7gcCrwNfAT4HTMe/eQ4Dno+fz4fAK2Z2LHAafk2jvSFAo3NuTlzMmxUsO885d1P85nA/MA9fvAALnXPVXY3IS1FZFapz7goAM2tfqHcCZ8Wr7J/Dj1j+VbDsFDN7GtgU+DRwhpkNBrYHni14nOeBU3qZraHdVevgXwTgR4Y3tvs534nv9yrwager8oCf4gAi/Mj3gIJFFwH/LizTVeRbaGYz2129EZDBl0WrB5xz2dbSid9kWot8Ir7YW5/rUQWPv9zMRsUvzgnAhs65dzsrLzNbFzgXWN85Ny++7hpgtnPul915Tl2JR+zDgCbgSvxIe4KZvRQ/7z+Z2fL45q3TQBub2WkFD7NaH37+tsCfgHOdcx+Y2WjgcOCO+CZfANaIR8a3dvAQ3waOB/4NvAz8AP/3+x3n3BHxNMlvWkfIZrYMuB34LbBeQREOBtYsLMbC109cxkcBVzvnLjSzMcDd8VfZKatC7cLVwEz8SBDgROdcffz9H/DzSgvjy5c45943swnAIGB+weMsBNboa5h4dW57oHUucXwffs6F+BHsa+2ufxO4PS6IQsPbXbeg9UXnnGszb2hm9wG/dM51NLIhvs9RBbefBhzvnKuNL1fG/04A7o1vtjd+TWK+mc3Av7Ed3m7O8gX81M3k1jLtoe583noP/BRMHfA+/k3pU865fPw8znbOffIGExdbE35k/lJ8vxa6NqndCO64+LHOxI/Yj3PO/T1edhp+OgQz2xBYjl9DORs/rVDI8P+/h+CnYq53zi0ws007e+7OuVlm9lf8KP+d1tV0M6vGj6w3cc41FzzfXfH/Tw3Ouf3M7Gwzux/YEDjHOZdbxXMvSSpU7278aOCHwI740ce/nHP/xI8MZ+Nf6BsCU+MX+gvxfQs37FXQ7kVkZjvi3/mHANfiV7MvBeY6565qH8TMvgXU4F9MrXNug1b1czoSj3KOwk9btOGc+208b9ZUWJTxKv/W7W8fj9Dbb7yZgJ+jW9bu+hvwL3ji1e/WN4aJ+LnhBvx82+fjLHPxv3fiEd6w1lFmPL3xKPD3+GsXYAnwNPCTVf0OOjC8NVtn4rWPl/Dz1QAPAe855/Kd34ungX3x86i/cs69bmYPsOKNuCP/KJxDjUfnn8O/ee4cTzNhfk+Db+Df3AFOB37tnJtuZpey8lSPA07E/z0vd87d0Poj6OLNJF6z+GG7qz+FH2l/Fv/7LzQEWBBPB+2AX+1/H/iJmR2Nf02VlbIvVDPbCtgZ+J94VPqYmf0ROMnMXseXwUTn3EJgYbxaeRp+bgr8SHFRwffzaetc/AvgBXyR1sZfB7bLYcA1+FHFPs65pwoWf0jbEWlHP6f98xqKH1mc65z70DrZ+t9dzrn2W4Mxsx/h5/Tav9Aws+Pj+9Xg3yBaR6jfxm8AOqbd7W8BtsRvALT4BfkMfsQ0xzk3z8yaC0ak55vZHWa2V8HDdDSHOsU5d37B5XVZxe/OOdcInGbxHh3OuTfM7KL4+cLKq/yfwW/c2hk/Qr3WzFo30LTZW6MbnnXOHdkuT0tcdDvgN44eCLh4imoz/N9T++fQXDhdYmbP4t8AR8dzu4PxUxivAdc4566Jn+8PgcsLHmoSftrrUFYu1Cr83+Kt+OmRZfjByWX4KavFPXzuqVf2hYp/l3W0HfG14P9AKvGjQdd+mXOuzszewr9zt25Y2RmYUfjg7V4cZ9H5C+wMYD9gx3jEVmhW/HNaV61X+jkdmITfOn6Hmd1RcP1bZnaxcy5axf3baDcX2moicFhBsbS6mM59iH9hbg28WHD9KfiiGIcvxhnxHg6P41dbV+Kc+3q7jN2ZQ90DP73TITP7Bn6r+X3tftaxBbeZxsqr/L/FF8+TwLfwq/+/x++R0BP1hRfMbBP8Bp7fmdkO+NH5N/FvNvcD9zjnXBcbylrzfzae79zGOXdO4RyqeT/Bl+b1BT97JH7Pgk8Dz5lZ5JxbUvCwb+PftIcBv8b/n+4FrOucuy5+jB4+/XRTofoX9dvA5WZ2CbAdfgv6UfHIblq87Ez8ltEzgNZ9WG/Bj5Sewo8cDsPvYtQbp+LnZzvadeUW4MdmNhVf7mfgNzh0yjn3BH4VD4B4hLoY2Mg5V2srtkAXbo0GGNHuMsDdhXOh8X0uxm/k2Ay/h8Sb7ZYfH/87gxV/Z+Pwc6XNcf5LCu5yBrAmMCe+XGNmF+JfpG919Vy7K57iaH3j6swO9LwEiUfQ2+HnH1+Lfx50vCtR+1xb4jds/bGDxd/C74rVOr2xyDk3Lf7/3JR44yR+C3tHKszvgnYVsA9wXye3G4z/2/0aKzamnQX8Od7Cfy9+17sL291vO/wItQL4D/AKUGdmGzrn/tvJzypZZV+o8apRNf6deT5+DuiCgkn1r8fL3gE+xs+ptr6LX46fV30Fv6vQN5xzL/cyynrAzWZWuGvSv+L5zZvxu2o9hZ//+5Fz7qFe/hwAnHObd3R9PIfa4bJ4+TbA+fhVvUPjXFPjEeytzrl32v2cHbt4rErgyvjfg/EfMDgRvxfA0fjye6VwY0hvmd9/9AH8FMBzBYvqiXcFikdkuwB39eLxRwH/R/xma37vivXxBRjF122JfzMBGAlsYGYP43+X1+FHtWPaPfSWdLwb3g+BR5xzzwM45/bu4Dbr4H+Hf8Lvk7oj/vfbhnPOERezrdg7YyP89Myk+GaXATPN7BHn3N8K7vs8sKX5/V43w78h7YR/E1ShlgPn3PHtLv8bv6rS0W3n4uc1O1rWgN8X8oQEMo3tYpnDjw5W2jm/4Da1FIxIO1he19XyVTGzq/AbXZrwG9amOOda8Pvm7o5fDZ0ezwW37jp2ipl1+Ltrl60J2NPMXsB/QOII/DTK0fjdfdpnGQS80UXW9p+WmoLfF/deoP2n2e4BjjezRfjfz9/w+/4WPt53aft/3H4OdSr+d/MoMMTM3sWPcm9xztWb2fn438k4/J4D4Kc18sDlzrnH458zEhhsZu/g3ziH40enj7bLcyx+JLljwXXr4EfD41ix0e0l/L7CM/G79x0Zzw+vynjgQeDi1j0ynHP/jX+v98cDEPBrTZ3tZ7xPua3uA5jTEfulgHW+Y/92+NHWnA7uVni7TfFleBywuevGjv2uk0/SxNMKn3zgwcxmO+cmdvvJtH2sdZxz7636lm3uczKwXnfmm81svfaj84Jlo/Cj0MbCKR0zq4jflLqb5+f4VfZzge+6+IMe8bKn8J+Um+Gc+1oH9x3cnTKNS3Nv/JrBuR0sPxn/BnIGUOucu2kVj1fb2f9vKVKhSr+IR6rWk8IQSTsVqohIQsruaFMiIv1FhSoikhAVqohIQlSoIiIJUaGKiCREhSoikhAVqohIQlSoIiIJUaGKiCREhSoikhAVqohIQlSoIiIJUaGKiCREhSoikhAVqohIQlSoklpmto6ZfaqTZRVWjufgkKBUqJJmZwBf6GTZha3LzGySmY02s+kDlkzKkgpV0qwauLuL5TvH/17FirONivSbsjzrqaSXmV0HfAYYgT/19n3xmv0Q/Pnk5wOfxp9ddAsz+wCYADwEbFMwSp3inJsywPGlxOmcUpJKZlYDzHLO3R5fPgjYyTl3oZndjj8v/D+B04GLnHNPm9l059zu4VJLqdMqv6SOmQ0FDgb+XHD1l4EH4u+fBJqARfjz3j89sAmlXKlQJY0m4QtzOwAz2wLYtLU4nXM3FNx2sJlNj1f1t2n93sw+N+CppeRplV9SycwmAucCGWBd4KvOuVkFyyNgmnNuWsF1WuWXfqURqqTVYuBtYA3gWeB6M9svbCQpd9rKL6liZicBxwGDgCnArs65BjPbDPixmf0A2Kfg9oX7nk4suPy6c+6Egcot5UGr/JIqcXEucc6908ny9TpbJtLfVKgiIgnRHKqISEJUqCIiCVGhiogkRIUqIpIQFaqISEK0H6oUnUw2V8GKv02Lv1q/b66tqW4IEkxkFbTblPS7TDZnwFhgHLBWwb9rdXDdOPynn7pae3JAPbC84Gsp8B4wB3gn/veTr9qa6o+Tfl4i7alQJVGZbC6DP2hJ4VcG/8mmkD5m5aJ9HXi2tqb6jZDBpHSoUKVXMtnccGBr2hbntkBVyFy9tBB/PIBngWfwJbswbCRJIxWqdEsmm1sL2A/YF9gB+BThR5396U3ico3/faG2pnp52EhS7FSo0qF4w9BngS8CB+BLtJzPItoIzATuA+6urametYrbSxlSoconMtncOPwo9Iv4kejYsImK2mzgHvxJAv9eW1OtF5KoUMtdJpvbCX/20C/iR6HaN7nn5gF/wZfrY7U11Y2B80ggKtQylMnmxgLHAicDWwaOU2ryQA5frvfX1lQvCZxHBpAKtUzE+4LuCZyCP6Hd0LCJysJS4Hbgas25lgcVaonLZHPjgROAk4BNAscpZ9OAq4G/1NZUNwfOIv1EhVqC4i30++NHoweijxgXk7eB64HJ2te19KhQS0gmmxsNfBM4DVg/cBzp2nLgDvx0wMzQYSQZKtQSkMnmRuCL9By0q1MaTcdPB9xVW1PdFDqM9J4KNcUy2dww4HQgiz+wiKTbbOD82prqO0MHkd5RoaZQJpsbApwKnA9MCBxHkvcMcE5tTfWToYNIz6hQUySTzQ0GTgR+gOZIy8FU4Pu1NdWvhQ4i3aNCTYFMNjcIvyP+D4GNAseRgdUMTAEuqq2pnhs6jHRNhVrkMtncF4AbgM1DZ5GglgBXAj+tramuCx1GOqZCLVKZbG414Gf4HfLL+ShP0tZ84GLgRu0RUHxUqEUok80djt+NZnzoLFK0ZgHHah/W4qJCLSKZbG4d4FrgkNBZJBUagUuBH2u0WhxUqEUgPnDJaUANMCZwHEmfGfjR6quhg5Q7FWpgmWxuc2AysHvoLJJqy4ELgF/U1lS3hA5TrlSogcT7lGbx+5TqUHqSlOnA8TqTaxgq1AAy2dz6wJ+BnUJnkZK0BDgXuF6nZhlYKtQBlsnm9gJ+D4wLnUVK3sPASbU11XNCBykXOn/QAMpkc+cCD6EylYGxDzArk83tHzpIudAIdQBksrlRwG+Bw0NnkbLUDHyvtqb6l6GDlDoVaj/LZHOb4U/YtkXoLFL2JgNn6qys/UeF2o8y2dyXgZvQvqVSPJ4ADtPpV/qHCrUfxEeHugz4PvocvhSfN4CDa2uqXwkdpNSoUBMWn/P+d/gNAiLF6mPgq7U11feHDlJKtJU/QfH+pU+hMpXiNwa4N5PNfTt0kFKiEWpC4o1PD6Mj6Uv6/B9wujZW9Z0KNQGZbO4zwANo/1JJr8fx86o6eHUfaJW/j+Ij6j+OylTSbU/ggUw2Nzp0kDRTofZB/AmUB9BuUVIadgMeymRzVaGDpJUKtZcy2Vw1cA8wLHQWkQRNAh7OZHOrhw6SRppD7YVMNncg/mhRQ0JnEeknLwB719ZULwodJE00Qu2hTDZ3MCpTKX2fBh7MZHOazuoBFWoPZLK5LwF/QmUq5WFHIJfJ5kaEDpIWWuXvpkw2twvwGJozlfLzMHBQbU11feggxU6F2g2ZbG4j4Bm0a5SUr6n4g6ro7Kpd0Cr/KmSyudWAHCpTKW8H44+cJl1QoXYhPpHen9GxTEUAjspkc98PHaKYqVC7dgOwV+gQIkXk8kw2d0DoEMVKhdqJTDaXBU4MnUOkyFQAd2SyuU1DBylG2ijVgUw2dwTwB3RwaJHOvArsXFtTvTh0kGKiQm0nk81Nwh/sRLtHJej9Oy+ictRY1tj/LD58dDLL3pyBDRrC2P3PYui6W6x028YFc7CKQVSuNp61v3IpAO/95gxcsz/C3ND1t2LNL54NQNPiBSy8/yoaF7zNoNFjmXDMFSx7YwaLHpuMVQxi3JfOY/Ca69PwwX/JP3UH4w45b2CffOmaChxSW1OtEolVhg5QTOLdo/6CyjRRy958nsb5b1E5aixLZj1K0+IFrHPyDTTMf4sF9/6cdU6+HrMVKwMty+qYcNwvGDSi7TE6XHMj635j8kqPv2Dqzxi13X6M2novWhr9rpL5Z+9iwrG/oGHebBbPvJ819j6VD6dNYex+Z/bvky0vBwOXAD8MHaRYaA41Fn8a5F5grdBZSklLw3I+mn4HYz57GAD182YzfKMdsIpBDB0/EasYRNNH89rep34JFcNGrfxgHUzA1M+bDThGbe23HVYMHuoXuBZcSxOuqZ6KIcOpm/UowzbYlsox+u9N2A8y2dxhoUMUCxXqCj8HtgodotR8+OiNjNnpECqGjQRgyJobsOyNZ3HNTTQumENT/n1alubb3Mc11fPejacy95bvsuzN5wFfzM1LPuLdG05i3u/Oo37ufwBoeP9NBo0ay/u/v4B3J59G/pm7AKiadATv33EeH8+Yysit9mTJy48yZqdDBvCZlw0Dbs5kc9uEDlIMNIcKZLK5L+J33pcE1c16lPp3XmbsAd+ibtYj1L/zCmvsewaLHvk1y9+exdB1N6fxg1rWPOgcBq+x7kr3Xz7nJT64+3LWPfXGNiPWJa9N58NHJ7PemTeT//sfWfLak6z9tR9DSzPzbv0u4758PkPW2viT2y986HpGbvl5P/Ww4G2GrLUxq+3+9QH5HZSRN4Gdyv3oVGU/h5rJ5sYBU0LnKEWL/3kvLcuX8O7k03D1S2hpasC5lk82JrnmRt698VQqx3T8IbRh629NZdVaNOXnM6SgUEduvjuLHrqOluV1VIxYjWHrb82gePnQdbegcdF7nxRq/dzXoaUJWloAY61DL2BB7koaF85h8Fid/itBGwO3A2W9j6pW+WEysHboEKVownG/ZN1vTGbdU25gtS8cx8jNdmONfU7HNTfinOOjp37PiE0nYZUrDt7lmpto+vgDABref4PmukVUrr4OLfVLaF72MQDL3phBxbBRVAwbxfCNtmd57b9oqV9Ky/I66t/7N0PW9mXqXAsfPXkrq33hOFqWF5wqqaUFrZn1i/0z2dxJoUOEVNar/PF//m9C5ygHrav8Yz57KPPvvAjX3MiwDbZljf3OomLIMD5+/l4GDR/D8E13Zu5NZ0NzIxXDRrH6nicxbMNtafxoHvP/cAEAg0auzhr7nv7JKLTuxYfJP/MncI6qSYczatt9AVj8zxxWOZhR2+6La2pg/p8vpSk/j+Eb7cAa+5wW7HdR4vLAVrU11e+GDhJC2RZqJpvbBJgJdLA5WUT6IFdbU31g6BAhlOUqfyabGwTcispUpD9UZ7K5Y0KHCKEsCxU4D9gldAiREvarTDY3PnSIgVZ2hZrJ5nYELgqdQ6TErQ5cHzrEQCurQs1kc8OB29DuYiID4ZBMNveV0CEGUlkVKnAusFnoECJl5Jp4X++yUDaFmsnm1gHOCZ1DpMysCVwTOsRAKZtCBS4HRoYOIVKGjsxkc4eGDjEQymI/1Ew29xlgBjpgtEgo/wU2K/VTUZfLCPVKVKYiIW0IlPzH00p+hJrJ5r4M3BU6h4jwAbBxbU113SpvmVIlPULNZHNDgJ+GziEiAIwDvh06RH8q6UIFzgImhg4hIp/4XiabGxs6RH8p2UKN/9N0rhuR4jIGyIYO0V9KtlCBCFgtdAgRWclZmWxu5VM0lICSLNRMNrcZZbBFUSSlhlGix9MoyULFH01Kn9cXKV4nZLK5TUOHSFrJFWp8yLCvhc4hIl2qBC4NHSJpJVeowJnAkFXeSkRCOzKTzX06dIgklVShZrK5YWjuVCQtDDg/dIgklVShAsfij24jIulwSCabmxA6RFJKplAz2ZwBZ4fOISI9UgmcHDpEUkqmUIH9gC1ChxCRHjs1PnFm6pVSoX4ndAAR6ZX1gJI47XRJFGomm9sa2Cd0DhHptdNDB0hCSRQqJX4EG5EysG8mm9skdIi+Sn2hZrK5tYCjQucQkT4x4BuhQ/RV6gsVv4VwaOgQItJnJ2SyuVS/lkuhUMvqvN8iJWxN4IjQIfoi1YWayeY+BWwbOoeIJCbVG6dSXaik/N1MRFayayabS+0gSYUqIsUmta/r1BZqJpubCGwXOoeIJO6g0AF6K7WFSorfxUSkS9tlsrkNQofoDRWqiBSjVH4UNZWFGn+ioqQOTCsibRwcOkBvpLJQ0ehUpNTtkcnmRoUO0VMqVBEpRkOBfUOH6KnUFWomm9sY+EzoHCLS71K3tT91hQp8KXQAERkQ1ZlsLlUdlaqwsc+FDiAiA2IcsHPoED2RxkLdJXQAERkwqVrtT1WhxvOn40PnEJEBo0LtR7uGDiAiA2rrTDa3eugQ3aVCFZFil5q9etJWqLuFDiAiA26H0AG6KzWFmsnmRgNbh84hIgNOI9R+MIl05RWRZGiE2g80fypSnjbJZHNVoUN0hwpVRIqdkZKjy6WiUOOPn00KnUNEgknFan8qChXYEhgTOoSIBKNCTdDmoQOISFCp2NKflkLNhA4gIkF9Kt51sqilpVA3Ch1ARIJKxYaptBRqJnQAEQlum9ABViUthaoRqoisEzrAqqSlUDcMHUBEgpsQOsCqFH2hZrK5tYERoXOISHAq1ARkQgcQkaKgVf4EaP5UREAj1ERkQgcQkaKwZiabGxw6RFfSUKgaoYoI+H1R1w4doitpKNRM6AAiUjSKeh41DYW6XugAIlI0inoeNQ2FWvSf3xWRAaNC7aORoQOISNFQofaRClVEWmkOtbcy2VwlMDR0DhEpGkV9bqmiLlQ0OhWRtipDB+hKUYfD53sOGIYfqXb0NShYOhEZaEXdWUUdrrameiHw2a5uUzAt0NFXV0Xc22WrWl7so36RNCvqzirqcN1RW1PdBDQBS0JnAYg/GldMBW/9+4xFBlRRd1ZRhyOqGg9cDNR38rW8h9evWBblm/sjcm1NdSPQCNT1x+P3VCabG0JxFbxIXxT1Z/mLu1BhDeDUfnnkqKqZ3hRxcsvaXh/lW/rjadbWVDcADcDi/nj8nspkc70t4iFotC3wXugAXTHnXOgMnYuqtgFeDB1jgDQRptg7Xhbli/gPQ6Q4FfsItZy24FfGX8Wxq1hU1UgxFLsv9/r+froiSVChSmcGx1/hj6UQVTn8CF7kQaL8QaFDdEaFKmlgFPnGCBEo/n0mVagiUqio11SKvVCXhg4gIkWlMXSArhR7oS4MHUBEiopGqH2wKHQAESkqKtRei/JL8bvSiIiA35WuaBV3oXoapYpIq/dDB+iKClVE0qSoP3qqQhWRNJkbOkBX0lCo2tIvIq00Qu0jjVBFpJVGqH2kQhURAAfMCx2iK2koVK3yiwjAQqJ8Q+gQXUlDoWqEKiJQ5Kv7kI5CXRA6gIgUhaLeIAXpKNTZoQOISFHQCDUBr1HkR5gRkQGhEWqfRflG4PXQMUQkOI1QE/JS6AAiEtx/QwdYFRWqiKTFP0MHWJW0FOrLoQOISFDvE+XfDR1iVdJSqBqhipS350MH6I60FOpsdKBpkXI2I3SA7khHoUb5FuDV0DFEJBiNUBOm1X6R8qURasJUqCLlaR5Rvuh36gcVqogUv1Ss7kO6CvWF0AFEJIhUrO5Dmgo1ys9FG6ZEypFGqP3kwdABRGTAaYTaTx4KHUBEBtTceO00FdJWqE8A9aFDiMiAeTx0gJ5IV6FG+aXA9NAxRGTATA0doCfSVaie5pWd5ukAAA1GSURBVFFFykMjcH/oED2hQhWRYjWNKP9x6BA9kb5CjfIvUuTn5haRRKRqdR/SWKietvaLlD4V6gBRoYqUtplE+bdDh+ipNBeqCx1CRPpN6kankNZCjfIfoM/2i5Syv4QO0BvpLFTvT6EDiEi/eIcoX/Qn5OtImgv1NqAldAgRSdy9oQP0VnoLNcrPAaaFjiEiiUvl6j6kuVC9W0IHEJFELSJln98vlPZC/TOwJHQIEUnMrUT5htAheivdhRrl64C7QscQkcTcGDpAX6S7UL0poQOISCKeIsq/EjpEX6S/UKP8NOC10DFEpM9+HTpAX6W/UL3U/0eIlLkPgTtDh+irUinUm4HloUOISK/dTJRP/Wu4NAo1yn8I/DF0DBHplRbg6tAhklAaherdEDqAiPTKvUT5N0OHSELpFGqU/zvwdOgYItJjvwwdICmlU6jeRaEDiEiPzIz31CkJpVWoUf4R4MnQMUSk234VOkCSSqtQPY1SRdJhDvC70CGSVHqFGuUfB54IHUNEVulConx96BBJKr1C9TRKFSluL1GCR4srzUKN8k+Q4kOAiZSBLFG+5A4QX5qF6l0YOoCIdOgJonwudIj+ULqFGuWnA4+EjiEiK/l+6AD9pXQL1dNcqkhx+TNR/pnQIfpLaRdqlH8aeCh0DBEBoAk4P3SI/lTahepdALjQIUSE/yPK/yd0iP5U+oUa5Z9DB04RCW0JEIUO0d9Kv1C9LPBu6BAiZewXRPl5oUP0t/Io1Cj/MXBW6BgiZWo+8NPQIQZCeRQqQJS/B50hVSSE04jyi0OHGAjlU6jeN4F86BAiZeR2ovzdoUMMlPIq1Cj/Hn4+VUT633v4QUzZKK9C9X4NTA8dQqQMnBKf761slF+hRnkHnAo0hI4iUsKmEOX/GjrEQCu/QgWI8q8CPw4dQ6REvQ18O3SIEMqzUL3LgVdDhyhlW11Xx8SrFjPxqsWc+JdlAPzqH/Vs8IvFbHZNHfe/3tjpfc/ILWPvW5asdP0Xb1/KyVOXtbmuxTm2ub6Oy/7mj1V8/+uNbHZNHVtfV8erHzQD8PL8Zo64c2lST00654CT4l0Vy075FmqUbwBOBDp/VUuf1Dc5Zn9rNLO/NZopXxrOG4tauPa5Rl4+YxR3f2U4J01dTmPzyp8Kfml+M7nXm1a6/sHZTcyc17zS9ZOfb2Th0hWP87OnG3julJFcfcAwfv28/+895+F6rth3WILPTjpxQ3xut7JUvoUKEOX/AXwvdIxSZWZtLt/9WiNHblXJ6KHGluMGkVmtgufnti3I5hbHN+9fzkVfGNrm+iUNjoum1XPubkPaXP/e4hZuebGRE7Yf/Ml1LQ4amx3Lmhyjh8DNMxvYMzOIDarK+899ALwJnBM6REj6C4vyVwG3h45RapY0ON6va2HjXy1mz5uX8Ny7zczJOzYsKLX1xhhzF7cdof54egMHTKxk49Xb/mn+7wPL+c4uQ1ht2IqSds5x8tTl/GyfoQwetOK22d2HssfNS/nlPxo4etvB3PJiI9/epW0RS+IccAJRfuV5mjKiQvVOBV4MHaKUjBxifHzeGN7839GcseMQvvyHpTQ0OyoKBq0VBoMK/gIfe6uJp+c0c86ubcvv5pkNGHDkVoPbXH/JEw3stv4gdl2/ss31+0+sZNbpo3jomJFc9UwDF+8xlIser+eQ3y/l4mkldU64YvITovzfQocIrXLVNykDUX4pUdWhwAxgtdBxSs0RWw3m9NxyJoyu4N2CEek7HzvWH7OiUa9+toHXFjSzxbVLWNroWLjMsd9tS1i41PHRcsfm19SRr3csa3S0OLjvP02sPty49cVGFix1mPl520v38nOlM95rprEFmlvADO756giOu2cZry1oZvM1B62UU3rtXuAHoUMUAxVqqyj/BlHV0fg/DlvVzaVr+eWOphbH2BEV3P96I2sMN6o3reSYu5fxvV2H8N+PWli0zLH9+BWFevdXRnzy/bTaJi77Wz0PHj2yzePeNLOB6W8385uDh7e5Ppq2nMoK44LP+7nXFue44LHl3H7ocJ58e8U8bXOLn2OVxLwEHFWKJ9zrDRVqoSifI6q6FJ3gr88WLXPsfaufThs/qoI7jxjOduMHcfS2g9nqujqGVRq/OWgYZsY1zzYwdrjxtW0Gr+JRu++GGY0cudVgxo6oYP+JxvUzGtj06jr232QQW47T6DQhHwAHlcuBT7rDnNPbdRtRVQVwH3BA6CgiRawB+J/4ZJgS00ap9vyqy1HAW6GjiBSx01WmK1OhdsQf0OFQYNmqbipShq4kyk8JHaIYqVA7E+VnAqegE/yJFPorZb7zfldUqF2J8rejPx6RVq8AX9MW/c6pUFclyl+BjkwlshC/Rb8sD3rSXSrU7ojy56NTUUv5WgIcQpR/M3SQYqdC7b4zgT+EDiEywJbhR6baot8N2g+1J6KqwcDdQHXoKCIDYDm+TMv2cHw9pRFqT0T5RuAw/JZOkVJWD3xZZdozKtSeivL1+H1UHwgdRaSfNACHE+X1N95DKtTe8KX6ZeDB0FFEErYcvwHqvtBB0khzqH0RVQ0DpgL7hI4ikoA64GCi/OOhg6SVRqh9EeWXAweiI/5L+n0E7Ksy7RuNUJMSVV0ERKFjiPTCAnyZvhA6SNqpUJMUVX0dmAIMXdVNRYrEm8CBRHmdUj0BKtSkRVW74/dVXTN0FJFVeAT4ClF+UeggpUJzqEnznyiZBPw7dBSRLlwB7K8yTZZGqP0lqloduAvYI3ASkULLgVOI8reFDlKKNELtL/4g1fsCNwVOItJqDrC7yrT/aIQ6EKKq84HL0NlUJZwn8Z9+mh86SCnTCHUgRPnL8ccAWBg6ipSl6/En1FOZ9jONUAdSVDUB+C2wX+goUhYagLOI8pNDBykXKtQQoqozgZ8Bw0NHkZJVCxxFlH86dJByolX+EKL8tcCngRmho0jJccDVwNYq04GnEWpIUVUlcCFwPjAocBpJv/8AJ+no+uGoUItBVDUJuBWYGDqKpFIzcCVwYXzAHglEhVosoqqR+BfFqaGjSKq8BJxIlH8udBBRoRafqOpA/BlW1w0dRYpaI/705j8iyjeEDiOeCrUYRVUjgO8C3wdGBk4jxeefwAlE+RdDB5G2VKjFLKoaD1wKnIj2yBD4GLgcuIIo3xQ6jKxMhZoGUdU2wM/xxwaQ8rMMuAao0dGhipsKNU2iqv3xxbpV6CgyIBqBycBlRPm5ocPIqqlQ0yaqGgScBFwCrB04jfSPZuA24GKi/Fuhw0j3qVDTKqoajd9o9R30EdZS4fDH0P2hTkmSTirUtIuq1gbOAk4HxgZOI733AHABUf750EGk91SopcLvanUi8G1g48BppHsc8DB+jvTJ0GGk71SopSaqqgAOxRfrroHTSMfywM3AtUT5/4QOI8lRoZayqOrTwBnA14ERgdOI/5jotcBtRPm60GEkeSrUchBVrQYchy/XTwVOU27qgDuBKToKVOlToZaTqMqA3fCnYzkU2CBsoJL2FDAF+KNGo+VDhVrOoqod8cV6GBq59pXDHzA8B/xOc6PlSYUqXlS1FSvKdbvAadLiI+AhfIk+oJPgiQpVVhZVbcyKct0Znf660Czgr/HX0zpIiRRSoUrX/AcHdsEX687ATsCooJkG1hLgMfwo9K9E+TmB80gRU6FKz/j9XLdiRcHuHF8uhcMLLgD+BcyMv/4FvKpRqHSXClX6LqoaBezIioLdFlgPGBoyVhccMJsVpekLNMq/GzSVpJ4KVfqH30VrHLB+F1/rAJUJ/+RG4ANgfruvD4D3gdeAWdqVSfqDClXC8YciHI8v17HAMPyodljB15CCe7h2X3W0L84o/9FAxRdpT4UqIpKQUtiQICJSFFSoIiIJUaGKiCREhSoikhAVqohIQlSoIiIJUaFKMGZWYWY68IqUjKQ/pSICgJm9BsyLL66NP2LVJ5edc1sAFwLTgGlmNgl4GbjfObf7AMcVSYQKVfrLPOfcHgBmdjRQ6Zy7Kb78SMHtdsaX6lXAHgOaUCRhKlTpL+PNbFr8/dqAmdnxrZfN7GwgA2xhZh8AE/AHa97GzFrPvTTFOTdl4CKL9I0KVfpLHXBT/P0uwCCgtShPxx9X9S1ganz5K865p81sulb5Ja1UqNJf/sGKAv08cHnBss8Ar+APjLIIuNw59/TAxhNJngpVEmdmxwBbA7+Jr/oMsHG7m90GfDH+fnDBan7hKv95zrkn+zWsSIJ0tCnpV2Z2OLCjcy5bcN1VwK1ANTDNOTetYJlW+SW1tB+q9It4H9OjgPOBK9ot3h4/fypSUrTKL4kzsyPxRfoEsJdz7iMzOwc4Eb9x6nHn3ILWffoLVvEBJhZcft05d8IARhfpE63yS+LMbDTQ4Jyr72CZOf3RSYlSoYqIJERzqCIiCVGhiogkRIUqIpIQFaqISEJUqCIiCVGhiogkRIUqIpIQFaqISEJUqCIiCVGhiogkRIUqIpIQFaqISEJUqCIiCVGhiogkRIUqIpIQFaqISEJUqCIiCVGhiogkRIUqIpKQ/wesmvCkE4RavwAAAABJRU5ErkJggg==\n", "text/plain": [ "<Figure size 720x432 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pyplot.figure(figsize=(10, 6))\n", "pyplot.pie(gender_counter['count'], explode=(0.01,) * 2, labels=('女性', '男性'), autopct='%1.3f%%')\n", "pyplot.title('1880~2014年美国新生儿性别比例饼状图')\n", "pyplot.savefig('./Gender_Pie.svg')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true, "source_hidden": true } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " name count\n", "1 James 5129096.0\n", "2 John 5106590.0\n", "3 Robert 4816785.0\n", "4 Michael 4330805.0\n", "5 Mary 4130441.0\n", "... ... ...\n", "93885 Stancy 5.0\n", "93886 Jonilee 5.0\n", "93887 Iean 5.0\n", "93888 Shaikha 5.0\n", "93889 Davidjoseph 5.0\n", "\n", "[93889 rows x 2 columns]\n" ] } ], "source": [ "name_count = pandas.read_sql(\n", " 'SELECT `name`, SUM(`count`) AS `count` FROM `national` GROUP BY `name` ORDER BY `count` DESC;',\n", " connection\n", ")\n", "name_count.index = range(1, name_count.shape[0] + 1)\n", "print(name_count)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " name count\n", "1 James 5129096.0\n", "2 John 5106590.0\n", "3 Robert 4816785.0\n", "4 Michael 4330805.0\n", "5 Mary 4130441.0\n", "6 William 4071368.0\n", "7 David 3590557.0\n", "8 Joseph 2580687.0\n", "9 Richard 2564867.0\n", "10 Charles 2376700.0\n", "11 Others 300814230.0\n" ] } ], "source": [ "import numpy\n", "others_count = pandas.DataFrame(\n", " {'name': 'Others', 'count': numpy.sum(name_count.loc[10:, 'count'].to_numpy())},\n", " index=[1]\n", ")\n", "name_count = name_count.loc[:10, :]\n", "name_count= pandas.concat([name_count, others_count], ignore_index=True)\n", "name_count.index = range(1, name_count.shape[0] + 1)\n", "print(name_count)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "data": { "image/png": "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bdu24e5s3bqVY445BoAuXbrw1Vdf0bp165TbX7t2LZMmTWLAgAF5tS5dutC2bVsAMjMzyc7OBqBevXqkpaWxY8cOcnJyaNOmTWm9LUkpwImIiMgh47777qNOnTo89NBD3H777axatSovhAGkp6ezbt26AvWGDRuybt06evbsycKFC6lTpw7Dhg1j2LBhANSsWZMKFVLHHndn0KBB3H///VSqVClpmwceeIDevXvnPT/ppJOoXbs2zZs35/TTTz/YXd8vCnAiIiJyyBg+fDibNm1i9OjRnH322ezZsydf8KpQoQIVK1ZMWb/lllvo2rUrOTk5TJgwgT59+hRru3feeSennXYap556aoFlO3bs4MILL2T37t2MHDkyr/7pp5+Sk5PD1q1bueeeew5ir/efApyIiIgccs4//3y2b99OgwYNWLNmTV599erVNGrUqEB97dq1pKenM336dC6//HIAzjvvPLKyssjJySlye2PHjmXSpElkZGTwyCOPMGbMGG677Ta+//57unXrRufOnXn22WdJS8t/D4Sf/exn9O/fn08++aSE9rx4FOBERETkkLBs2TLWr18PwCeffEKVKlXo1asXU6ZMYefOnSxatIicnBw6dOhAr169mDhxIvv27WPGjBm0bNmS2rVrk5GRwbRp0wD46KOPqFSpEjVr1ixy2xs3bmTx4sV8/fXXXH/99QwdOpS77rqLMWPGcM455zB06NB87WfNmsW+fftwd15++WUyMzNL/g0pxH/drbRERETk0LRlyxZ69OjBvn37qFevHs899xwdO3akX79+tG7dmipVqvDkk09iZvTu3ZsPP/yQZs2aUadOHf7+978DwVmkl1xyCWPGjKFGjRpMmTKFihUrptzmwIEDufnmm8nIyEi6fN68eXz44YdMnDgxrzZ79mxmzJhBnz59qFq1Kj//+c+55ZZbSvbNKIK5e+luwKwCMB04BnBgiLtPN7OhwG+B74Eb3f3NsP29QD9gM9Df3eeaWRrwJNAdWAVc6u7/MbMawLNAB2BhWN9EITIzM133QhUREZEoMLO57l5geK8sDqE6cIW7twSGAnebWXPgOqA10BsYb2aVzKwr0BloAgwDxofruAKoAqSHtYfC+s3AAndPB2YDt5XB/oiIiIiUq1I/hOrBEN+68OkxwHyC0Pa8u28DFprZcqAjcD7wtLvvBWaYWV0zqx/W/+zubmbP8GOAOx/4Vfh4IvBqae+PiIiIlK0mI6aVdxcKWH5vr3LdfpmcxGBmw81sE3ATcCfQCFgR12Q10CBJfU1i3d13AjvNrBbBiNzKhHUk2/7VZjbHzObELsAnIiIiElVlEuDc/T53rwOMJJgPVxnIjWuSC+w7yHqslmz749w9090z69ate/A7JCIiIlKOyvQyIu7+EvAzgkOqDeMWpROcnJBYP5pgZC2vbmZVgTR33wqsD9vEr0NERETkJ63UA5yZNQvnsWFmpwC7gGnAJWZWzcyOA2oD88L6lWZW0cy6A0vcPSesx25M1g94OXw8DbgqfDwAeKG090dERESkvJXFdeCOAN4ys4rARuDi8NIgk4EFBIFuUHiCwlSgC7AM2AT0DdcxFphgZqvCZReH9TuAZ81sNTA3rr2IiIjIT1ZZnIX6OdAySX00MDqhlgsMCX/i67uAS5OsIwc4uyT7KyIiInKo0620RERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCJGAU5EREQkYhTgRERERCKm1AOcmVU2s0fNbImZLTWzC8L6d2aWFf7cGdf+XjNbbWZfmlnHsJZmZk+b2Rozm2VmTcN6DTN7PWz/tpnVKe39ERERESlvZTECVxt4z91bAr2A8WZ2GLDS3VuEP7cDmFlXoDPQBBgGjA/XcQVQBUgPaw+F9ZuBBe6eDswGbiuD/REREREpV6Ue4Nx9vbu/GD5eAuwF6gObkzQ/H3ja3fe6+wygrpnVD+tPursDzwDd4to/ET6eCPQovT0REREROTSU6Rw4MxsAfAFUB1qb2TfhIdAWYZNGwIq4l6wBGsTX3X0nsNPMahGMyK0M264O2ybb7tVmNsfM5mRnZ5f0bomIiIiUqTILcGY2AhgCXObuC929DnAs8D7B6BlAZSA37mW5wL5i1mO1Atx9nLtnuntm3bp1S2iPRERERMpHmQQ4MxsLZACnufu6WN3dc4HHgdZhaR3QMO6lRxOMrOXVzawqkObuW4H1YRsIRuNWleJuiIiIiBwSyuIs1JOBVu7ePzz8iZkdZWbVwyb9gM/Cx9OAK82sopl1B5a4e05YHxDX/uW49leFjwcAL5Tu3oiIiIiUv7Qy2EYHINPMsuJq44HfmNleIAv4dVifCnQBlgGbgL5hfSwwwcxWhcsuDut3AM+a2Wpgblx7ERERkZ+sUg9w7v4Y8FiSRfckaZtLME9uSEJ9F3BpkvY5wNkl01MRERGRaNCdGEREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGIU4EREREQiRgFOREREJGJKPcCZWWUze9TMlpjZUjO7IKwPNbOVZrbYzHrGtb/XzFab2Zdm1jGspZnZ02a2xsxmmVnTsF7DzF4P279tZnVKe39EREREyltZjMDVBt5z95ZAL2C8mbUCrgNaA73DWiUz6wp0BpoAw4Dx4TquAKoA6WHtobB+M7DA3dOB2cBtZbA/IiIiIuWq1AOcu6939xfDx0uAvcAlwPPuvs3dFwLLgY7A+cDT7r7X3WcAdc2sflh/0t0deAboFq7+fOCJ8PFEoEdp74+IiIhIeSvTOXBmNgD4gmBUbkXcotVAA6BRQn1NYt3ddwI7zawWwYjcyoR1JNvu1WY2x8zmZGdnl9wOiYiIiJSDMgtwZjYCGAJc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SMQowImIiIhEjAKciIiISMQowImIiIhEjAKciIiISMQowImIiIhEjAKciIiISMQowImIiIhEjAKciIiISMQowImIiIhEjAKciIiISMQowImIiIhEjAKciIiISMQowImIiIhEjAKciIiISMQowImIiIhEjAKciIiISMQowImIiIhEjAKciIiISMQowImIiIhEjAKciIiISMQowImIiIhEjAKciIiISMQowImIiIhEjAKciIiISMSUa4AzswVmlhX+PBXWhprZSjNbbGY949rea2arzexLM+sY1tLM7GkzW2Nms8ysaXnti4iIiEhZSSvn7R/m7i1iT8ysOXAd0BpoBLxjZscAPwc6A02AM4DxQAfgCqAKkA4MAh4CflWG/RcREREpc+V9CNUTnvcGnnf3be6+EFgOdATOB552973uPgOoa2b1w/qT7u7AM0C3suu6iIiISPkotwBnZtWBo8xsmZm9b2adCEbdVsQ1Ww00SFJfk1h3953ATjOrlWRbV5vZHDObk52dXTo7JCIiIlJGyi3AufsOdz/c3ZsBjwJTgcpAblyzXGDfAdQTtzXO3TPdPbNu3boluyMiIiIiZay8D6EC4O4vEMxlWwc0jFuUDqxKUj+aYHQur25mVYE0d99aFn0WERERKS/leQi1ppnVCR/3BHKAacAlZlbNzI4DagPzwvqVZlbRzLoDS9w91n5AuMp+wMtlvR8iIiIiZa08z0KtTXCWKcB64EJ3n29mk4EFwC5gkLu7mU0FugDLgE1A33AdY4EJZrYqXHZxGe+DiIiISJkrtwDn7v8BmiepjwZGJ9RygSHhT3x9F3BpKXZTRERE5JBzSMyBExEREZHiU4ATERERiRgFOBEREZGIUYATERERiRgFOBEREZGIUYATERERiRgFOBEREZGIUYATERERiRgFOBEREZGIUYATERERiRgFOBEREZGIUYATERERiRgFOBEREZGIUYATERERiRgFOBEREZGIUYATERERiRgFOBEREZGIUYATERERiRgFOBEREZGIUYATERERiRgFOBEREZGIUYATERERiRgFOBEREZGIUYATERERiRgFOBEREZGIUYATERERiRgFOBEREZGIUYATERERiRgFOBEREZGIUYATERERiRgFuBLWunVrWrRoQYsWLbjqqqsA2LZtG6NGjWLw4MF57dasWUPPnj1p0aIFnTp1YsGCBQXWNXr0aFq2bEmrVq145ZVX8upjxoyhcePGtGrVijfffBOAHTt2cNlll9GiRQtOOukklixZktd+5syZtGvXjiZNmnDTTTeV6H4AjBgxgvT0dNq2bcvcuXMLrOu7777jkksuoWHDhjRv3pw9e/YAULNmzbxt3H777UXuR1HOOeccBg0aBMCoUaM4/vjjad++PW+99VZem1T7EPPDDz9w3XXX0bBhQ5o2bcqKFSuYPHlyXj9btGhB9erVeeGFFwrdTrJ9ExERKSkKcCVs9+7dZGVlkZWVxVNPPcX69etp06YNH3/8cV5wAcjKyuK+++4jKyuLwYMHFwhW77//Pq+88grz58/nnXfeYciQIWzfvp1vvvmGsWPHsmDBAqZOncrAgQP54YcfuO+++zjyyCPJysri1ltv5dprrwVg8+bNXH755fztb39j+fLljB49ukT347333mPmzJksX76cBx98kIEDBxZY1w033ECbNm1YvXo1CxYsoFKlSuzevZvGjRvnbePOO+8ESLkfRZk+fTrz5s0D4Msvv+T1119n/vz5vPHGG1x99dUAKfch3l133cXevXtZuXIlS5cu5eijj6Zfv355/Zw7dy7NmjXjvPPOS7mdVPtWmFj4/Pbbb+ncuTPHHnss7du35/PPPwdg8eLFdOrUiWbNmnHqqaeyfPnyAut4/vnnadq0KS1atOCpp57Kq6cKmcn+ENi4cSPVqlXLC5+PP/54sfsOyQPywfQdIDc3l7Zt2zJq1Kh89e3bt3PUUUcxefLkvNrKlSvp27dvvlpx+57s/bjhhhvyhfe0tDQ2bNiQbx27d+/mr3/9K717986rpfocARYuXMgpp5xC48aNufDCC4HgD5e+ffty3HHH0aVLF5YtW1as/ovIfy8FuBJmZvme165dm0WLFnHRRRflq3fp0oW2bdsCkJmZSXZ2dr7lc+bMoVu3blStWpVGjRrRrl07Pv30U6ZOncpFF11EjRo1OP7442nSpAlz585lzpw5nHvuuQCcd955zJkzhx9++IHx48fTr18/2rdvD0DVqlVLdD9eeukl+vfvT1paGt27dyc7O5v169fnLV+/fj0ff/wxI0eOxMyoUqUKZsamTZuoVatWge2m2o/C7NixgzvuuIPhw4cDcOSRR2Jm7Nmzh+3bt9OoUaNC9yHmhx9+YMKECdx///1UrFiRtLQ0KlWqlK/Ngw8+yDXXXMNhhx2Wcjup9i2V+PBZrVo1Xn/9dZYuXcq1116bF7jr1avHP//5T5YtW8bpp5/OI488km8d27Zt47e//S0zZ85k5syZjBw5kuzs7JQhM9UfAjk5OXTt2jUvfF5zzTXF7nuqgHygfY954okn2LRpU4Ft33333VSsWDHv+auvvkqPHj1YunRpke95Yt9TvR8PP/xw3nsxfvx4zj//fI466qh862nVqhVvv/0227Zty6ul+hz37t3LBRdcwF133cXKlSuZNGkSAE899RT169dn0aJF3HjjjXm/y4lyc3Pp3r173sj89OnTgQMfzU4VnJOtL1W47927d16tadOmVK9evVjvv4gcHAW4ErRjxw42bNhAs2bNOOOMM5g9ezaVK1emWrVqhb7ugQceyPfXOwSHMN9++222b9/OunXr+Pe//012djarVq3imGOOyWuXnp7OunXraN26NVOnTsXd+ec//8m2bdvYtGkT8+fPZ+fOnXTs2JH27dszY8aMEt2PxP40bNiQdevW5T1fsGABTZs25YILLqBVq1b87ne/w93ZsmULCxYsoHnz5px77rlkZWXl7Xey/SjM0KFDGTZsGEcccQQADRo0oHPnzjRo0IA2bdpw6623AhT5WaxcuZLatWtz44030rJlSwYMGMCuXbvylu/atYvJkyczYMCAQreTat9Svdfx4bNatWocccQR7Nu3j1WrVuUF71q1alG1alX27NnDunXraNeuXb71TJ8+nS5dutCwYUPq169P165deffdd1OGzFR/COTk5FC7du1C3+9UfU8VkA+07wBr165l0qRJee95zPz58/niiy8466yz8mpdunThq6++onXr1vvd91TvR7w77riD2267rcC65s2bx9ChQ/PVUn2OL7/8MpmZmXTr1g348Q+qxo0bs23bNtydrVu35vtvKp6ZMWnSJJYsWcKYMWO49dZbD3g0O1VwTrW+VOF+6tSpebU77rgj5fSEPXv2MHjwYFq2bMmxxx7LP/7xDyB5WNy3bx9DhgwhIyODTp06JZ2a8eGHH9KyZUuaNm3K3XffnVdPNWUj2Uj0vffem2+EtXLlysyePfug+g7JR1mTiR8BTtVHCKbc9OjRg0aNGnHKKacAxRsdLkyyfUo1clycbSV734v7/sqBUYArQdWrV2fr1q0sW7aMwYMHFwhl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\n", "text/plain": [ "<Figure size 720x432 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "pyplot.figure(figsize=(10, 6))\n", "pyplot.bar(name_count.index, name_count['count'] / 1e4)\n", "for (x, y) in zip(name_count.index, name_count['count'] / 1e4):\n", " pyplot.text(x, y + 10, str(y), ha='center', va='bottom', fontsize=10)\n", "pyplot.ylabel('姓名重复人数(万人)')\n", "pyplot.title('1880年~2014年美国热门姓名使用频数直方图')\n", "pyplot.savefig('./Name_Hist.svg')" ] } ], "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.7.5" } }, "nbformat": 4, "nbformat_minor": 4 }