{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2019-12-25T15:54:48.109458Z", "start_time": "2019-12-25T15:54:45.341999Z" } }, "outputs": [], "source": [ "from matplotlib import pyplot as plt\n", "import csv\n", "from collections import Counter\n", "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2019-12-25T15:54:48.120942Z", "start_time": "2019-12-25T15:54:48.113844Z" } }, "outputs": [], "source": [ "plt.style.use('seaborn-white')\n", "plt.rc('figure', figsize=(10, 6))" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2019-12-25T15:54:48.282481Z", "start_time": "2019-12-25T15:54:48.125705Z" } }, "outputs": [], "source": [ "# Median Developer Salaries by Age\n", "ages_x = [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35]\n", "\n", "dev_y = [38496, 42000, 46752, 49320, 53200,\n", " 56000, 62316, 64928, 67317, 68748, 73752]\n", "\n", "# Median Python Developer Salaries by Age\n", "\n", "py_dev_y = [45372, 48876, 53850, 57287, 63016,\n", " 65998, 70003, 70000, 71496, 75370, 83640]\n", "\n", "# Median JavaScript Developer Salaries by Age\n", "js_dev_y = [37810, 43515, 46823, 49293, 53437,\n", " 56373, 62375, 66674, 68745, 68746, 74583]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2019-12-25T15:54:48.977095Z", "start_time": "2019-12-25T15:54:48.293546Z" } }, "outputs": [ { "data": { "text/plain": [ "<BarContainer object of 11 artists>" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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dmbJkiXZtWtXarVaDh06lFqtltmzZ2fhwoVTngUAaDaTvmfrqquuys0335xrr702J06cSG9vby644IL09fVlcHAw8+fPT3d3d1pbW9PZ2ZmVK1emVqulv78/SbJmzZopzwIANJtJY+ttb3tb/viP//iU86GhoVPOenp60tPTc9JZR0fHlGcBAJqNh5oCABQktgAAChJbAAAFiS0AgILEFgBAQWILAKAgsQUAUJDYAgAoSGwBABQktgAAChJbAAAFiS0AgILEFgBAQWILAKAgsQUAUJDYAgAoSGwBABQktgAAChJbAAAFiS0AgILEFgBAQWILAKAgsQUAUJDYAgAoSGwBABQktgAAChJbAAAFiS0AgILEFgBAQWILAKAgsQUAUJDYAgAoSGwBABQktgAACmp7rRePHz+e3t7eHDx4MMeOHcv111+fCy+8MDfddFMqlUoWLFiQgYGBtLS0ZNOmTdmxY0fa2trS29ubSy65JAcOHJjyLABAM3rN2PrWt76Vs846K1/60pfy4osv5uMf/3h+8Rd/MatXr86ll16a/v7+bN++PXPnzs3evXuzdevWPPfcc+np6cnDDz+cDRs2THkWAKAZvWZsfehDH0p3d/fE162trRkeHs7SpUuTJMuWLcvu3bvT0dGRrq6uVCqVzJ07N+Pj4zly5Mi0ZmfPnl3wrwkA0Biv+Z6tmTNnplqtZnR0NDfeeGNWr16der2eSqUy8frIyEhGR0dTrVZP+r6RkZFpzQIANKNJ3yD/3HPP5Xd+53fysY99LB/96EfT0vJf3zI2Npb29vZUq9WMjY2ddD5r1qxpzQIANKPXjK0XXngh1113Xb7whS9kxYoVSZKFCxdmz549SZKdO3ems7MzS5Ysya5du1Kr1XLo0KHUarXMnj17WrMAAM3oNd+z9dWvfjUvvfRS7r777tx9991JkltuuSXr16/P4OBg5s+fn+7u7rS2tqazszMrV65MrVZLf39/kmTNmjXp6+ub0iwAQDN6zdhau3Zt1q5de8r50NDQKWc9PT3p6ek56ayjo2PKswAAzchDTQEAChJbAAAFiS0AgILEFgBAQWILAKAgsQUAUJDYAgAoSGwBABQktgAAChJbAAAFiS0AgILEFgBAQWILAKAgsQUAUJDYAgAoSGwBABQktgAAChJbAAAFiS0AgILEFgBAQWILAKAgsQUAUJDYAgAoSGwBABQktgAAChJbAAAFiS0AgILEFgBAQWILAKAgsQUAUJDYAgAoSGwBABQktgAAChJbAAAFTSm2/vEf/zG//du/nSQ5cOBArr766lxzzTUZGBhIrVZLkmzatCkrVqzIqlWr8r3vfW/aswAAzWjS2Lrvvvuydu3aHD16NEmyYcOGrF69Ovfff3/q9Xq2b9+e4eHh7N27N1u3bs3g4GDWrVs37VkAgGY0aWydd955ueuuuya+Hh4eztKlS5Mky5Yty6OPPponnngiXV1dqVQqmTt3bsbHx3PkyJFpzQIANKNJY6u7uzttbW0TX9fr9VQqlSTJzJkzMzIyktHR0VSr1YmZV8+nMwsA0Iym/Qb5lpb/+paxsbG0t7enWq1mbGzspPNZs2ZNaxYAoBlNO7YWLlyYPXv2JEl27tyZzs7OLFmyJLt27UqtVsuhQ4dSq9Uye/bsac0CADSjtslHTrZmzZr09fVlcHAw8+fPT3d3d1pbW9PZ2ZmVK1emVqulv79/2rMAAM1oSrE1b968PPTQQ0mSjo6ODA0NnTLT09OTnp6ek86mMwsA0Iw81BQAoCCxBQBQkNgCAChIbAEAFCS2AAAKElsAAAWJLQCAgsQWAEBBYgsAoCCxBQBQkNgCAChIbAEAFCS2AAAKElsAAAWJLQCAgsQWAEBBYgsAoCCxBQBQkNgCAChIbAEAFCS2AAAKElsAAAWJLQCAgsQWAEBBYgsAoCCxBQBQkNgCAChIbAEAFCS2AAAKElsAAAWJLQCAgsQWAEBBYgsAoCCxBQBQUFuj/uBarZZbb701Tz31VGbMmJH169fn/PPPb9Q6AABFNOzO1ne+850cO3YsDz74YD73uc9l48aNjVoFAKCYht3ZeuKJJ3LZZZclSRYvXpz9+/dPvDY+Pp4kef7554vvceLEieJ/xnQ9++yzU5qz++vL7o1h98aYyu5vxL0TuzdKs+/+P/Fqr7zaLz+tUq/X60U3+BluueWWXHXVVbn88suTJFdccUW+853vpK2tLX//93+fa6+9thFrAQD8t2zZsiWdnZ2nnDfszla1Ws3Y2NjE17VaLW1tP1ln0aJF2bJlS84+++y0trY2akUAgEmNj4/n8OHDWbRo0Wlfb1hsLVmyJI888kg+8pGPZN++fbnooosmXjvzzDNPW4YAAG9Er/VLfg37MeKrv434r//6r6nX67njjjtywQUXNGIVAIBiGhZbNMbx48fT29ubgwcP5tixY7n++uuzePHirF27Ni+99FLGx8fzh3/4hznvvPMavWpTOd11nzt3bgYGBtLa2pqf//mfz+23356WFo++ez2Nj49n7dq1eeaZZ9La2poNGzakXq/npptuSqVSyYIFCzIwMOC6v85Od93HxsZy2223pbW1NTNmzMidd96ZOXPmNHrVpnK66/7q/8v//M//PENDQ3nwwQcbvOWbU8N+jEhjfOtb38pZZ52VL33pS3nxxRfz8Y9/PO973/vy0Y9+NB/5yEfyd3/3d/n+978vtl5np7vuv/RLv5Qbbrghl19+eT73uc9lx44d+cAHPtDoVZvKI488kiR54IEHsmfPnonYWr16dS699NL09/dn+/btWb58eYM3bS6nu+4jIyPp6+vLxRdfnAceeCD33Xdfbr755gZv2lxOd93vueeePPnkk/n6178e91YaR2y9yXzoQx9Kd3f3xNetra357ne/m1/4hV/Ipz71qbzrXe/KLbfc0sANm9PprvvFF1+cH//4x6nX6xkbG5v4BRFeP1deeWWuuOKKJMmhQ4cyZ86c7NixI0uXLk2SLFu2LLt37xZbr7PTXfd169blnHPOSfKTOzBvectbGrhhczrddX/xxRfz5S9/Ob29venr62vsgm9i7p2/ycycOTPVajWjo6O58cYbs3r16hw8eDDt7e35kz/5k7zzne/Mfffd1+g1m87prvurPzr88Ic/nB/96Ee59NJLG71mU2pra8uaNWty2223pbu7O/V6PZVKJclP/ruMjIw0eMPm9NPX/dXQ+u53v5uhoaF86lOfauyCTer/v+5XXXVVbrnllvT29mbmzJmNXu1NzXu23oSee+653HDDDbnmmmuyYsWK/Oqv/mr+4i/+Ij/3cz+Xf/7nf84f/dEfCa4Cfvq6v//978+f/umfZsGCBdmyZUuefvrpDAwMNHrNpnX48OH81m/9VkZHR/P4448n+cknWTz66KPp7+9v8HbN69Xr/pd/+ZfZsWNH7rnnntx9990599xzG71aUzt8+HA++MEPZs6cOXnXu96Vo0eP5umnn84nP/lJP71oAHe23mReeOGFXHfddfnCF76QFStWJEne+9735m/+5m+SJI8//nguvPDCRq7YlE533d/+9renWq0mSc4555y89NJLjVyxKX3zm9/MvffemyR561vfmkqlkkWLFmXPnj1Jkp07d3rMTAGnu+7btm3L0NBQNm/eLLQK+enrPmfOnHz729/O5s2bMzg4mAsvvFBoNYg7W28y69evz7e//e3Mnz9/4mzjxo1Zu3ZtXn755VSr1XzlK1/J29/+9gZu2XxOd91/7/d+L1/+8pfT1taWM844I7fddlvmzZvXwC2bz3/+53/m5ptvzgsvvJATJ07k05/+dC644IL09fXl+PHjmT9/ftavX+/hya+z01333t7evPOd70x7e3uS5Jd/+Zdz4403NnjT5nK6637llVcm+cnH1fz+7/9+HnrooQZv+eYktgAACvJjRACAgsQWAEBBYgsAoCCxBQBQkNgCAChIbAEAFCS2AAAKElsAAAX9P2/IhdAwaCY9AAAAAElFTkSuQmCC\n", "text/plain": [ "<Figure size 720x432 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.bar(ages_x, dev_y, color='#444444', label='All Devs')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2019-12-25T15:54:49.492795Z", "start_time": "2019-12-25T15:54:48.977095Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAGoCAYAAABbtxOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deVhV5f7//9cGRGVS0Sxx+oJjHiMHUivUzAwl5yFRo8yGU0dJM00lBU2cE+voydQ6xxM4YmqaQ6VGBMfQLCzNIecBx8B0ozLt/fvDn/uzSAgo2Fv0+biuc12te91r8b5Z13V6dXOve5msVqtVAAAAACRJTo4uAAAAALidEJABAAAAAwIyAAAAYEBABgAAAAwIyAAAAIABARkAAAAwICADKFNOnTqlRo0a6Zlnnrnl3NixY9WoUSOlpaUV655vv/225s6dK0l66aWXdOjQoRKpVZIWLVqkHj16qHv37uratatmzJihrKysQq/7M+MojtGjR+vgwYM6deqUmjdvfsv5jz76SGPHjrUd/9E45s6dqzZt2qhHjx7q0aOHnnrqKY0cOVLHjh2zXT9q1CgdPnw431rGjh2rjz766C+Padu2bWrUqJE2btz4l+8F4O5GQAZQ5pQvX15Hjx7V6dOnbW1Xr17V999//5fvvWjRItWvX/8v30eSNm3apC1btmjFihVat26dPvnkEx05ckTz5s0rkfv/WRs3bpSnp6caNmxYpP5FGUdwcLA+/fRTffrpp9qwYYPatWun5557TmazWZI0fPhwjRs3TqW59f7SpUvVrVs3LV68uNR+BoC7AwEZQJnj7OysLl26aP369ba2L774Qh07dszTb9u2berXr5969uypkJAQ/fDDD5Iks9ms4cOHKygoSKGhoTpy5Ijtmscff1w//fSTLBaLoqKi1K9fPwUHB6tLly7atWuXpBsznlFRUQoNDVWnTp00bNgwZWRk3FLnhQsXlJubq+vXr0u6EewnTJigJ554QpJ09OhRPf/883r66afVoUMHvfrqq8rMzMxzj6tXr+rNN99U//79FRQUpN69e9vqDQ0N1bBhwxQcHKx58+apRYsWunLliiTJarUqKChI+/fvv6WuuXPnKiQkpMi/78LGkZ+ePXuqXr16tmdUu3ZteXp6auvWrfn237Vrl55++mkFBwdrypQp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ShQXARkAAAAwYIkFAAAAYEBABgAAAAwIyAAAAIABARkAAAAwICADAAAABgRkACjjFi5cqMDAQGVmZjq6FAC4IxCQAaCMW79+vYKDg7VhwwZHlwIAdwQXRxcAAPjzkpOTVadOHYWEhGj06NHq3bu3fvzxR02aNEnu7u6qWrWqypcvr+nTpysmJkafffaZTCaTgoOD9eyzz+qLL77QokWL5OLiopo1a2rmzJlycmLuBMDdjf8XBIAyLC4uTv369ZOfn59cXV21e/duRUZGavr06fr4449Vp04dSdKhQ4e0ceNGLV26VEuXLtWWLVt05MgRffbZZxo8eLCWLVumwMBAmc1mB48IAByPGWQAKKN+++03JSQkKC0tTTExMTKbzYqNjdX58+fVoEEDSVLLli21ceNGHTx4UKmpqRo8eLDt2hMnTmjcuHFasGCBli1bJj8/P9sncgHgbkZABoAyat26derTp4/GjBkjSbp27Zo6duyoChUq6NChQ6pfv752794tSfLz81P9+vX14YcfymQyafHixWrYsKFWrFihsLAwVa1aVREREfryyy/Vq1cvRw4LAByOgAwAZVRcXJxmzpxpO65YsaKefPJJVatWTeHh4XJzc1O5cuV07733qnHjxnr44Yc1YMAAZWVlyd/fX/fee6/8/f31/PPPq3LlynJ3d9djjz3muAEBwG3CZLVarY4uAgBQcpYsWaIuXbrI29tbc+bMUbly5TRs2DBHlwUAZQYzyABwh6lataqGDBkiNzc3eXp6avr06Y4uCQDKFGaQAQAAAAO2eQMAAAAMCMgAAACAAQEZAAAAMCAgAwAAAAYEZAAAAMDg/wOjGARwKmecdQAAAABJRU5ErkJggg==\n", "text/plain": [ "<Figure size 720x432 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# stacked\n", "\n", "plt.bar(ages_x, dev_y, color='#444444', label='All Devs')\n", "\n", "plt.bar(ages_x, py_dev_y, color='#008df5', label='Python')\n", "\n", "plt.bar(ages_x, js_dev_y, color='#e5ae38', label='JavaScript')\n", "\n", "\n", "plt.xlabel(\"Ages\")\n", "plt.ylabel(\"Median Salary (USD)\")\n", "plt.title(\"Median Salary (USD) by Age\")\n", "\n", "plt.legend()\n", "\n", "# Automatically adjust subplot parameters to give specified padding.\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2019-12-25T15:54:49.990240Z", "start_time": "2019-12-25T15:54:49.494789Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAGoCAYAAABbtxOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeVyVZf7/8ffhIC4gGlopuQy4ZI6ZGpkVao4ZSi5hmluU2V6S5lgYCmgiLiVW2qbjTDNgpZhbaStmBGNalpWW2bgrLimYHlSWc+7fH/4835sEWTycI/h6Ph7zeHSu+7puPhcwzXsurvu6LYZhGAIAAAAgSfLydAEAAADApYSADAAAAJgQkAEAAAATAjIAAABgQkAGAAAATAjIAAAAgAkBGUCVsn//fl177bW67777zrs2YcIEXXvttcrOzi7XPV944QXNnTtXkvTII4/of//7n0tqlaQFCxZowIAB6t+/v/r27auZM2cqPz+/1HEVmUd5PPvss9q+fbv279+vjh07nnd94cKFmjBhgvPzheYxd+5cdenSRQMGDNCAAQN01113ady4cdq9e7dz/Pjx47Vjx45ia5kwYYIWLlx40XNau3atrr32Wq1Zs+ai7wXg8kZABlDl1KxZU7t27dKBAwecbadOndJ333130fdesGCBWrZsedH3kaSPPvpIn3/+uRYvXqxVq1bp/fff186dOzVv3jyX3L+i1qxZo7p166p169Zl6l+WeYSHh2vlypVauXKlVq9erW7duumBBx6QzWaTJI0ZM0bPP/+8KvPo/XfeeUf9+vXT22+/XWlfA8DlgYAMoMqxWq3q06ePPvjgA2fbp59+qp49exbpt3btWg0ePFh33323hg4dqu+//16SZLPZNGbMGIWFhSkyMlI7d+50jvnb3/6mn376SQ6HQwkJCRo8eLDCw8PVp08fbdq0SdLZFc+EhARFRkaqV69eGj16tHJzc8+r8/fff5fdbteZM2cknQ32sbGxuuOOOyRJu3bt0oMPPqh7771XPXr00BNPPKG8vLwi9zh16pSee+45DRkyRGFhYRo4cKCz3sjISI0ePVrh4eGaN2+eOnXqpJMnT0qSDMNQWFiYtm3bdl5dc+fO1dChQ8v8/S5tHsW5++671aJFC+fPqGnTpqpbt67S0tKK7b9p0ybde++9Cg8P17Rp01RYWKhVq1YVqTMrK0uhoaHFrsDv27dPGzdu1PPPP689e/Zo8+bNzmvZ2dl67LHH1KdPHw0bNkxPP/208y8GO3bs0KhRozRw4EANGDBAS5cuLfP3BUD1RUAGUCXdfffdWrlypfPzihUrFBER4fy8e/duzZkzR/Pnz9eKFSs0depURUVF6dSpU3r11VdVq1Ytffzxx3rllVe0a9eu8+7/ww8/6MiRI1q8eLHWrFmjiIgILViwwHl9y5YtWrhwodasWaMDBw7o448/Pu8eERER8vf3V2hoqIYMGaIZM2bo4MGDat++vSRpyZIluvvuu7VkyRJ9+umn2r9/v9atW1fkHunp6fL399fixYv1ySefqF27dlq0aJHzur+/v9asWaPRo0erS5cuWrVqlSTp66+/Vv369dWmTZsi99u+fbvy8vLKvHpclnmU5Nprr9X27dudn0NDQ/XZZ58V2/fQoUN6++23tWLFCm3btk1LlixR7969tXfvXv3222+SpNTUVEVERMjHx+e88e+++65uv/12NWjQQOHh4UVWkRMSEtSyZUt99NFHeuWVV5x/aSgsLNTTTz+tv//971q2bJlSUlL0z3/+s0i4BnB58vZ0AQBQEe3atZPVatWWLVvUoEED5ebmFgl9mZmZOnLkiEaOHOlss1gs2rt3r9avX6+YmBhZLBYFBASoV69e592/Y8eOqlevnt577z3t27dPGzZskK+vr/N6165dnUGtdevW+uOPP867R926dfXPf/5T+/bt09dff62NGzfq0Ucf1fDhw/Xss8/q2WefVWZmphYsWKDdu3fryJEjOnXqVJF79O7dW02bNlVycrL27NmjjRs3FtkzHBIS4vznESNG6MUXX9SIESO0ePFiDRs27Lyadu7cqWbNmjk/e3kVv07icDic10qbR0ksFotq1arl/NykSRN99NFHxfYdMGCA6tSpI0nq37+/vvzySw0fPlyDBw9WamqqoqOjtXz5ciUnJ583Nj8/X8uWLVNiYqKks4F+2LBhOnjwoBo3bqwvv/xSy5cvlyRdddVV6t27t6Sz/ydq7969iomJcd7rzJkz+vnnn9WhQ4cS5wWg+iMgA6iy+vfvr1WrVikgIEADBgwocs3hcOiWW27Ryy+/7Gw7ePCgrrrqKkkqshfWarWed+9169Zp2rRpevDBB9WzZ08FBwc7V2clFQl+Foul2L21CxYs0I033qhOnTqpadOmGjx4sL799ls98sgjevbZZzVu3DjZ7Xb16dNHt99+uw4ePHjefd555x0tWbJEI0aMUL9+/VS/fn3t37/fef1cqJSkW2+9VadPn9b69ev17bffaubMmefVZLFY5HA4nJ/r1aunM2fOKC8vTzVr1nS2Hzt2TPXr1y/TPEry008/6Z577nF+9vb2LjGQm38GhmHI2/vs/zwNHTpUgwYNUufOndWqVSs1bdr0vLFr1qzRiRMnNHXqVCUkJDjnmZycrOeee07e3t5Fvq/narDb7apbt26Rv0QcPXpUdevWLXFOAC4PbLEAUGUNGDBAH3/8sdasWaO+ffsWuXbLLbcoMzPTeXLCl19+qf79++vMmTPq2rWrli5dKofDoT/++KPYfbGZmZnq0aOHhg8frnbt2unzzz+X3W4vV31nzpzR7Nmzdfz4cWfb9u3b1bZtW0lSRkaGnnrqKYWHh0s6u63jz18jIyNDERERGjx4sIKCgrR27doS67BYLBo+fLgmTpyovn37Fgm85wQFBWnfvn3Oz76+vrrxxhv173//29l2+PBhffzxx+revXuZ5lGc1NRU7d+/X3369HG27d+/X8HBwcX2X716tfLz85WXl6fly5erW7dukqTGjRurQ4cOSkxMLHZFXJLee+89Pf744/riiy+0du1arV27VpMnT1ZqaqpOnTql7t27O/cW5+Tk6PPPP5fFYlFQUJBq1arlDMgHDx5U3759tWXLlhLnBeDywAoygCrr6quvVosWLVS3bl3nauc5LVu21AsvvKBx48Y5VyTfeOMN+fr6KioqSvHx8erTp48CAgKK3Y87dOhQ/f3vf1e/fv1UWFio2267TZ9++mmR1dfSPPnkk7JYLBo6dKhz5bZdu3bOVe1nnnlGTz31lOrUqSM/Pz/ddNNN2rt3b5F7jBo1SnFxcc6A16FDhyL7ev8sIiJCM2fO1JAhQ4q93rp1a9WsWVM7duxQixYtJEkvvfSSEhMTddddd8nLy0tWq1VPP/20br755jLNQzq7irtp0ybn9aCgIP3nP/8pEtK/+uqrYo/nk85uvxg+fLhyc3PVq1evIvvJBw4cqKlTpzoDu9m2bdv0yy+/6PXXXy/Sfvfdd+uNN97Q8uXL9fzzz2vSpEnOFfjAwEDVqlVLPj4+ev311zVt2jT94x//UGFhocaMGaMbb7yxxO8vgMuDxajMM3cAAG61evVqLV++XP/4xz9K7PPBBx9o06ZNmjx5stvq2rt3r8aPH6/FixfLYrGUeZzD4dALL7ygwMBAPfrooxX62osWLVLbtm3VsWNH5efna/jw4YqKiio2cAOAxAoyAFQbkZGRys7OPm819c/69euntWvX6tdff9W1117rltpefvllJSQklCsc22w29ejRQ506dSry0pLyatmypaZOnSqHw6GCggL17t2bcAzgglhBBgAAAEx4SA8AAAAwqTZbLM6cOaMtW7boyiuvLPbIJgAAAOAcu92u33//Xe3atStydKdUjQLyli1bNGLECE+XAQAAgCpk0aJFRV66JFWjgHzllVdKOjvJRo0aebgaAAAAXMoOHTqkESNGODOkWbUJyOe2VTRq1EhNmjTxcDUAAACoCorbmstDegAAAIAJARkAAAAwISADAAAAJgRkAAAAwISADAAAAJgQkAEAAACTanPMW1n16tXLpff77LPPXHo/AAAAeBYryG40f/58hYaGKi8vT5IUGRmpHTt2aO7cuXr33XeL9F22bJluv/12RUZGasSIEbrvvvu0fv16T5QNAABwWbnsVpA96YMPPlB4eLhWr16tgQMHltq/b9++Gj9+vCTp6NGjGjFihFJSUop94wsAAABcgxVkN9mwYYOaNWumoUOHatGiReUe37BhQ4WFhWndunUqKChQTEyMRowYoWHDhmnDhg3atm2b7r//fmf/xx57TD///LPmzJmjIUOGaPDgwXr77bddOCMAAIDqiRVkN0lNTdXgwYMVHBwsHx8f/fDDD+W+R4MGDZSTk6PU1FRdccUVSkxMVE5Oju677z6tXr1aeXl5OnDggGrUqKGcnBy1bdtWTzzxhFJSUnT11Vdr2bJllTAzAACA6oWA7AZ//PGH0tPTlZ2dreTkZNlsNqWkpJT7PllZWWrbtq2+//57bdq0ST/++KMkqbCwUDk5ORo0aJBWrFghHx8f5xaOpKQkJSUl6ejRo+ratatL5wUAAFAdEZDdYNWqVbrnnnsUHR0tSTp9+rR69uypK664osz3OHLkiNLS0vTEE0/ojz/+UKNGjfT444/rzJkzeuONN1SvXj2Fh4dr5MiRslgs+uc//6n8/Hx9/PHHSkpKkmEYuuuuu3TXXXfpmmuuqaypAgAAVHmXXUD2xLFsqamp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PXv2qEmTJgoICHBHXQAAAIBHlBiQn3/++RIHTZ8+vVKKAQAAADytxIC8ZcsWnTlzRv3791fHjh1lGIY76wIAAAA8osQn7j744AO99tprysvL0/z587V582Y1a9ZMXbt2dWd9AAAAgFtdcA9y69atNX78eEnSN998o9mzZ+vQoUNasmSJW4oDAAAA3K3Uh/RsNps+++wzffjhhzp9+rT69+/vjroAAAAAjygxIH/00UdavXq1srKydOedd2rKlClq0qSJO2sDAAAA3K7EgPzMM88oODhYbdq00fbt2zVnzhzntdmzZ7ulOAAAAMDdSgzI//nPf9xZBwAAAHBJKDEgd+7c2Z11AAAAAJeEEo95AwAAAC5HBGQAAADAhIAMAAAAmBCQAQAAABMCMgAAAGBCQAYAAABMSn3VdEXY7XZNmjRJu3btktVq1fTp02UYhiZMmCCLxaJWrVopPj5eXl5emjdvntatWydvb2/FxMSoffv22rNnT5n7AgAAAK5UKQH5iy++kCS999572rBhgzMgjx07VjfffLPi4uKUlpamwMBAbdy4UampqTp48KCioqL0/vvva/r06WXuCwAAALhSpQTkO+64Q7fffrskKSsrSw0bNtS6deucLx/p1q2bMjMzFRQUpNDQUFksFgUGBsputys7O1tbt24tc9+AgIDKmAIAAAAuU5W2B9nb21vR0dGaOnWqwsLCZBiGLBaLJMnX11cnT56UzWaTn5+fc8y59vL0BQAAAFypUh/Smzlzpj755BPFxsYqLy/P2Z6bmyt/f3/5+fkpNze3SHvdunXl5eVV5r4AAACAK1VKQF6xYoXeeustSVLt2rVlsVjUrl07bdiwQZKUnp6ukJAQderUSRkZGXI4HMrKypLD4VBAQIDatm1b5r4AAACAK1XKHuQ777xTzz//vEaMGKHCwkLFxMSoRYsWio2NVVJSkoKDgxUWFiar1aqQkBANGTJEDodDcXFxkqTo6Ogy9wUAAABcqVICcp06dfTKK6+c156SknJeW1RUlKKiooq0BQUFlbkvAAAA4Eq8KAQAAAAwISADAAAAJgRkAAAAwISADAAAAJgQkAEAAAATAjIAAABgQkAGAAAATAjIAAAAgAkBGQAAADAhIAMAAAAmBGQAAADAhIAMAAAAmBCQAQAAABMCMgAAAGBCQAYAAABMCMgAAACACQEZAAAA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\n", "text/plain": [ "<Figure size 720x432 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# side by side\n", "\n", "x_indexes = np.arange(len(ages_x)) \n", "bar_width = 0.25\n", "\n", "\n", "plt.bar(x_indexes - bar_width, dev_y, width=bar_width, color='#444444', label='All Devs')\n", "\n", "plt.bar(x_indexes, py_dev_y, width=bar_width, color='#008df5', label='Python')\n", "\n", "plt.bar(x_indexes + bar_width, js_dev_y, width=bar_width, color='#e5ae38', label='JavaScript')\n", "\n", "# without this line our age range is lost, to fix this: \n", "plt.xticks(ticks=x_indexes, labels=ages_x)\n", "\n", "plt.xlabel(\"Ages\")\n", "plt.ylabel(\"Median Salary (USD)\")\n", "plt.title(\"Median Salary (USD) by Age\")\n", "\n", "plt.legend()\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2019-12-25T15:54:49.998296Z", "start_time": "2019-12-25T15:54:49.994875Z" } }, "outputs": [], "source": [ "# horizontal bar charts" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2019-12-25T15:54:50.147995Z", "start_time": "2019-12-25T15:54:50.001622Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Counter({'Python': 1, 'Javascript': 1})\n", "Counter({'Python': 2, 'Javascript': 1, 'Html': 1})\n" ] } ], "source": [ "# counter eg\n", "\n", "c = Counter(['Python', 'Javascript'])\n", "print(c)\n", "c.update(['Python', 'Html'])\n", "print(c)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2019-12-25T15:54:51.382913Z", "start_time": "2019-12-25T15:54:50.153986Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['JavaScript', 'HTML/CSS', 'SQL', 'Python', 'Java', 'Bash/Shell/PowerShell', 'C#', 'PHP', 'C++', 'TypeScript', 'C', 'Other(s):', 'Ruby', 'Go', 'Assembly']\n", "[59219, 55466, 47544, 36443, 35917, 31991, 27097, 23030, 20524, 18523, 18017, 7920, 7331, 7201, 5833]\n" ] } ], "source": [ "# using csv module to read the data\n", "\n", "with open(r'examples/data.csv') as csv_file:\n", " csv_reader = csv.DictReader(csv_file)\n", " language_counter = Counter()\n", " \n", " for row in csv_reader:\n", " language_counter.update(row['LanguagesWorkedWith'].split(';'))\n", " \n", "# row = next(csv_reader)\n", "# print(row['LanguagesWorkedWith'].split(';'))\n", "\n", "languages = []\n", "popularity = []\n", "for lan, pop in language_counter.most_common(15):\n", " languages.append(lan)\n", " popularity.append(pop)\n", "\n", "print(languages)\n", "print(popularity)\n", "# language_counter.most_common(15)\n", " " ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2019-12-25T15:54:51.784888Z", "start_time": "2019-12-25T15:54:51.386251Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAGoCAYAAABbtxOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdd3RXhd3H8fcvIQEJM2ARCGoYdVEZRUMFxYj6KIIMAVmhoFbRgqAVQ2XLMAGfUkUFcVEiikBxoDgqoAIKDhQEGcoOKkEhYBiBJL/nD0vO5QG35Ifk/Tqn5/C783tve04/fPnee0PhcDiMJEmSJACiIl2AJEmSdDwxIEuSJEkBBmRJkiQpwIAsSZIkBRiQJUmSpAADsiRJkhRgQJakX1lmZiZnnHEG3bp1O2LdgAEDOOOMM9ixY8fPOvby5csZMmTIUdelpKRwySWX0Lp1a9q0acNVV11Famoq+/bt+1nn+iG/5DoAlixZQsuWLX/FiiTp12FAlqRjoGTJkmzYsIGtW7cWLtu7dy9Lly79Rcf97LPP2LZt23euv/POO3n++ed57rnnePHFF9m3bx/333//LzqnJBU3JSJdgCSdiKKjo7nyyiuZPXs2vXr1AuC1116jefPmPP7444XbPfPMM2RkZBAVFUXlypUZPHgwiYmJvP/++6SlpVFQUADATTfdxLnnnsv999/PN998w9///nfuueee760hFAqRlJTEW2+9BcD777/PmDFj2LdvHzExMfTr14+LLrqIWbNm8corr1BQUMDnn39OlSpVSEtLo0qVKqSkpNC1a1euuOIKgCN+w7fBf9iwYWzatIns7Gzi4uK49957qVmzJikpKZQvX57169fTuXNnUlJSftT9++ijjxg7diwHDhxg+/btXHDBBYwePZrMzEx69OhBs2bNWLZsGbt376Z///5cdtll7Nu3j6FDh7Js2TLKli1L7dq1AUhLS+OSSy7hvvvu4w9/+APAYb8nTpzI3Llz2b9/P/v27SM1NfUHj7dt2zbuvvtuvvjiCw4ePMhVV11Fr169yMvLY8SIESxdupSYmBgSEhK45557iIuL+1HXLen4YAdZko6RNm3a8Pzzzxf+fu6552jbtm3h73feeYdHH32UKVOm8MILL9CyZUv++te/Eg6HGT9+PD179mTWrFmMHj2axYsXU7VqVW699VYaNWr0g+EYYNeuXbz88sskJSWxc+dObr31VgYOHMjs2bNJT0+nf//+bNmyBYD33nuPgQMHMmfOHM455xxGjRr1o6/zrbfeoly5cjzzzDO8+uqr1K1bl6lTpxauL1euHHPmzPnR4RhgypQp3HrrrcyYMYOXXnqJefPmsWLFCgC2bNlC06ZNmTlzJn/7298YPXo0AA899BD5+fm8/PLLTJ48mU8++eQHz7N161befvttMjIymD17Nrfddlthx/37jte/f3+uueYaZs2axcyZM3n77beZM2cOH330Ee+++y4vvPACs2bNokaNGqxZs+ZHX7ek44MdZEk6RurWrUt0dDQrVqygUqVK7Nmzh9///veF6xcsWECLFi2Ij48HoF27dowaNYrMzEyuvPJK7r77bubNm8cFF1zA7bff/qPOOWbMGCZMmEA4HAYgOTmZ7t27s2jRIk499VTq1asHQJ06dWjYsCHvvvsuoVCIJk2akJiYCEDHjh1p3br1j77OK664gho1apCRkcGmTZt49913adCgQeH6Ro0a/ehjHZKWlsZbb73FxIkTWb9+Pbm5uezdu5cKFSoQExNDs2bNADj77LPJzs4G4M033+Tvf/87UVFRlClThrZt2/5gOK1evTpjxoxh9uzZbNq0iWXLlrFnz57vPd7evXt577332LVrF/fddx/wbRd99erVNG3alOjoaDp06EDTpk35n//5H84999yffP2SIsuALEnH0NVXX80LL7xAfHz8EaHz0PhEUDgcJi8vj06dOpGcnMyiRYtYsGABDzzwAK+88soPnu/OO+88bPzhkPz8fEKh0FHPFRMTQ3R09GF1BX8fCtsABw8ePOLYTz31FNOnT6dr1660atWKChUqkJmZWbi+dOnSP1j3/9etWzfOOOMMLrzwQq688kqWLVtWWEdMTAxRUd/+A2jwmkqUKHFYrYe2Odp1HDhwAICVK1dyyy230KNHD5o0acJ5553H8OHDv/d4BQUFhMNhpk2bxkknnQTAjh07KFmyJHFxcTz//PMsXbqUxYsX069fP66//nq6du36k++BpMhxxEKSjqHWrVvzyiuvMGfOnCPe2HDhhRcyZ86cwjdB/Pvf/6ZChQqcdtppdOrUiVWrVtGuXTtGjBjB7t272b59O9HR0eTl5f3kOurXr8/69etZvnw5AJ9++invvfce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\n", "text/plain": [ "<Figure size 720x432 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plotting\n", "\n", "languages.reverse()\n", "popularity.reverse()\n", "plt.barh(languages, popularity)\n", "# plt.ylabel(\"Programming Languages\")\n", "plt.xlabel(\"Number of people who use\")\n", "plt.title(\"Most Popular Languages\")\n", "\n", "plt.tight_layout()\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2019-12-25T15:54:52.325869Z", "start_time": "2019-12-25T15:54:51.788623Z" } }, "outputs": [], "source": [ "# using Pandas\n", "\n", "data = pd.read_csv(r'examples/data.csv')\n", "ids = data['Responder_id']\n", "lang_responses = data['LanguagesWorkedWith']\n", "\n", "language_counter = Counter()\n", "\n", "for response in lang_responses:\n", " language_counter.update(response.split(';'))\n", " \n", "\n", "languages = []\n", "popularity = []\n", "for lan, pop in language_counter.most_common(15):\n", " languages.append(lan)\n", " popularity.append(pop)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2019-12-25T15:54:52.738661Z", "start_time": "2019-12-25T15:54:52.325869Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAGoCAYAAABbtxOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdd3RXhd3H8fcvIQEJM2ARCGoYdVEZRUMFxYj6KIIMAVmhoFbRgqAVQ2XLMAGfUkUFcVEiikBxoDgqoAIKDhQEGcoOKkEhYBiBJL/nD0vO5QG35Ifk/Tqn5/C783tve04/fPnee0PhcDiMJEmSJACiIl2AJEmSdDwxIEuSJEkBBmRJkiQpwIAsSZIkBRiQJUmSpAADsiRJkhRgQJakX1lmZiZnnHEG3bp1O2LdgAEDOOOMM9ixY8fPOvby5csZMmTIUdelpKRwySWX0Lp1a9q0acNVV11Famoq+/bt+1nn+iG/5DoAlixZQsuWLX/FiiTp12FAlqRjoGTJkmzYsIGtW7cWLtu7dy9Lly79Rcf97LPP2LZt23euv/POO3n++ed57rnnePHFF9m3bx/333//LzqnJBU3JSJdgCSdiKKjo7nyyiuZPXs2vXr1AuC1116jefPmPP7444XbPfPMM2RkZBAVFUXlypUZPHgwiYmJvP/++6SlpVFQUADATTfdxLnnnsv999/PN998w9///nfuueee760hFAqRlJTEW2+9BcD777/PmDFj2LdvHzExMfTr14+LLrqIWbNm8corr1BQUMDnn39OlSpVSEtLo0qVKqSkpNC1a1euuOIKgCN+w7fBf9iwYWzatIns7Gzi4uK49957qVmzJikpKZQvX57169fTuXNnUlJSftT9++ijjxg7diwHDhxg+/btXHDBBYwePZrMzEx69OhBs2bNWLZsGbt376Z///5cdtll7Nu3j6FDh7Js2TLKli1L7dq1AUhLS+OSSy7hvvvu4w9/+APAYb8nTpzI3Llz2b9/P/v27SM1NfUHj7dt2zbuvvtuvvjiCw4ePMhVV11Fr169yMvLY8SIESxdupSYmBgSEhK45557iIuL+1HXLen4YAdZko6RNm3a8Pzzzxf+fu6552jbtm3h73feeYdHH32UKVOm8MILL9CyZUv++te/Eg6HGT9+PD179mTWrFmMHj2axYsXU7VqVW699VYaNWr0g+EYYNeuXbz88sskJSWxc+dObr31VgYOHMjs2bNJT0+nf//+bNmyBYD33nuPgQMHMmfOHM455xxGjRr1o6/zrbfeoly5cjzzzDO8+uqr1K1bl6lTpxauL1euHHPmzPnR4RhgypQp3HrrrcyYMYOXXnqJefPmsWLFCgC2bNlC06ZNmTlzJn/7298YPXo0AA899BD5+fm8/PLLTJ48mU8++eQHz7N161befvttMjIymD17Nrfddlthx/37jte/f3+uueYaZs2axcyZM3n77beZM2cOH330Ee+++y4vvPACs2bNokaNGqxZs+ZHX7ek44MdZEk6RurWrUt0dDQrVqygUqVK7Nmzh9///veF6xcsWECLFi2Ij48HoF27dowaNYrMzEyuvPJK7r77bubNm8cFF1zA7bff/qPOOWbMGCZMmEA4HAYgOTmZ7t27s2jRIk499VTq1asHQJ06dWjYsCHvvvsuoVCIJk2akJiYCEDHjh1p3br1j77OK664gho1apCRkcGmTZt49913adCgQeH6Ro0a/ehjHZKWlsZbb73FxIkTWb9+Pbm5uezdu5cKFSoQExNDs2bNADj77LPJzs4G4M033+Tvf/87UVFRlClThrZt2/5gOK1evTpjxoxh9uzZbNq0iWXLlrFnz57vPd7evXt577332LVrF/fddx/wbRd99erVNG3alOjoaDp06EDTpk35n//5H84999yffP2SIsuALEnH0NVXX80LL7xAfHz8EaHz0PhEUDgcJi8vj06dOpGcnMyiRYtYsGABDzzwAK+88soPnu/OO+88bPzhkPz8fEKh0FHPFRMTQ3R09GF1BX8fCtsABw8ePOLYTz31FNOnT6dr1660atWKChUqkJmZWbi+dOnSP1j3/9etWzfOOOMMLrzwQq688kqWLVtWWEdMTAxRUd/+A2jwmkqUKHFYrYe2Odp1HDhwAICVK1dyyy230KNHD5o0acJ5553H8OHDv/d4BQUFhMNhpk2bxkknnQTAjh07KFmyJHFxcTz//PMsXbqUxYsX069fP66//nq6du36k++BpMhxxEKSjqHWrVvzyiuvMGfOnCPe2HDhhRcyZ86cwjdB/Pvf/6ZChQqcdtppdOrUiVWrVtGuXTtGjBjB7t272b59O9HR0eTl5f3kOurXr8/69etZvnw5AJ9++invvfce559/PgCLFy8ufPhv2rRpJCcnAxAfH1842vDZZ58dtSO7cOFC2rZtS4cOHUhMTGTevHnk5+f/5BoP2b17Nx9//DF33HEHl19+OV9++SWbN28+6l8ogpo1a8a///1vCgoK2LdvHy+++GJhgA5ex5IlS9i+fTvw7WhJ3bp16dmzJ+effz5z584trP27jlemTBnq16/PE088UVhv586dmTt3LvPnz6dHjx40aNCAPn360KZNm8LzSvrtsIMsScdQlSpVqFWrFmXLlqVChQqHrWvSpAk9evTgz3/+MwUFBcTHx/Pwww8TFRXFHXfcwejRo/nnP/9JKBSid+/eJCQkkJ+fz4MPPkjv3r154IEHfnQd8fHx3HfffYwYMYL9+/cTCoW45557SExM5MMPP6RKlSr079+f7du3U7t2be6++24Abr75ZgYMGMCbb75JzZo1jzoucd111zFkyBBmzpwJfBvG165d+6PqWrdu3WHjGPDtTPONN95I27ZtKV26NFWqVKFhw4Zs2rSJGjVqfOexbrrpJu6++25atWpF2bJlqVSpEqVKlQLgjjvuYNiwYTzzzDOcc845nHPOOQC0bNmS1157jSuvvJKCggKSk5PZtWsXOTk533u8e++9lxEjRtCqVSsOHDhAy5Ytufrqq8nPz+ett96iZcuWlC5dmvLlyzNixIgfdS8kHT9C4eC/H0mSip1Zs2bx6quv8vDDD0e6lF/kpZdeokyZMjRr1oyCggL69OlDkyZN6NKly3FxPEm/HY5YSJJOCHXq1GHChAm0bt2ali1b8rvf/Y4OHTocN8eT9NthB1mSJEkKsIMsSZIkBfiQ3m/Y/v37WbFiBSeffPJhr2SSJEnS98vPz2f79u3UrVu38AHcQwzIv2ErVqzw3ZqSJEm/wNSpU494Q48B+Tfs5JNPBr79L/aUU06JcDWSJEm/HV9++SVdu3YtzFNBBuTfsENjFaeccgoJCQkRrkaSJOm352hjqj6kJ0mSJAUYkCVJkqQAA7IkSZIUYECWJEmSAgzIkiRJUoABWZIkSQowIEuSJEkBBmRJkiQpwIAsSZIkBRiQJUmSpAADsiRJkhRgQJYkSZICDMiSJElSgAFZkiRJCigR6QL0yzVNnw9x8ZEuQ5Ik6WfbmHZVpEsoZAdZkiRJCjAgS5IkSQEGZEmSJCnAgCxJkiQFGJAlSZKkAAOyJEmSFGBABlJSUli3bt0vPs6zzz5L9+7d6dmzJz169GDhwoU/ar9Vq1bxwAMPfOf67OxsZs+e/YvrkyRJ0g/zPci/km+++YaHHnqIl156idjYWLZt20aHDh144403iIr6/r+HnHXWWZx11lnfuX7NmjXMmzePVq1a/dplS5Ik6f8xIP/Xzp076dWrF7m5uWRnZ/PXv/6VhIQERo8ezZQpUwC46aab6Nu3L5s3b2bq1KmF+953332UL1+e/Px8nn76aZKTkzn11FN5/fXXiYqKYuPGjQwaNIiDBw9SqlQpxo0bx5gxY8jOziY7O5vrr7+eOXPmMG7cOJo3b069evXYvHkzderUYdSoUUycOJHVq1fzzDPPcO2110bqFkmSJBULjlj81+rVq+nZsydPPPEEgwcPZurUqZx55pnk5uaydetWsrKy2LlzJ2effTYbN25k0qRJZGRkkJiYyMKFC4mOjuaJJ55g06ZN3HDDDSQnJzNz5kwA0tPTufHGGwsD7ieffAJA48aNmTZtGuXKlSusY9u2bfTt25eZM2eyd+9eXn/9dXr16kXjxo0Nx5IkSUWg2HaQ9+zZQ2xsLDExMQA0atSISZMmMXPmTEKhEHl5eQC0b9+e5557jtjYWNq1awdApUqVSE1NJS4ujvXr11O/fn22bdvG/v37GTJkCAAbNmzghhtu4I9//CMbNmygQYMGALRo0QKAF198kcTExCPqqlq1KqeddhoADRo0YMOGDdSvX//Y3gxJkiQVKrYd5AEDBvDBBx9QUFDA119/zejRo2ndujVjx44lKSmJcDgMfBto33jjDf7zn//QsmVLvvnmG+6//37GjRvHyJEjKVmyJOFwmK+++oo77riDXbt2AVC9enUqVqxITEwMtWrV4uOPPwbghRdeICMjA4BQKHREXdu2bWP79u0ALF26lNq1axMVFUVBQUFR3BZJkqRir9h2kHv27FkYcNu2bUvVqlUZNWoUDz/8MFWrVmXnzp0AxMXFceaZZ5KXl0eZMmUIh8M0bNiQtm3bUrp0acqVK0dWVhbXXHMN3bt3589//jOlSpUiPz+fDh06ULNmTe68806GDBnChAkTKFWqFGPHjmXlypVHrSs2NpYRI0bwxRdfUK9ePS655BKysrJYu3YtkydPpkePHkV4lyRJkoqfUPhQq1THhSZNmrBo0aIftW1mZibNmzcn9/JBEBd/jCuTJEk6djamXVWk5zuUo+bOnUtCQsJh64rtiIUkSZJ0NAbk48yP7R5LkiTp2DAgS5IkSQEGZEmSJCmg2L7F4kSyMDX5iOFySZIk/Tx2kCVJkqQAA7IkSZIUYECWJEmSApxBPgE0TZ/vh0IkSdJPUtQf5vgtsYMsSZIkBRiQJUmSpAADsiRJkhRgQJYkSZICDMiSJElSQLF6i8WSJUuYNm0a48aNK1x27733UqFCBd588012795NVlYWtWvXBmDy5MmcffbZdOrUieHDhxfuM3LkSObNm8e8efMYMGAALVq04KKLLjrsXPn5+dx66608+OCDvP/++zz44IPk5eWxd+9e2rVrR9euXQGYNGkSb7/9NlFRUYRCIW677Tbq1q3Ljh07GDp0KHv37iUcDlOtWjUGDRpEqVKliuBOSZIkFV/FKiB/l/j4eDIyMo4aoCtUqMB7771HXl4eJUqUID8/nxUrVvzgMT/44AMaNGjAli1bGDlyJI8++iiVK1dm//79dO/enRo1alCtWjXmzZvH008/TSgUYtWqVaSmpvLCCy/w6KOPcsEFF9C5c2cARo0axbRp0+jRo8exug2SJEnCEYsfVKJECc4//3wWLVoEwMKFC/nTn/70g/vNnz+f5ORknn/+edq0aUPlypUBKFWqFI899hhNmjQhPj6ezz//nJkzZ7Jt2zbOOussZs6cCUD16tV59dVXefvtt9m/fz+pqamkpKQcuwuVJEkSUAwD8uLFi0lJSSn8z4svvviD+7Rs2ZI5c+YA8OKLL9KqVasf3Gf9+vXUqlWLrKwsEhISDltXtmxZoqOjiY+PZ8KECSxdupRrr72WK664gvnz5wPQuXNnWrZsyWOPPcaFF15I7969ycrK+hlXLEmSpJ+i2I1YNG7c+IgZ5B/yxz/+keHDh7Nz506ys7OpXr36926/ZcsWTj31VACqVavGl19+edj61atXEw6HKV26NGXKlOGee+4B4OOPP+bGG28kKSmJVatW0aZNG9q3b8+BAwd45JFHGD16NOPHj/+plyxJkqSfoNh1kH+OUChEs2bNGDZsGJdeeukPbj9v3jwuvvhi4Nvu84wZM9ixYwcAe/bsYciQIWRlZbFmzRqGDRtGbm4uAImJiYXd5X/961/MmjULgNjYWOrUqUNsbOyxuUBJkiQVKnYd5J+rVatWXHPNNdx9991HrBs1ahT//Oc/gW9D7oEDBwofrktISKB///707t2b6Oho9uzZQ/v27WnWrBkA69ato0OHDpQuXZpwOMydd95J2bJlGT58OMOHD+epp56iVKlSVKxYkWHDhhXZ9UqSJBVXoXA4HI50Efp5MjMzad68ObmXD4K4+EiXI0mSfkM2pl0V6RIi6lCOmjt37hHPizliIUmSJAUYkCVJkqQAA7IkSZIUYECWJEmSAnyLxQlgYWryEcPlkiRJ+nnsIEuSJEkBBmRJkiQpwIAsSZIkBRiQJUmSpAAf0jsBNE2f75f0JEnCr8Pp12EHWZIkSQowIEuSJEkBBmRJkiQpwIAsSZIkBRiQJUmSpAADsiRJkhTga96KyKRJk3j77beJiooiFApx2223UbduXaZMmcLs2bMpWbIkoVCIG264gWbNmgHQpEkTFi1aFOHKJUmSihcDchH47LPPmDdvHk8//TShUIhVq1aRmppKhw4dWLZsGVOnTiU2NpadO3dy4403Ur58eerXrx/psiVJkoolRyyKQHx8PJ9//jkzZ85k27ZtnHXWWcycOZMnn3ySgQMHEhsbC0DFihXp06cPTz/9dIQrliRJKr4MyEUgPj6eCRMmsHTpUq699lquuOIK5s+fz+7du4mPP/wLeNWrV2fr1q0RqlSSJEmOWBSBTZs2UaZMGe655x4APv74Y2688UbKlSvHjh07DgvJGzdupEqVKpEqVZIkqdizg1wE1qxZw7Bhw8jNzQUgMTGRsmXL0qVLF0aPHs2BAweYM2cOf//73xk/fjydO3eOcMWSJEnFlx3kInD55Zezbt06OnToQOnSpQmHw9x5551ceumlTJkyhW7duhEVFUV+fj5lypRh/fr1NGrUiOzsbNq1a1d4nOuuu46WLVtG8EokSZJOfAbkInLzzTdz8803H7G8e/fudO/evfB3fn4+K1asAGDlypVFVp8kSZK+5YjFcSY6Opp69epFugxJkqRiy4AsSZIkBRiQJUmSpABnkE8AC1OTSUhIiHQZkiRJJwQ7yJIkSVKAAVmSJEkKMCBLkiRJAQZkSZIkKcCH9E4ATdPnQ1x8pMuQpBPaxrSrIl2CpCJiB1mSJEkKMCBLkiRJAQZkSZIkKcCALEmSJAUYkCVJkqQA32LxMy1ZsoR+/fpRu3ZtAHJzc2nVqhUpKSlHbLtmzRp2797NeeedxyWXXMLLL79MyZIli7pkSZIk/QgG5F+gcePGjBs3DoADBw5wxRVX0Lp1a8qVK3fYdq+99hqVK1fmvPPOi0SZkiRJ+gkMyL+SnJwcANq1a8err75KdHQ0Y8eOpXbt2jz77LPExMRwzjnnADBs2DAyMzMBeOCBByhdujR33XUXW7ZsIT8/n549e9KiRQtSUlI488wz+fTTT8nJyeG+++6jevXqEbtGSZKk4sCA/AssXryYlJQUQqEQMTExDB06lDlz5rBw4UKaNm3KW2+9Rd++fcnMzKRy5cqce+65AFxzzTU0atSIAQMGsGjRInbs2EHFihUZO3YsOTk5tGvXjsaNGwNw7rnnMnDgQMaNG8dLL73EjTfeGMlLliRJOuEZkH+B4IjFIXFxcWRkZFBQUMAFF1xAbGzsEfvVrVsXgMqVK7N//37WrVvHBRdcAECZMmWoVasWW7ZsAeDss88G4JRTTuGrr746lpcjSZIkfIvFr65Ro0Zs2bKFmTNn0r59ewBCoRAFBQWF24RCocP2qVWrFu+//z7w7ajG2rVrSUhIKLqiJUmSVMiAfAy0atWKr776ijp16gDfdoynTp3K4sWLj7p9x44dyc7OpnPnznTv3p3evXtTqVKloixZkiRJ/xUKh8PhSBdxonnkkUeoWLFiYQf5WMnMzKR58+bkXj4I4uKP6bkkqbjbmHZVpEuQ9Cs6lKPmzp17xL/cO4P8KxswYAA7d+5k/PjxkS5FkiRJP4MB+VeWlpYW6RIkSZL0CziDLEmSJAUYkCVJkqQARyxOAAtTk30tnCRJ0q/EDrIkSZIUYECWJEmSAgzIkiRJUoAzyCeApunz/VCIJP2K/CiIVLzZQZYkSZICDMiSJElSgAFZkiRJCjAgS5IkSQEGZEmSJCnAgCxJkiQFGJCLSEpKCuvWrYt0GZIkSfoBBmRJkiQpwA+FFKGdO3fSq1cvcnNzyc7O5q9//SsJCQmMHj2aKVOmAHDTTTfRt29fNm/ezNSpUwv3ve+++4iP92MgkiRJx5od5CK0evVqevbsyRNPPMHgwYOZOnUqZ555Jrm5uWzdupWsrCx27tzJ2WefzcaNG5k0aRIZGRkkJiaycOHCSJcvSZJULNhBPob27NlDbGwsMTExADRq1IhJkyYxc+ZMQqEQeXl5ALRv357nnnuO2NhY2rVrB0ClSpVITU0lLi6O9evXU79+/YhdhyRJUnFiB/kYGjBgAB988AEFBQV8/fXXjB49mtatWzN27FiSkpIIh8MAtGjRgjfeeIP//Oc/tGzZkm+++Yb777+fcePGMXLkSEqWLFm4rSRJko4tO8jHUM+ePQsDbtu2balatSqjRo3i4YcfpmrVquzcuROAuLg4zjzzTPLy8ihTpgzhcJiGDRvStm1bSpcuTbly5cjKyorw1UiSJBUPobCtyd+szMxMmjdvTu7lgyDOB/gk6deyMe2qSJcg6Rg7lKPmzp1LQkLCYescsZAkSZICDMiSJElSgAFZkiRJCjAgS5IkSQG+xeIEsDA1+YjhckmSJP08dpAlSZKkAAOyJEmSFGBAliRJkgKcQT4BNE2f74dCJP0m+UEOSccjO8iSJElSgAFZkiRJCjAgS5IkSQEGZEmSJCnAgCxJkiQFGJAlSZKkgB98zduSJUvo168ftWvXJhwOk5eXx6hRo6hVq9aPPkmTJk1YtGjREctXrFjBvHnz6NatG0OHDmXv3r2Ew2GqVavGoEGD+Oqrr7j99tuZPn36D54jMzOzcNtLLrmEl19+mZIlS/Lqq6+Sk5PDc889x759+zjppJMAiI6OJj09nSpVqvzo6/gpCgoKSE9PZ+3atURFRRETE8PAgQOpUaPGYfX9kEPbDh06lBYtWnDRRRcdk3olSZL0rR/VQW7cuDEZGRk8+eST9O7dmzFjxvwqJ3/jjTe4+OKLefTRR7ngggt47LHHePzxxznppJOYNm3ar3KON998k2bNmgGQnp5ORkYGGRkZXH755Tz++OO/yjmOZsGCBWRlZfHEE0/w2GOP0b59e0aPHn3MzidJkqRfx0/+UMju3bupXr067777Lg888AAA+/fvJz09nWrVqtG3b19ycnLYv38//fv3JykpiQMHDvC3v/2Nzz//nAoVKnD//fcTExPDihUr+Otf/8rHH3/Mq6++ymmnnUbDhg1JTU0lFArxxRdfsGPHDm655Ra2b9/OGWecwciRI/niiy8YPHgwubm5lCxZkhEjRhy11nA4zM6dO6lcufIR63bt2kXp0qUBSEtL44MPPgCgZcuWXH311fTo0YPnn3+eDz/8kJtuuol33nmH7du3M3DgQCZOnMjQoUPZtGkTBQUF9OvXj6SkJFq2bMnpp59ObGwsN910EytWrGDOnDk0btyY5s2bH9b9HTZsGJmZmQA88MADlC5d+qjHlCRJUtH6UQF58eLFpKSkcODAAdasWcPDDz/Mp59+ytixY6lSpQoTJ07klVde4dJLL+Wrr75i8uTJfP3112zcuBGAvXv3ctttt5GQkEBKSgqrVq2iatWqVK5cmVAoROfOnSlZsiSPPfYYffv25Y9//CNDhw4FICcnh3vuuYeyZcty2WWX8fXXX5Oenk5KSgrNmjXjnXfe4d577+W22247ou7ly5dTt27dwt+pqamcdNJJhEIhEhMT6d+/P/PnzyczM5Pp06eTl5dHly5daNy4MRUqVOCLL75gwYIFnHLKKaxcuZKPP/6YSy+9lBkzZlCxYkVGjx7Nzp076datGy+99BJ79+7llltu4eyzzwZgxIgRTJ8+nZEjR3LKKacwYMAAzj//fACuueYaGjVqxIABA1i0aBHZ2dlHPaYkSZKK1o8KyI0bN2bcuHEArF+/nk6dOjF69GhGjRpF6dKl2bZtGw0bNqROnTp07dqV22+/nby8PFJSUgAoX748CQkJAFSuXJl9+/bxxhtvFI4+LFmyhDZt2tC+fXsOHDjAI488wujRo0lNTaVGjRqUL18egEqVKrFv3z7Wrl3Lww8/zKOPPko4HCYmJuaodc+fP5/LL7+88Hd6evoRs9Pr1q2jUaNGhEIhYmJiqFevHuvWreOyyy7jzTff5MMPP+Qvf/kLixYt4sMPP2TUqFE8+OCDfPDBByxfvhyAvLw8du7cCUBiYiIAq1evJjExkX/84x+Ew2EWLVpEv379CmexDwX3ypUrs3//ftauXfudx5QkSVLR+ckjFofGFQYNGsTrr79OmTJlSE1NJRwOs2bNGvbs2cOkSZPIysqiU6dOJCcnEwqFjjjO22+/zciRIwH417/+xZYtW+jYsSOxsbHUqVOH9evXAxx135o1a3LdddfRsGFD1q1bx3vvvXfUWlevXk2/fv2+93pq1arFrFmz6NGjBwcPHuTDDz+kbdu2NGzYkDvuuIOKFSty0UUXcd1111G2bFlOPvlkatasySmnnEKvXr3Yv38/EyZMKAzxUVHfjnW/8847rF69mtGjRxMdHU2dOnUKu9dHu67vO6YkSZKKzk8asYiKimLPnj0MGDCANWvW0LFjR8qVK0flypXJysri9NNP58EHH+S5554jJiaGW2+99ajHO3jwIPn5+cTFxQEwfPhwhg8fzlNPPUWpUqWoWLEiw4YN4+DBg0fdPzU1lWHDhpGbm8v+/fsZOHDgEdtkZ2fzu9/97gevLTk5mXfffZdrr72WgwcPcsUVV3DOOecAkJubS+PGjSlfvjwlSpTg4osvBqBTp04MGjSIbt26kZOTQ5cuXQqD8SEpKSmkp6fTpk0bypQpQ1RU1Pc+3PhjjilJkqRjLxQOh8ORLkI/T2ZmJs2bNyf38kEQFx/pciTpJ9uYdlWkS5BUTB3KUXPnzi0cBT7EFqUkSZIUYECWJEmSAgzIkiRJUsBPfouFjj8LU5OPmJ2RJEnSz2MHWZIkSQowIEuSJEkBBmRJktH+Eg4AACAASURBVCQpwIAsSZIkBfiQ3gmgafp8PxQiFXN+cEOSfj12kCVJkqQAA7IkSZIUYECWJEmSAgzIkiRJUoABWZIkSQowIB8HPv30U2688UZSUlK45ppruP/++wmHw+Tn53PTTTcBcMstt7B3794IVypJknTi8zVvEbZ7925uv/12xo8fz+mnn05+fj59+/Zl2rRp1K9fn1q1agGwb98+SpcuHeFqJUmSTnx2kCNs7ty5JCUlcfrppwMQHR1Neno6q1evpnfv3ixatIh27dqxceNGnnzyycgWK0mSVAzYQY6wrKwsatSocdiyuLg4hg8fzp133snf/vY33nnnHQDatGkTiRIlSZKKFQNyhFWrVo1PPvnksGVbtmzhrrvuYvXq1XzxxRds2LCBatWqkZOTQ7du3SJUqSRJUvHgiEWEJScns2DBAjZv3gzAwYMHSUtLIykpiQsvvJCMjAxq1arF9OnTDceSJElFwA5yhJUpU4a0tDQGDRpEOBxmz549JCcnU69ePUqVKsXBgwc56aSTIl2mJElSsWFAPg7UrVuXKVOmHLH8wgsvBGDixIlFXZIkSVKx5YiFJEmSFGBAliRJkgIMyJIkSVKAAVmSJEkK8CG9E8DC1GQSEhIiXYYkSdIJwQ6yJEmSFGBAliRJkgIMyJIkSVKAAVmSJEkK8CG9E0DT9PkQFx/pMqQT3sa0qyJdgiSpCNhBliRJkgIMyJIkSVKAAVmSJEkKMCBLkiRJAQZkSZIkKcC3WBSBJUuW0K9fP2rXrg1Abm4urVq1YuXKlbRo0YKLLrqocNsmTZqwaNEixo8fz4svvsjvfvc7AA4ePMhtt91GUlJSRK5BkiSpuDAgF5HGjRszbtw4AA4cOMAVV1zBmWee+b379OjRg86dOwOwbt067rjjDp599tljXqskSVJx5ohFBOTk5BAVFUWJEj/+7yfZ2dmULl36GFYlSZIksINcZBYvXkxKSgqhUIiYmBgGDx7Myy+/zNixY3nkkUcKt9u1a1fhnydPnsycOXOIioqiXLlyjBgxIhKlS5IkFSsG5CISHLE45OWXX6Z///5HzCAfEhyxkCRJUtFwxEKSJEkKMCBLkiRJAY5YFIGkpKSjvp4tLS3tiGWLFi0CoE+fPse8LkmSJB3JDrIkSZIUYECWJEmSAgzIkiRJUoABWZIkSQrwIb0TwMLUZBISEiJdhiRJ0gnBDrIkSZIUYECWJEmSAgzIkiRJUoABWZIkSQrwIb0TQNP0+RAXH+kypIjbmHZVpEuQJJ0A7CBLkiRJAQZkSZIkKcCALEmSJAUYkCVJkqQAA7IkSZIU4FssitCnn37K2LFj2bdvH3v37qVZs2b06dOHUCgU6dIkSZL0X3aQi8ju3bu5/fbbueuuu8jIyGD69OmsXbuWadOmRbo0SZIkBdhBLiJz584lKSmJ008/HYDo6GjS09OJiYkBYNasWaxfv5477rjjsP3Gjx9P5cqV6dy5c1GXLEmSVCwZkItIVlYWNWrUOGxZXFwc7777LuPHj2f79u3s37+fZcuWcc011xAbG8vTTz/N1q1biYmJYc6cOfTq1YsmTZpE6AokSZKKBwNyEalWrRqffPLJYcu2bNlCKBQiIyPjqB3kFi1a2EGWJEkqYs4gF5Hk5GQWLFjA5s2bATh48CBpaWmsXbs2wpVJkiQpyA5yESlTpgxpaWkMGjSIcDjMnj17SE5OpkuXLgC0a9fuqPv16dOnKMuUJEkq9gzIRahu3bpMmTIl0mVIkiTpezhiIUmSJAUYkCVJkqQAA7IkSZIUYECWJEmSAnxI7wSwMDWZhISESJchSZJ0QrCDLEmSJAUYkCVJkqQAA7IkSZIU4AzyCaBp+nyIi490GdLPsjHtqkiXIEnSYewgS5IkSQEGZEmSJCnAgCxJkiQFGJAlSZKkAAOyJEmSFGBAliRJkgKK5Wve0tLSWLlyJdu3b2f//v3UqFGDihUrcv/99/+i4z777LM8++yzREdHEw6HueGGG2jatOkP7rdq1Srmzp1L7969j7o+OzubBQsW0KpVq19UnyRJkn5YsQzIAwYMAGDWrFmsX7+eO+644xcf85tvvuGhhx7ipZdeIjY2lm3bttGhQwfeeOMNoqK+v1F/1llncdZZZ33n+jVr1jBv3jwDsiRJUhEolgH5aP7xj39QpUoVunbtyq5du+jZsyepqalMnDiRqKgotm/fzrXXXkvXrl1Zs2YNI0eOBKBChQqMHj2a0qVLk5+fz9NPP01ycjKnnnoqr7/+OlFRUWzcuJFBgwZx8OBBSpUqxbhx4xgzZgzZ2dlkZ2dz/fXXM2fOHMaNG0fz5s2pV68emzdvpk6dOowaNYqJEyeyevVqnnnmGa699toI3ylJkqQTmzPI/9WhQweee+45AF588cXCbu22bduYMGEC06dPZ/LkyXz99dcMHjyYoUOHkpGRwUUXXcSjjz5KdHQ0TzzxBJs2beKGG24gOTmZmTNnApCens6NN95YGHA/+eQTABo3bsy0adMoV65cYR3btm2jb9++zJw5k7179/L666/Tq1cvGjdubDiWJEkqAnaQ/6tGjRrExcXx2WefMXv2bB566CE+/fRTGjRoQGxsLAB16tRh8+bNrFu3juHDhwNw8OBBEhMT2bZtG/v372fIkCEAbNiwgRtuuIE//vGPbNiwgQYNGgDQokUL4NsQnpiYeEQdVatW5bTTTgOgQYMGbNiwgfr16x/z65ckSdK3DMgBHTt2ZMKECVSpUoX4+Hjg2wfo8vPzOXDgAJ999hmnnXYaiYmJpKenU61aNT744AO2b9/OV199xYABA3jyyScpX7481atXp2LFisTExFCrVi0+/vhjLrjgAl544QV27doFQCgUOqKGbdu2sX37dk4++WSWLl1K69atiYqKoqCgoEjvhSRJUnFlQA649NJLufvuuxk7dmzhsry8PP7yl7+QnZ3NzTffTHx8PMOGDSM1NZX8/HwARo0aRWJiIt27d+fPf/4zpUqVIj8/nw4dOlCzZk3uvPNOhgwZwoQJEyhVqhRjx45l5cqVR60hNjaWESNG8MUXX1CvXj0uueQSsrKyWLt2LZMnT6ZHjx5FcSskSZKKrVA4HA5Huojjxb59++jWrRszZswgKiqKJUuWMG3aNMaNG1dkNTRp0oRFixb9qG0zMzNp3rw5uZcPgrj4Y1yZdGxsTLsq0iVIkoqhQzlq7ty5JCQkHLbOh/T+a+nSpXTs2JFbbrnlB1/LJkmSpBOXIxb/1bBhQ2bPnn3YsqSkJJKSkoq0jh/bPZYkSdKxYatUkiRJCjAgS5IkSQGOWJwAFqYmHzFcLkmSpJ/HDrIkSZIUYECWJEmSAgzIkiRJUoAzyCeApunz/VCIfhP8KIgk6bfADrIkSZIUYECWJEmSAgzIkiRJUoABWZIkSQowIEuSJEkBBmRJkiQpwNe8Hcc+/fRTxo4dy759+9i7dy/NmjWjT58+hEKhSJcmSZJ0wrKDfJzavXs3t99+O3fddRcZGRlMnz6dtWvXMm3atEiXJkmSdEKzg3ycmjt3LklJSZx++ukAREdHk56eTkxMTGQLkyRJOsEZkI9TWVlZ1KhR47BlcXFxEapGkiSp+HDE4jhVrVo1vvzyy8OWbdmyhffeey9CFUmSJBUPBuTjVHJyMgsWLGDz5s0AHDx4kLS0NNauXRvhyiRJkk5sjlgcp8qUKUNaWhqDBg0iHA6zZ88ekpOT6dKlS6RLkyRJOqEZkI9jdevWZcqUKZEuQ5IkqVhxxEKSJEkKMCBLkiRJAQZkSZIkKcAZ5BPAwtRkEhISIl2GJEnSCcEOsiRJkhRgQJYkSZICDMiSJElSgAFZkiRJCvAhvRNA0/T5EBcf6TKOexvTrop0CZIk6TfADrIkSZIUYECWJEmSAgzIkiRJUoABWZIkSQowIEuSJEkBBuTvsGXLFvr06UNKSgqdOnVi2LBh5OTk8PnnnzNv3jwAUlJSWLdu3c86/s6dOxkyZMh3rr/vvvv47LPPftaxJUmS9PMZkI9i//793HLLLdxwww1kZGQwbdo06tWrx9/+9jcWL17M0qVLf/E5/vnPf9KlS5fvXN+zZ0/GjBnzi88jSZKkn8b3IB/FG2+8wXnnnUe9evUKl7Vt25Ynn3ySIUOGULlyZRo0aADAgw8+yFdffcW+ffv4xz/+QY0aNfjf//1f3nvvPcLhMD169ODKK68kJSWFihUrsnv3bsaPH8/HH3/M8OHDARgwYACbN28mNzeX66+/nhYtWlCuXDlKlizJ6tWrKVGiBE8++STDhg2LxO2QJEkqVgzIR7FlyxZOPfXUI5afdtppdO3alfXr19O8eXMmT55Ms2bNaN26NePHj+eVV17h97//PZmZmUybNo3c3Fw6duxIkyZNAGjVqhWXXXYZCxcuJDExEYCcnByWLFnCv//9bwAWLVpUeL4zzjiDd999l+7duxuOJUmSiogB+SiqVKnC8uXLj1i+ceNGLrjggsOW1a1bF4DKlSvz1VdfsXbtWlauXElKSgoAeXl5fP755wCFoXjnzp1UrlwZgDJlyjB48GAGDx5MTk4OV199deGxTz75ZLZt2/brX6AkSZK+kwH5KJo3b87EiRNZvnw55557LgAzZswgPj6eEiVKUFBQ8J371qxZk6SkJEaMGEFBQQEPPfQQCQkJAIRCIQAqVarE7t27AcjKymLlypU8+OCD5ObmFnakS5Qowa5du6hUqdIxvlpJkiQF+ZDeUcTFxTFx4kQeeughOnXqRIcOHVi2bBn/+Mc/+P3vf8/cuXN56aWXjrrvJZdcQunSpenSpQvt2rUDvu0SB9WrV481a9YA33aJt2/fTps2bejZsyfXXXcdJUp8+/eW5cuX07hxYz777DNHLCRJkopIKBwOhyNdRHE0ZMgQOnXqxNlnn33U9dnZ2QwYMICJEyd+5zEyMzNp3rw5uZcPgrj4Y1XqCWNj2lWRLkGSJB0nDuWouXPnFv5r/yF2kCOkb9++PPXUU9+5fvLkydx2221FWJEkSZLAGeSIqVSpEiNHjvzO9f369SvCaiRJknSIHWRJkiQpwIAsSZIkBThicQJYmJp8xHC5JEmSfh47yJIkSVKAAVmSJEkKMCBLkiRJAQZkSZIkKcCH9E4ATdPn+yW9/8ev5kmSpJ/LDrIkSZIUYECWJEmSAgzIkiRJUoABWZIkSQowIEuSJEkBvsXiGFmyZAn9+vWjdu3aAOzZs4eEhATuvfdeYmNjj9h+wIABtGjRgosuuqioS5UkSVKAHeRjqHHjxmRkZJCRkcGsWbOIiYlh3rx5kS5LkiRJ38OAXEQOHDhAVlYW5cuX57bbbitc3qRJk8I/P/XUU/z5z3+mW7dubNq0iWeeeYb09HQA8vPzadWqFQcOHCjy2iVJkooTA/IxtHjxYlJSUmjRogXt2rXjsssuIyrqu295w4YN+de//sVf/vIXxo4dy1VXXcXcuXPJz89nwYIFJCUlHXU8Q5IkSb8eA/IxdGjEYurUqcTExJCQkHDENuFwuPDPjRo1AqBBgwZs2LCBMmXKcN5557Fw4UJmzZpF+/bti6x2SZKk4sqAXAQqVqzI2LFjGTRoELGxsWzfvh2ArVu3smvXrsLtli9fDsD7779PnTp1AOjYsSMzZszg66+/5swzzyz64iVJkooZ32JRRGrXrk1KSgqPPvooZcuWpUOHDtSqVeuwrvKyZcvo3r07oVCI0aNHA1CvXj02bdpE165dI1W6JElSsWJAPkaSkpJISko6bNnNN9/8ndunpaUddXlBQQGlS5emZcuWv2p9kiRJOjpHLI5jW7ZsoW3btrRu3ZoyZcpEuhxJkqRiwQ7ycaxGjRo8//zzkS5DkiSpWLGDLEmSJAUYkCVJkqQARyxOAAtTk4/6jmVJkiT9dHaQJUmSpAADsiRJkhRgQJYkSZICnEE+ATRNnw9x8ZEu47iwMe2qSJcgSZJ+4+wgS5IkSQEGZEmSJCnAgCxJkiQFGJAlSZKkAAOyJEmSFGBAliRJkgJ8zVuEbdmyhbFjx/Lll19SqlQpSpUqRf/+/alTp06kS5MkSSqWDMgRtG/fPm6++WZGjBhBgwYNAFi+fDl33303GRkZEa5OkiSpeDIgR9D8+fNp3LhxYTgGOPfcc5kyZQqZmZkMHDiQvLw8QqEQgwYN4swzz4xgtZIkScWDATmCMjMzOfXUUwt/33zzzeTk5JCVlUXVqlVJSUnh0ksvZdWqVdx1113MmjUrgtVKkiQVDz6kF0GnnHIKmZmZhb8nTJhARkYG5cuX56OPPuK8884D4KyzzuLLL7+MVJmSJEnFigE5gpo3b84777zDRx99VLhs06ZNfPnll/zhD3/g/fffB2DVqlVUrlw5UmVKkiQVK45YRFBcXBwTJkzgf//3f7n33nvJy8ujRIkSjBgxglq1ajF48GAef/xx8vLyGDVqVKTLlSRJKhYMyBGWkJDAuHHjjrruiSeeKOJqJEmS5IiFJEmSFGBAliRJkgIMyJIkSVKAAVmSJEkK8CG9E8DC1GQSEhIiXYYkSdIJwQ6yJEmSFGBAliRJkgIMyJIkSVKAM8gngKbp8yEuPtJl/Oo2pl0V6RIkSVIxZAdZkiRJCjAgS5IkSQEGZEmSJCnAgCxJkiQFGJAlSZKkAAOyJEmSFGBA/n8mTZpE06ZNyc3NLZLzDRgwgLfeeuuwZZmZmXTs2LFIzi9JkqTDGZD/n9mzZ9OiRQteeumlSJciSZKkCPBDIQFLlizh1FNPpVOnTvTv35927doxdepUnnvuOaKiomjYsCGpqam89tprPPLII5QoUYLq1aszZswY9uzZw8CBA9m5cycAgwYN4owzzuCyyy6jQYMGbNq0icaNG/PNN9+wfPlyEhMTGTt2LABPPfUUjz32GPn5+YwaNYro6GgANmzYQP/+/Zk5cyYA/fr147rrruPcc8+NzA2SJEkqBuwgB8yYMYMOHTpQs2ZNYmNjWbZsGbNmzWLgwIE888wz1KhRg7y8PF588UV69OjB008/TdOmTcnJyWHixIk0btyYjIwMRowYwbBhwwDYunUr/fr148knn2TKlCl06dKFGTNm8MEHH7B7924AGjZsyL/+9S/+8pe/FIZmgMTEREqVKsVnn31GdnY2mZmZhmNJkqRjzA7yf+3atYu33nqLHTt2kJGRQU5ODk8++ST33HMPjz/+OPfeey/169cnHA7z97//nYcffpinn36amjVrcumll7J27VoWL17Myy+/DFAYfitUqEC1atUAKF26NLVr1wagbNmyhXPOjRo1AqBBgwaMGTPmsLo6dOjArFmzqFatGldffXWR3AtJkqTizID8Xy+88ALXXHMNqampAOzbt4/mzZtTpkwZhg8fTsmSJbn++uv58MMPefvtt+nTpw+VKlViyJAh/Oc//6FmzZpcffXVtGrViq+//poZM2YAEAqFfvDcy5cvp2HDhrz//vvUqVPnsHVXXHEFjz/+OBUqVOC+++779S9ckiRJhzEg/9eMGTMO696edNJJXH755VSqVIn27dtTsWJFqlSpQr169cjJyaFnz55UqFCBuLg4Lr74Yi6++GIGDhzI9OnTycnJoXfv3j/63MuWLaN79+6EQiFGjx5NOBwuXFeyZEnOO+88duzYQYUKFX7Va5YkSdKRQuFgGtNxadiwYfzP//wPf/rTnw5bnpmZSfPmzcm9fBDExUeoumNnY9pVkS5BkiSdoA7lqLlz55KQkHDYOh/SO85dd9117N+//4hwLEmSpGPDEYvj3OOPPx7pEiRJkooVO8iSJElSgB3kE8DC1OQjZmckSZL089hBliRJkgIMyJIkSVKAAVmSJEkKMCBLkiRJAQZkSZIkKcCALEmSJAUYkCVJkqQAA7IkSZIUYECWJEmSAgzIkiRJUoABWZIkSQowIEuSJEkBBmRJkiQpwIAsSZIkBRiQJUmSpIASkS5AP19+fj4AX375ZYQrkSRJ+m05lJ8O5akgA/Jv2Pbt2wHo2rVrhCuRJEn6bdq+fTunnXbaYctC4XA4HKF69Avt37+fFStWcPLJJxMdHR3pciRJkn4z8vPz2b59O3Xr1qVUqVKHrTMgS5IkSQE+pCdJkiQFGJAlSZKkAB/S+w0qKChg2LBhrFmzhtjYWEaOHHnEcLl+nmXLlnHvvfeSkZHBpk2bGDBgAKFQiDp16jB06FCioqJ44IEHeOONNyhRogR33XUX55577k/aVoc7ePAgd911F1u3buXAgQPcfPPN1K5d23tfRPLz8xk0aBAbNmwgOjqae+65h3A47P0vQl9//TXt2rXj8ccfp0SJEt77ItSmTRvKli0LQEJCAtdeey2jRo0iOjqapk2b0rt37+/8/9yPPvroR2+rIz388MPMmzePgwcP0rlzZ84///zj63/7Yf3mvPrqq+HU1NRwOBwOf/jhh+FevXpFuKITw6RJk8ItW7YMd+jQIRwOh8M33XRTePHixeFwOBwePHhw+LXXXguv+L/27j+mqXMN4Pi3rYJomcDAJY6gLcwgY4sDnC4iLsYBumxLJmFArHGCGxvzBwsKFVEQRgTcT7ZFNomySlDHxCxZlmxZMhEU1C3GACNMggyEOF0ZrPy07bl/GHvhIvfqvXdFyfP5r+c8Ped9n570PH3znr4NDYrBYFDsdrty9epV5eWXX77nWDFWZWWlkpeXpyiKopjNZmXFihWSeyf6/vvvlYyMDEVRFKWurk5JTk6W/DvRyMiI8uabbyqRkZHK5cuXJfdONDQ0pLz00ktjtr344otKe3u7YrfblaSkJKWhoWHCe+69xIqx6urqlNdff12x2WyKxWJRPvroo/vu2pcR5AfQTz/9xPLlywFYtGgRDQ0Nk9yiqcHPz4/i4mJ27NgBQGNjI08//TQAERER1NbWotPpCA8PR6VSMXfuXGw2G2az+Z5ivby8Jq2P96Po6GiioqIcrzUajeTeiVatWsWzzz4LQFdXF97e3vz444+SfycpKCggLi6Ozz77DJDvHWdqbm5mcHCQjRs3YrVa2bx5MyMjI/j5+QEQHh7O2bNnuX79+rh7rsViuetYMV5NTQ0LFiwgJSUFi8XCjh07OH78+H117csc5AeQxWJBq9U6Xms0GqxW6yS2aGqIiopi2rR//mZUFAWVSgXArFmz+Ouvv8bl/vb2e4kVY82aNQutVovFYmHLli1s27ZNcu9k06ZNIz09ndzcXKKioiT/TnLixAm8vLwcBRXI944zzZgxg8TEREpLS8nJycFoNOLm5ubYP1FONRrNhHmW+/Pd6enpoaGhgQ8//JCcnBzS0tLuu2tfRpAfQFqtlv7+fsdru90+prAT/x9q9T9/P/b39/PQQw+Ny31/fz/u7u73FCvG6+7uJiUlhYSEBF544QWKiooc+yT3zlFQUEBaWhqxsbEMDw87tkv+/z5fffUVKpWKs2fP8ssvv5Ceno7ZbHbsl9z/vXQ6HfPmzUOlUqHT6XB3d+fPP/907L+d06GhoXH33DvleaJYuT+P5+HhgV6vx8XFBb1ej6ur65hVge+Ha19GkB9AISEhVFdXA3Dx4kUWLFgwyS2amoKCgqivrwegurqasLAwQkJCqKmpwW6309XVhd1ux8vL655ixVg3btxg48aNbN++nZiYGEBy70wnT56kpKQEADc3N1QqFcHBwZJ/JygvL+fIkSOYTCYWLlxIQUEBERERknsnqaysZN++fQBcu3aNwcFBZs6cyW+//YaiKNTU1Dhy+q/3XK1Wy/Tp0+8qVowXGhrK6dOnURTFkftnnnnmvrr2ZaGQB9Dtp2RbWlpQFIX8/Hz8/f0nu1lTQmdnJ2+//TbHjx+nra2NrKwsbt68iV6vJy8vD41GQ3FxMdXV1djtdoxGI2FhYfcUK8bKy8vj22+/Ra/XO7ZlZmaSl5cnuXeCgYEBjEYjN27cwGq1smnTJvz9/eXadzKDwUB2djZqtVpy7yQjIyMYjUa6urpQqVSkpaWhVqvJz8/HZrMRHh5OamrqhPfcixcv3nWsGK+wsJD6+noURSE1NRVfX9/76tqXAlkIIYQQQohRZIqFEEIIIYQQo0iBLIQQQgghxChSIAshhBBCCDGKFMhCCCGEEEKMIgWyEEIIIYQQo0iBLIQQTlRfX09YWBjd3d2Obfv37+fEiRP/9TE7OzuJjY39fzRvHJvNRmJiIvHx8fT29v4t5xgtIyPD8T+y/4uVK1eOWfBECCHuhRTIQgjhZNOnT8doNPIg/Mvm9evX6enpoaKigtmzZ092c4QQwilk/UMhhHCypUuXYrfbKS8vZ926dY7toxeqAYiNjeW9996jqqqK9vZ2enp66O3tJSEhge+++462tjYKCgrw9vbGbDaTnJyM2WxmxYoVpKSk0N3dTVZWFsPDw7i6upKbm4vNZuONN97Aw8ODiIgINm3a5Dj/119/TVlZGS4uLsyfP5+9e/eSlZXFlStX2L17N3v37nXEGgwGdDodbW1tKIrC+++/j4+PD++++y7nz59HURQ2bNjA6tWraWpqIjc3F41G42iH3W5n69at+Pj4cO3aNSIiIkhNTXUc/+bNm+zZs4f29nbsdjvbtm1jyZIljv3vvPMOoaGhREdHk5iYyPLly9mwYQOZmZmsXbsWgOzsbDo7OwH4+OOPmTlzJjt37qSjowObzcarr77KmjVrxnw2y5Yto7a2FoDU1FTi4uKYM2cORqORadOmodFoKCws5JFHHrljX4UQU4OMIAshxCTIzs7m8OHDXLly5a7iZ8yYQWlpKZGRkZw6dYoDBw7w2muv8c033wC3VsQrKiqioqKC06dP09zcTEFBAQaDAZPJRGJiIvv37wdujQqXlpaOKY57enooLi6mrKyMiooK3N3dOXbsGHv27CEgIGBMcXxbSEgIJpOJ1atXU1JSwqlTp+js7OTo0aN88cUXHDhwgL6+Pnbt2sXu3bs5gaK9tQAABAJJREFUcuQI8fHxjuV9r169yr59+6isrKSuro7GxkbHsb/88ks8PT0pLy/n008/HXf+yMhIqqurGRoaoq+vjzNnzqAoCk1NTTz11FMArF27FpPJxKOPPkptbS3Hjh3D09OTo0ePcujQIT744APMZvN/zP2ZM2d4/PHHOXToEMnJyfT29k7YVyHE1CAFshBCTAJPT0927txJRkYGdrv9jjGjp2AEBQUB4O7uTkBAAACzZ892zLMNDAzE3d0djUbDE088QVtbGy0tLZSUlGAwGPjkk08cxaCvry8uLi5jztXR0UFAQABarRaAxYsX8+uvv/7bPixduhS4VSjfPl9jYyMGg4GkpCSsVitdXV38/vvvLFy4cNxxAwMD8fDwQKPR8OSTT9LW1uY4dktLC9XV1RgMBrZs2YLVaqWnp8exPzQ0lKamJurr64mMjMRsNnPhwgUWLVqESqUCIDg4GABvb2+GhoZobW1l8eLFAGi1Wvz9/eno6Jiwf7fzHxMTg6enJ0lJSZSXl6PRaCbsqxBiapACWQghJsnKlSvR6XRUVVUB4Orqyh9//IHNZqOvr88xPQBwFH0TaW1tpb+/H6vVyqVLl3jsscfQ6/WkpaVhMpnIyckhKioKALV6/Fe/r68vra2tDAwMAHDu3Dl0Ot2/PWdDQwMAP//8MwEBAej1epYsWYLJZKKsrIzVq1fj6+vLnDlzaG5uBuD8+fPMnz/f0ebBwUFsNhuXLl1yFP4Aer2e559/HpPJxOeff050dPSYOdBqtZrg4GAOHjxIeHg4oaGhFBUVERkZOWHO/P39uXDhAgAWi4WWlhZ8fX3HxFitVvr7+xkZGeHy5csA/PDDD4SGhlJWVkZ0dDQHDx6csK9CiKlB5iALIcQkyszMpK6uDgAfHx+WLVtGTEwMfn5+zJs3766PM3v2bFJTUzGbzaxZs4aAgADS09PJzs5meHiYoaEhMjMzJ3y/l5cXmzdvZv369ajVavz8/EhLS+P69esTvqeqqorDhw/j5uZGYWEhHh4enDt3joSEBAYGBli1ahVarZa8vDxyc3NRFAWNRkN+fj5w62HFrVu3cuPGDaKjowkMDHQcOy4ujl27drFu3TosFgsJCQnjCvvnnnsOo9FIYGAg4eHhnDx50jFCfCexsbFkZWURHx/P8PAwb731Fg8//PCYmPXr1/PKK6/g6+vL3LlzgVsj0du3b6e4uBi1Wo3RaCQoKOiOfRVCTA0q5UF4jFoIIcR9xWAwkJ2djb+//3/1/n99IFEIIe4nMsVCCCGEEEKIUWQEWQghhBBCiFFkBFkIIYQQQohRpEAWQgghhBBiFCmQhRBCCCGEGEUKZCGEEEIIIUaRAlkIIYQQQohR/gFiuykunpCXVAAAAABJRU5ErkJggg==\n", "text/plain": [ "<Figure size 720x432 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plotting\n", "\n", "languages.reverse()\n", "popularity.reverse()\n", "plt.barh(languages, popularity)\n", "# plt.ylabel(\"Programming Languages\")\n", "plt.xlabel(\"Number of people who use\")\n", "plt.title(\"Most Popular Languages\")\n", "\n", "plt.tight_layout()\n", "plt.show()" ] } ], "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.4" }, "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": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }