Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Created with ❤️ on Data Scientist Workbench (https://datascientistworkbench.com/)
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src='https://ibm.box.com/shared/static/x4sn311x4cdc1gg78oo7jtdgxa7yvhje.png' width='500'>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## <center> Analyzing Cognitive Class Survey Data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Import *pandas* and **Numpy**"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd # import pandas\n",
"import numpy as np # import Numpy\n",
"\n",
"# use the inline backend\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Download the csv file containg the survey data"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data Downloaded!\n"
]
}
],
"source": [
"!wget --quiet Cognitive_Class_Topic_Survey.csv 'https://ibm.box.com/shared/static/2sb5d31p0yz7y8vqumjpe811q40nxpgd.csv'\n",
"print 'Data Downloaded!'"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Read the data into a *pandas* dataframe"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Timestamp</th>\n",
" <th>What's your level of interest for the following technologies? [Chatbots]</th>\n",
" <th>What's your level of interest for the following technologies? [Artificial Intelligence]</th>\n",
" <th>What's your level of interest for the following technologies? [Big Data]</th>\n",
" <th>What's your level of interest for the following technologies? [Databases]</th>\n",
" <th>What's your level of interest for the following technologies? [Internet of Things]</th>\n",
" <th>What's your level of interest for the following technologies? [Blockchain]</th>\n",
" <th>What's your level of interest for the following technologies? [Data Science]</th>\n",
" <th>What's your level of interest for the following technologies? [Virtual Reality / Augmented Reality]</th>\n",
" <th>What's your level of interest for the following areas of Data Science? [Data Visualization]</th>\n",
" <th>What's your level of interest for the following areas of Data Science? [Machine Learning]</th>\n",
" <th>What's your level of interest for the following areas of Data Science? [Data Analysis / Statistics]</th>\n",
" <th>What's your level of interest for the following areas of Data Science? [Big Data (Spark / Hadoop)]</th>\n",
" <th>What's your level of interest for the following areas of Data Science? [Data Journalism]</th>\n",
" <th>What's your level of interest for the following areas of Data Science? [Deep Learning]</th>\n",
" <th>Which programming language for Data Science are you most interested in?</th>\n",
" <th>Which Data Science tool are you most interested in?</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2017/10/17 1:11:52 PM MDT</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>NaN</td>\n",
" <td>Not interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Not interested</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Python</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2017/10/17 2:26:07 PM MDT</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Not interested</td>\n",
" <td>Very interested</td>\n",
" <td>Python</td>\n",
" <td>Jupyter</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2017/10/17 2:37:08 PM MDT</td>\n",
" <td>Not interested</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Very interested</td>\n",
" <td>Not interested</td>\n",
" <td>Not interested</td>\n",
" <td>Not interested</td>\n",
" <td>Very interested</td>\n",
" <td>Not interested</td>\n",
" <td>Not interested</td>\n",
" <td>Very interested</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Very interested</td>\n",
" <td>Not interested</td>\n",
" <td>Very interested</td>\n",
" <td>SQL</td>\n",
" <td>IBM SPSS</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2017/10/17 2:39:26 PM MDT</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Very interested</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Very interested</td>\n",
" <td>Python</td>\n",
" <td>RStudio</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2017/10/17 2:43:59 PM MDT</td>\n",
" <td>Not interested</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Very interested</td>\n",
" <td>Not interested</td>\n",
" <td>Not interested</td>\n",
" <td>Not interested</td>\n",
" <td>Very interested</td>\n",
" <td>Not interested</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Very interested</td>\n",
" <td>Not interested</td>\n",
" <td>Somewhat interested</td>\n",
" <td>Python</td>\n",
" <td>IBM Data Science Experience</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Timestamp \\\n",
"0 2017/10/17 1:11:52 PM MDT \n",
"1 2017/10/17 2:26:07 PM MDT \n",
"2 2017/10/17 2:37:08 PM MDT \n",
"3 2017/10/17 2:39:26 PM MDT \n",
"4 2017/10/17 2:43:59 PM MDT \n",
"\n",
" What's your level of interest for the following technologies? [Chatbots] \\\n",
"0 Very interested \n",
"1 Very interested \n",
"2 Not interested \n",
"3 Somewhat interested \n",
"4 Not interested \n",
"\n",
" What's your level of interest for the following technologies? [Artificial Intelligence] \\\n",
"0 Very interested \n",
"1 Very interested \n",
"2 Somewhat interested \n",
"3 Very interested \n",
"4 Somewhat interested \n",
"\n",
" What's your level of interest for the following technologies? [Big Data] \\\n",
"0 NaN \n",
"1 Somewhat interested \n",
"2 Very interested \n",
"3 Very interested \n",
"4 Very interested \n",
"\n",
" What's your level of interest for the following technologies? [Databases] \\\n",
"0 Not interested \n",
"1 Somewhat interested \n",
"2 Not interested \n",
"3 Very interested \n",
"4 Not interested \n",
"\n",
" What's your level of interest for the following technologies? [Internet of Things] \\\n",
"0 Very interested \n",
"1 Very interested \n",
"2 Not interested \n",
"3 Somewhat interested \n",
"4 Not interested \n",
"\n",
" What's your level of interest for the following technologies? [Blockchain] \\\n",
"0 Very interested \n",
"1 Very interested \n",
"2 Not interested \n",
"3 Somewhat interested \n",
"4 Not interested \n",
"\n",
" What's your level of interest for the following technologies? [Data Science] \\\n",
"0 Very interested \n",
"1 Very interested \n",
"2 Very interested \n",
"3 Very interested \n",
"4 Very interested \n",
"\n",
" What's your level of interest for the following technologies? [Virtual Reality / Augmented Reality] \\\n",
"0 Very interested \n",
"1 Very interested \n",
"2 Not interested \n",
"3 Somewhat interested \n",
"4 Not interested \n",
"\n",
" What's your level of interest for the following areas of Data Science? [Data Visualization] \\\n",
"0 Very interested \n",
"1 Very interested \n",
"2 Not interested \n",
"3 Very interested \n",
"4 Somewhat interested \n",
"\n",
" What's your level of interest for the following areas of Data Science? [Machine Learning] \\\n",
"0 Very interested \n",
"1 Very interested \n",
"2 Very interested \n",
"3 Very interested \n",
"4 Very interested \n",
"\n",
" What's your level of interest for the following areas of Data Science? [Data Analysis / Statistics] \\\n",
"0 Somewhat interested \n",
"1 Very interested \n",
"2 Somewhat interested \n",
"3 Very interested \n",
"4 Very interested \n",
"\n",
" What's your level of interest for the following areas of Data Science? [Big Data (Spark / Hadoop)] \\\n",
"0 Not interested \n",
"1 Somewhat interested \n",
"2 Very interested \n",
"3 Very interested \n",
"4 Very interested \n",
"\n",
" What's your level of interest for the following areas of Data Science? [Data Journalism] \\\n",
"0 Somewhat interested \n",
"1 Not interested \n",
"2 Not interested \n",
"3 Somewhat interested \n",
"4 Not interested \n",
"\n",
" What's your level of interest for the following areas of Data Science? [Deep Learning] \\\n",
"0 Somewhat interested \n",
"1 Very interested \n",
"2 Very interested \n",
"3 Very interested \n",
"4 Somewhat interested \n",
"\n",
" Which programming language for Data Science are you most interested in? \\\n",
"0 Python \n",
"1 Python \n",
"2 SQL \n",
"3 Python \n",
"4 Python \n",
"\n",
" Which Data Science tool are you most interested in? \n",
"0 NaN \n",
"1 Jupyter \n",
"2 IBM SPSS \n",
"3 RStudio \n",
"4 IBM Data Science Experience "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"survey_data = pd.read_csv('/resources/Cognitive Class Topic Survey.csv')\n",
"survey_data.head() # display the first 5 rows in the dataframe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Next, process the data as follows:\n",
"\n",
"<ol>\n",
" <li> Create a list, called *questions*, that contains the survey questions.</li>\n",
" <li> Create a dictionary, called *survey_dictionary*, that contains each question as a key.</li>\n",
" <li> The value of each key, or question, is another dictionary whose keys are the choices and the number of times each choice was selected by the respondents.</li>\n",
"</ol>"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true,
"scrolled": false
},
"outputs": [],
"source": [
"columns_labels = survey_data.columns # the column labels of the survey data dataframe\n",
"\n",
"questions = [] # list of questions\n",
"survey_dictionary = {} # dictionary of survey data\n",
"\n",
"for item in columns_labels[1:]:\n",
" question = item.split('[')[0].strip() # extract the question from the column label\n",
" \n",
" # if the question does not exist in the list of questions, add it to the list\n",
" if question not in questions:\n",
" questions.append(question)\n",
" \n",
" # Questions 1 and 2 of the survey have multiple answers per choice whereas in questions 3 amd 4,\n",
" # respondents could select only the choices. Questions 3 and 4 also had an open-ended choice.\n",
" \n",
" # try block to process questions 1 and 2.\n",
" try:\n",
" choice = item.split('[')[1][:-1] # extract the choice from the column label\n",
" \n",
" # if question already exists in dictionary then simply add the choice to the survey dictionary\n",
" try:\n",
" survey_dictionary[question][choice] = {}\n",
" \n",
" # else add question to dictionary first then add choice\n",
" except:\n",
" survey_dictionary[question] = {}\n",
" survey_dictionary[question][choice] = {}\n",
" \n",
" answers = survey_data[item] # get the choice responses\n",
" answers_counts = answers.value_counts() # get the counts\n",
" \n",
" # add the choices to the survey dictionary along with the number times each choice was selected\n",
" for (answer, num_answers) in answers_counts.iteritems():\n",
" survey_dictionary[question][choice][answer] = num_answers\n",
" \n",
" # except block to handle questions 3 and 4\n",
" except:\n",
" survey_dictionary[question] = {}\n",
" \n",
" answers = survey_data[item] # get the choice responses\n",
" \n",
" # for each question, create a list that contains the choices provided in the survey\n",
" if question == 'Which Data Science tool are you most interested in?':\n",
" choices = ['Spark / Hadoop', 'RStudio', 'IBM Data Science Experience', 'Anaconda', 'Jupyter', 'IBM SPSS', 'Apache Zeppelin']\n",
" else:\n",
" choices = ['Python', 'R', 'SQL', 'Java', 'Scala', 'JavaScript', 'Julia']\n",
" \n",
" # lump all open-ended answers into Other\n",
" answers_replaced = answers\n",
" answers_replaced[~answers_replaced.isin(choices)] = 'Other'\n",
" \n",
" answers_counts = answers_replaced.value_counts() # get the counts\n",
" \n",
" # add the choices to the survey dictionary along with the number times each choice was selected\n",
" for (answer, num_answers) in answers_counts.iteritems():\n",
" survey_dictionary[question][answer] = num_answers"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Let's take a look at the survey dictionary that we just created"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"{\"What's your level of interest for the following areas of Data Science?\": {'Big Data (Spark / Hadoop)': {'Not interested': 127,\n",
" 'Somewhat interested': 729,\n",
" 'Very interested': 1332},\n",
" 'Data Analysis / Statistics': {'Not interested': 60,\n",
" 'Somewhat interested': 444,\n",
" 'Very interested': 1688},\n",
" 'Data Journalism': {'Not interested': 610,\n",
" 'Somewhat interested': 1081,\n",
" 'Very interested': 429},\n",
" 'Data Visualization': {'Not interested': 102,\n",
" 'Somewhat interested': 734,\n",
" 'Very interested': 1340},\n",
" 'Deep Learning': {'Not interested': 136,\n",
" 'Somewhat interested': 770,\n",
" 'Very interested': 1263},\n",
" 'Machine Learning': {'Not interested': 74,\n",
" 'Somewhat interested': 477,\n",
" 'Very interested': 1629}},\n",
" \"What's your level of interest for the following technologies?\": {'Artificial Intelligence': {'Not interested': 86,\n",
" 'Somewhat interested': 545,\n",
" 'Very interested': 1554},\n",
" 'Big Data': {'Not interested': 47,\n",
" 'Somewhat interested': 496,\n",
" 'Very interested': 1665},\n",
" 'Blockchain': {'Not interested': 469,\n",
" 'Somewhat interested': 897,\n",
" 'Very interested': 753},\n",
" 'Chatbots': {'Not interested': 697,\n",
" 'Somewhat interested': 890,\n",
" 'Very interested': 522},\n",
" 'Data Science': {'Not interested': 55,\n",
" 'Somewhat interested': 338,\n",
" 'Very interested': 1814},\n",
" 'Databases': {'Not interested': 203,\n",
" 'Somewhat interested': 865,\n",
" 'Very interested': 1093},\n",
" 'Internet of Things': {'Not interested': 249,\n",
" 'Somewhat interested': 871,\n",
" 'Very interested': 1037},\n",
" 'Virtual Reality / Augmented Reality': {'Not interested': 568,\n",
" 'Somewhat interested': 917,\n",
" 'Very interested': 621}},\n",
" 'Which Data Science tool are you most interested in?': {'Anaconda': 247,\n",
" 'Apache Zeppelin': 48,\n",
" 'IBM Data Science Experience': 317,\n",
" 'IBM SPSS': 136,\n",
" 'Jupyter': 233,\n",
" 'Other': 102,\n",
" 'RStudio': 357,\n",
" 'Spark / Hadoop': 793},\n",
" 'Which programming language for Data Science are you most interested in?': {'Java': 171,\n",
" 'JavaScript': 81,\n",
" 'Julia': 15,\n",
" 'Other': 67,\n",
" 'Python': 1050,\n",
" 'R': 468,\n",
" 'SQL': 277,\n",
" 'Scala': 104}}"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"survey_dictionary"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Next, let's create bar charts to visualize the respones for each question."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Visualizing Responses to Question on Technologies"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Let's retrieve the data pertaining to Question 1 and transform it in a *pandas* dataframe"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Very interested</th>\n",
" <th>Somewhat interested</th>\n",
" <th>Not interested</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Artificial Intelligence</th>\n",
" <td>1554</td>\n",
" <td>545</td>\n",
" <td>86</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Big Data</th>\n",
" <td>1665</td>\n",
" <td>496</td>\n",
" <td>47</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Blockchain</th>\n",
" <td>753</td>\n",
" <td>897</td>\n",
" <td>469</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Chatbots</th>\n",
" <td>522</td>\n",
" <td>890</td>\n",
" <td>697</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Data Science</th>\n",
" <td>1814</td>\n",
" <td>338</td>\n",
" <td>55</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Databases</th>\n",
" <td>1093</td>\n",
" <td>865</td>\n",
" <td>203</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Internet of Things</th>\n",
" <td>1037</td>\n",
" <td>871</td>\n",
" <td>249</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Virtual Reality / Augmented Reality</th>\n",
" <td>621</td>\n",
" <td>917</td>\n",
" <td>568</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Very interested Somewhat interested \\\n",
"Artificial Intelligence 1554 545 \n",
"Big Data 1665 496 \n",
"Blockchain 753 897 \n",
"Chatbots 522 890 \n",
"Data Science 1814 338 \n",
"Databases 1093 865 \n",
"Internet of Things 1037 871 \n",
"Virtual Reality / Augmented Reality 621 917 \n",
"\n",
" Not interested \n",
"Artificial Intelligence 86 \n",
"Big Data 47 \n",
"Blockchain 469 \n",
"Chatbots 697 \n",
"Data Science 55 \n",
"Databases 203 \n",
"Internet of Things 249 \n",
"Virtual Reality / Augmented Reality 568 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"technologies_data = survey_dictionary[questions[0]] # get the data pertaining to question 1 from the survey dictionary\n",
"\n",
"# convert the dictionary into a pandas dataframe\n",
"technologies_data = pd.DataFrame.from_dict(technologies_data, orient='index') \n",
"technologies_data # display the resulting dataframe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Next, let's sort the dataframe in descending order of 'Very interested' and shorten some of the long choices"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Very interested</th>\n",
" <th>Somewhat interested</th>\n",
" <th>Not interested</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Data Science</th>\n",
" <td>1814</td>\n",
" <td>338</td>\n",
" <td>55</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Big Data</th>\n",
" <td>1665</td>\n",
" <td>496</td>\n",
" <td>47</td>\n",
" </tr>\n",
" <tr>\n",
" <th>AI</th>\n",
" <td>1554</td>\n",
" <td>545</td>\n",
" <td>86</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Databases</th>\n",
" <td>1093</td>\n",
" <td>865</td>\n",
" <td>203</td>\n",
" </tr>\n",
" <tr>\n",
" <th>IoT</th>\n",
" <td>1037</td>\n",
" <td>871</td>\n",
" <td>249</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Blockchain</th>\n",
" <td>753</td>\n",
" <td>897</td>\n",
" <td>469</td>\n",
" </tr>\n",
" <tr>\n",
" <th>VR / AR</th>\n",
" <td>621</td>\n",
" <td>917</td>\n",
" <td>568</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Chatbots</th>\n",
" <td>522</td>\n",
" <td>890</td>\n",
" <td>697</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Very interested Somewhat interested Not interested\n",
"Data Science 1814 338 55\n",
"Big Data 1665 496 47\n",
"AI 1554 545 86\n",
"Databases 1093 865 203\n",
"IoT 1037 871 249\n",
"Blockchain 753 897 469\n",
"VR / AR 621 917 568\n",
"Chatbots 522 890 697"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# sort the dataframe in descending order of 'Very interested'\n",
"technologies_data_sorted = technologies_data.sort_values('Very interested', ascending=False)\n",
"\n",
"# shorten the names of the choices: \n",
"# Artificial Intelligence to AI\n",
"# Internet of Things to IoT\n",
"# Virtual Reality / Augmented Reality to VR / AR\n",
"technologies_data_sorted.index.values[2] = 'AI'\n",
"technologies_data_sorted.index.values[4] = 'IoT'\n",
"technologies_data_sorted.index.values[6] = 'VR / AR'\n",
"\n",
"technologies_data_sorted # view the sorted dataframe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Before we attempt to generate the bar plot, let's write a function to generate the plot so we can use it for the other questions as well"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's call the function **generate_bar_plot** and define it to take as parameters:\n",
"1. dataframe: a dataframe of the data to be plotted.\n",
"2. num_respondents: the total number of respondents who completed the survey.\n",
"3. bar_width: a float that specifies the width of each bar.\n",
"4. bar_colors: a list that specifies the color of each bar.\n",
"5. title: a string that represents the title of the plot."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def generate_bar_plot(dataframe, num_respondents, bar_width, bar_colors, title):\n",
" \n",
" # convert the number of respondents into percentages using the total number of respondents\n",
" dataframe_sorted = (dataframe.divide(num_respondents) * 100).round(decimals=2)\n",
" \n",
" # plot the bar chart \n",
" ax = dataframe_sorted.plot(kind='bar', figsize=(20, 8), width=bar_width, color=bar_colors, fontsize=14)\n",
" \n",
" # remove the plot left, top, and right borders\n",
" ax.spines['right'].set_visible(False)\n",
" ax.spines['top'].set_visible(False)\n",
" ax.spines['left'].set_visible(False)\n",
"\n",
" ax.xaxis.set_ticks_position('bottom')\n",
" ax.yaxis.set_ticks([])\n",
" \n",
" ax.legend(fontsize=14) # set the font size of the legend\n",
"\n",
" # use the bar height and width to add the percentage value that each bar represents\n",
" bars = ax.patches\n",
" bar_labels = dataframe_sorted.transpose().as_matrix().flatten()\n",
"\n",
" for bar, label in zip(bars, bar_labels):\n",
" bar_height = bar.get_height()\n",
" ax.text(bar.get_x() + bar.get_width()/2, bar_height + 1, label, ha='center', va='bottom', fontsize=12)\n",
"\n",
" # add a title to the bar plot\n",
" ax.set_title(title, fontsize=16)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Let's generate a grouped bar plot for the responses to Question 1"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABHEAAAI2CAYAAADXZRSvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmcTfUfx/H314wxM8bYxpiMGEvWIkrpRxlkq6RCiTCy\ni0JK9q2USqWEsm9tlmTJHmNKhTKyjDIyhEFjyzZZ5vz+OHdud1YzDOPyej4e98E953u+2zn3cj73\n+/0eY1mWAAAAAAAAcGPLkd0VAAAAAAAAwOURxAEAAAAAAHADBHEAAAAAAADcAEEcAAAAAAAAN0AQ\nBwAAAAAAwA0QxAEAAAAAAHADBHEA4AZjjAkzxlgur1PGmC3GmO7GGM/srt/VMMaEGmOGGmNuin9/\njDEPGGN+NsaccZyru9NIl/ycnjfG7DbGjDTGeF/vemcHx7m3jDGh17CMMGPM81dwXEhG6ua4dq0r\n+Rxead2up8zUMSvPpzEmJtnnI9XX1ZaTSrmHjDGTsjrfDJT7hTFm5zXMv5yjz1pcqzIAANnHrW8G\nAOAm11zSfkn+jr9/JClQ0uDsrNRVCpU0RNLrkhKytypZYrKkc5IaSzor6Y/LpE88p3kkPSmpn+Pv\nPa5hHW8lYbL/bzMlm+uRmjDduHVLFKaM1/FXSQ9I2pEF5T4pKZfL+3GSPCR1zoK8b0Uxss/Nrmyu\nBwDgGiCIAwA3rkjLsqIdf19hjCkt6SVdZRDHGOMhyViWdfFqK3grc4wmKivpDcuyvsvgYa7ndKUx\n5g5JzxtjXrIs62YIauE6Msbksizr3+wo27KsfyT9lEV5bXZ9b4z5R5KnZVlZkv+txrKseGXRuQEA\n3HhuiuHsAHCL2CjJ3xgTmLjBGNPJMdUq3hgTZ4yZbIwp4HqQY1j9G8aY14wxeySdl3SXY18hY8w4\nY8xfxph/HX/ONMbkcjm+sjFmoTHmuDHmnDHmB2PMg8nKmGaM2W+MqWKMiTDGnDXG7DLGdHFJM1T2\nKBxJupB8ioQxZpgx5ldjzD+OtnxnjKmevBOMMVUdZZxz1Le/41grWTpPY0w/Y8xOR9sOGmNGZ2T6\nkjHG3xgz1nHMv8aY340xvYwxxrE/TNIl2f+ODnK0JeZy+abiV0m+kgKSlV/CGDPbGPO3o/xIY8yT\nydKUMcZ8bYw54jj/+4wxcxKn+rhMd2nqOD/HHX072xhTMDPtTZbf4460cY7XLGNMvmT5FTLGfOYo\n74QxZoakJGlc0j5ljPnJcc2ccLShWLI0MY5yWhhjoow9fW2TMaamS5q1kmpJqmH+m4Kz1rEvyBgz\n3aV9scaYxcbls3SlrrZujv0ZOd+JU7nuNMYsN8aclvRVJvuxpTFmszHmtOPcbDXGdM5IHVNpd4rp\nVMaYtcaY740xDxv7s3zWGLMteVuuljHmHsf5O2Hs74F1xpgHUkn3sDFmtaOtpx392iaVdG0c1/wZ\nY0+PvD/Z/i+MMdHGmGrGmPWOdv1hUpl6ZoypYYxZ48jrtDFmhTGmagbaVNRxDRw19uc50hjzTCrp\nGpn/vvP/cNQ9yfQsk8Z0Kkd/rHXU67QxZokxpnyyNI85rqPEPosyxrx2ufoDAK4fRuIAgPsoITtw\ncFqSjDFvSXpZ0oeSXpEULHua0p3GmP9ZlnXJ5dgwSX9K6iPpjKSDxpj8ktZLKuA47jfZ07WaSPKS\n9K/j5iNC0mZJHWVPGeoiaZWjjF9cyvCX9JmkDyQNl9RO0nhjzO+WZa2RNElSUUntJdV0tMVVsKT3\nZU83yi3pOUnrjDH3WJa11dHmAEmrJR2U1FZ2QKqXpJBU+muW7GlOoxztLC9phCNt01R7WM4RNksk\nVZU96mmrpEclvSepkKT+jv01JX0ve0rVJElXMiIiRNJJSUddyr9d0s+Sjjja9rekZyTNM8Y8YVnW\nQkfSJZKOS+oqKU52/z2ilD/QfCBplaRnJd0haaSkIpJqZ6K9rsZIWiyppeyRSG/LPpdtXdLMl1TZ\ncewuR/0/St54Ywf5xkuaKvuaySNpqKRwY0wly7JOuSR/0FHeIEnxss/lYmNMiGVZJyR1k33OXafh\n/OP4c6ak4rI/J39JKiypruwAmizLipHkDFhdgSuuWybOd6JvZF9zo+SYkpiRfnQElWbpv++LHJLK\n6b/gWnr9lxmlZF8jb8q+Ll+WNMcYU85lFNoVM3Zgd43skSbtZfd3d0nfGWPuc/mueFrS55LWyv7u\nOio7eF08WZYPS6ooe2rjRUlvSFriOHenXdIVlDRD0mhJ+yR1kjTZGBNlWdaPjjLvlfSdpEhJbWT3\ncX/Z32PVLMuKSqNN/rK/Z30kvSr7+62dpC+MMd6WZU13pLtb0kJH2qdlX79DZH9fnr1Mvz0laY6k\nr2V/dj0cbV7nuEZijTHlZH92P3Pke1H2d8bt6eUNALjOLMvixYsXL1430Et2wMWSfVPoKSm/7Juq\n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\n1bZtW8XHx2vRokXONMeOHdM333yT6SceDxs2TE2bNtWWLVv01FNPKSwsTPv375enp6d+/PFHSfY0\nptjYWM2ZM0eSNH78eA0ePFivv/66oqKi9Pbbb+v111/XJ598kiTvIUOGqEmTJtq6dau6dOmiAwcO\nqFatWqpSpYo2bdqklStX6sSJE3ryySedAaAWLVro9ttv14YNG7R582YNHjxY3t7eKlGihL766itJ\n0u+//67Y2Fi99957kqR+/fppxowZGj9+vHbs2KG+ffuqffv2Wr58uSTp1KlTevTRR1W2bFn98ssv\nGjlypPr06ZOpfrrZue0jxgEAAAAAuFrt27fXqFGjtGrVKtWvX1+SPZWqfv36uv322yVJn332mXLm\nzKlJkybJGHv92YkTJyogIEBLly51jqo5f/68Zs6cqUKFCjnzb9mypaZMmeJMM3v2bBUsWFANGzbM\nVD3DwsLUsmVLSdIbb7yhDz/8UN9//71atGihgIAASVLBggUVFBTkPOb111/X6NGj1bRpU0lSiRIl\ntGvXLo0bN05dunRJUsfnn3/e+b5///669957nU9tlqRp06YpMDBQmzdvVtWqVbVv3z4NHDhQ5cqV\nkySVLl3amTZ//vySpMDAQOXLl0+SHaAZM2aM1qxZowceeMBZn59++kkff/yxGjRooJkzZ8qyLE2Z\nMkW+vr6qWLGi+vXr5wymgSAOAAAAAOAWdscdd6hWrVqaMmWK6tevr4MHD2r58uX64osvnGl++eUX\nRUdHK0+ePEmOPXv2bJIpVcWLF08SwJGkjh076v7771dsbKxuu+02TZkyRWFhYfLw8MhUPStVquT8\nu5eXlwICAnTkyJE008fGxurgwYNq3769Onbs6Nx+8eLFFGXfe++9Sd7/8ssvWrNmjfz8/FLku3v3\nblWtWlW9e/dWWFiYpk6dqjp16qhZs2YqU6ZMmvXZtm2b/v33X+dUq0QXLlxwBoCioqJUuXLlJOsB\nJQZ8YHO7IM71fjzd5dwMj68DAAAAgFtZYqDj2LFjmjZtmgoUKKAmTZo49yckJOiee+7R7NmzUxxb\nsGBB599z586dYv8999yju+66S9OnT1eDBg20ZcsWzZ07N9N1zJkzZ5L3xpgkU8CSS9w3ceJE3X//\n/SmOdZW83gkJCWrcuLFGjRqVIt/EkT4jRoxQ69at9e2332rFihUaOnSoJk6cqLZt26ZbnyVLlig4\nODjJPi8vrzTbgaTcLogDAAAAAEBWatasmXr06KFZs2ZpypQpatOmTZKgSdWqVTVv3jwFBgbK398/\n0/l37NhRY8aM0YEDB/TQQw+pVKlSWVl9ZxDk0qVLzm1FihRR4cKF9eeff6pVq1aZyq9q1ar65ptv\nFBISIk/PtMMGZcqUUZkyZdSzZ0917NhRkydPVtu2bVOtz5133ikvLy/t27dPtWrVSjW/8uXL67PP\nPtO5c+fk4+MjSfrpp58yVfebHQsbAwAAAABuaT4+PmrZsqWGDh2q3bt3p1h0uHXr1s7ROREREdqz\nZ4/Cw8PVq1cv/fnnn5fNv1WrVtq/f78+/fTTTC9onBFBQUHKlSuXli1bpsOHD+uff/6RMUZDhw7V\nm2++qTFjxuj333/Xtm3bNH369FRH2Ljq0aOH4uLi9Oyzz2rDhg36888/tXLlSnXo0EHnzp3T6dOn\n1aNHD4WHh2vv3r368ccf9cMPP6hChQqS7Gllkj3q5u+//9bp06eVN29e9erVS7169dK0adO0e/du\nbd68WePGjdOkSZMkSc8995wke2TUjh07tHz5cr355ptZ3l/ujJE4AAAAAIBrxl2WoOjQoYPGjx+v\n//3vfypfvnySfX5+foqIiNBrr72mpk2b6uTJkwoODladOnWcC/emJ2/evGratKkWLlyoZs2aZXnd\nvby8NGbMGL3++usaPHiwateurVWrVqlLly7y8/PT6NGj1bdvX+diwT169Eg3v6JFi+qHH35Qv379\n1KBBA8XHx6tYsWJq0KCBcubMKWOM4uLi1KZNGx06dEgFCxZU48aN9e6770qygzhDhgzRq6++qrCw\nMD3//POaNGmS3nzzTQUFBWnUqFHq1KmT8ubNqypVqqhv376SJH9/fy1evFhdu3ZVlSpVVL58eb39\n9ttJprbd6kzi48EyKFOJrwXWxAEAAACAG09UVFSK4Af+U69ePZUuXVrjx4/P7qogm1zmM2LS2uGK\nkTgAAAAAAFwjx44dU3h4uL777jt9+OGH2V0duDmCOAAAAAAAXCOVKlXSqVOnNGrUKEYq4aoRxAEA\nAAAA4BrZv39/dlcBNxGeTgUAAAAAAOAGCOIAAAAAAAC4AYI4AAAAAAAAboAgDgAAAAAAgBsgiAMA\nAAAAAOAGCOIAAAAAAAC4AR4xDgAAAAC4Zp4L33Ndy5tVq8R1Le9GEhYWpri4OC1evPi6lGeM0Zw5\nc9SsWbPrUt6NbNOmTapWrZr27NmjkJCQa1YOI3EAAAAAALesv//+W926dVNISIhy5cqlwoULq27d\nulq5cmV72igqAAAgAElEQVR2Vy1bxMTEyBijTZs2XTZtbGysGjdunOG8165dK2OM4uLirqaKWWba\ntGny8/PL7mpkCiNxAAAAAAC3rKZNm+rs2bOaPHmySpcurSNHjig8PFxHjx7N7qrd8IKCgrKt7AsX\nLihnzpzZVn52YSQOAAAAAOCWdOLECUVEROitt95S3bp1Vbx4cVWrVk19+vRRixYtnOmOHz+utm3b\nKn/+/PLx8dHDDz+s7du3O/cnjuhYunSpypUrJ19fXz3++OM6efKk5s6dqzvuuEN58+ZV69atde7c\nOedxlmXp7bffVqlSpeTj46O77rpLs2bNcu5v0aKFunTp4nw/cOBAGWP0008/ObfdfvvtSY6RpDFj\nxig4OFj58+dXu3btdPbsWee+ZcuW6cEHH1T+/PlVoEABNWjQQFFRUc79JUrY09GqVasmY4xCQ0PT\n7D9jjObOnSvpvxE88+bNU7169eTr66sKFSo4RzTFxMSodu3akqRChQrJGKOwsLAM9UNi3p9//rnq\n1KkjHx8fffLJJ5Kk9evXq1atWvL19VVwcLC6du2qf/75x3nsunXrVL16dfn5+Slv3ry67777tG3b\nNq1du1bt2rXTmTNnZIyRMUZDhw6VJJ0/f159+/ZV0aJF5evrq2rVqmn58uVJ2r5s2TKVK1dO3t7e\nevDBB/XHH3+k2U9ZiSAObjp+fn5JXh4eHurRo0eKdMOHD5cxRqtWrUozr5CQEPn4+Djzql+/fpL9\nf/75px577DHlyZNHAQEBevXVV7O8PQAAAACujcT/5y9cuFDx8fFppgsLC9PPP/+sb775Rhs2bJCv\nr68aNmyYJCDz77//avTo0Zo9e7ZWr16tTZs2qWnTppo+fbrmzZunBQsWaPHixRo3bpzzmIEDB2ry\n5Mn6+OOPtWPHDvXr10+dO3fWkiVLJEmhoaFau3atM/3atWsVEBDg3BYdHa39+/cnCbRERERo27Zt\nWrVqlb788kt9/fXXGjNmjHP/mTNn1LNnT23YsEFr165V3rx51bhxY50/f16StGHDBkl2kCI2Nlbz\n58/PVJ8OGDBAL774orZs2aJq1aqpRYsWOn36tG6//XbNmzdPkrR9+3bFxsY663W5fkjUr18/devW\nTTt27NATTzyhrVu3qn79+nr88ce1ZcsWzZ8/X5GRkXr++eclSRcvXlSTJk1Us2ZNbdmyRT///LN6\n9uwpDw8P/e9//9MHH3wgX19fxcbGKjY2Vn369JEktWvXTuHh4frss8+0bds2tW3bVo0bN9aWLVsk\nSX/99ZeeeOIJ1atXT5GRkerRo8d1uxdkOhVuOqdPn07y96CgIDVv3jxJmt27d2vOnDm67bbbLpvf\nokWL9PDDD6fYfv78edWrV08vvPCCvvzyS3l4eFy36CsAAACAq+fp6alp06apY8eO+vTTT1WlShXV\nqFFDzZs31/333y9J2rVrlxYuXKjw8HA99NBDkqSZM2eqWLFimj17tjp06CDJDhh8/PHHKlu2rCSp\nZcuWev/993X48GEFBARIkpo0aaI1a9bo5Zdf1pkzZ/Tee+9pxYoVevDBByXZo2A2bNigjz/+WI8+\n+qhCQ0PVtWtXxcbGKm/evNq4caOGDx+u7777Tq+99prWrl2rUqVKqWjRos42+fv7a8KECfLw8FD5\n8uXVvHlzrV69Wv369ZNkTx9zNXXqVPn7+2vDhg2qWbOmChUqJEkqWLDgFU2X6tWrl3OdnJEjR2rG\njBmKjIxUzZo1VaBAAUlSYGCgs08y0g+JevTokWQR5f79++uZZ57Ryy+/7Nw2fvx4ValSRUeOHJGn\np6dOnDihxo0bq1SpUpKkcuXKOdPmzZtXxpgk7dy9e7c+//xzxcTEqFixYpKk7t27a9WqVfrkk080\nbtw4jR8/XsWKFdOHH34oY4zKlSunP/74Q4MGDcp0f2UWI3FwU5s3b54CAwOdXwaJXnjhBY0aNUpe\nXl5XnPe0adNUpEgR9e7dW7lz55a3t7cqVap0tVUGAAAAcB01bdpUBw8e1KJFi9SoUSOtX79e1atX\n18iRIyVJUVFRypEjhx544AHnMXnz5tVdd92lHTt2OLflypXLGcCRpMKFCysoKMgZrEjcduTIEUnS\njh07FB8fr4YNGyaZSTB+/Hjt3r1bkh1wCAoK0tq1a7V+/XqVKlVKzzzzjH744QdduHBBa9euTTHd\nqUKFCvLw8HC+L1KkiLNMyQ5StGzZUqVKlZK/v78KFy6shIQE7du3Lwt6U0nuiYoUKSJJScpPLiP9\nkOjee+9N8v6XX37RrFmzkhxXo0YNZzsLFCigsLAwNWjQQI8++qjee++9y7bz119/lWVZqlChQpJ8\nlyxZ4qxPVFSUqlevLmOM8zjX6+NaYiQObmrTp09XmzZtkny45syZo1y5cumRRx7JUB6tWrVSQkKC\nqlSponfeeUeVK1eWJP30008KCQlRo0aNtHHjRt1555366KOPdNddd12TtgAAAAC4Nry9vVWvXj3V\nq1dPgwcPVocOHTR06FDn9Jq0uN5neHp6ptiXfOFdY4wSEhIkyfnnokWLnCM+ErkeV6tWLa1Zs0aB\ngYGqXbu2QkJCFBAQoI0bNyo8PFxvvvlmmscmL1OSHnvsMRUtWlSffPKJgoOD5enpqQoVKjinU10t\n1/IT+8e1/OQy2g+SlDt37hTHdujQQb169UqRb3BwsCR7pFHPnj21bNkyLVy4UAMGDNCCBQvUoEGD\nNOtjjNHGjRtTlO/j45NmO64Xgji4ae3du1fh4eGaPHmyc9upU6fUv3//DD8ucPbs2apataosy9KY\nMWPUoEED7dy5U/ny5dP+/fu1Zs0aLVy4UHXr1tWYMWPUpEkT7dy586pG+AAAAADIXhUqVNDFixcV\nHx+v8uXLKyEhQT/++KNzOtU///yjrVu3ql27dldVRq5cubR3717VqVMnzXShoaEaPXq0ChcurJde\nesm5beLEiSnWw7mco0ePaufOnRo3bpxzkeFff/1VFy9edKZJvJe5dOnSFbQqfanlndF+SE3VqlW1\nfft2lS5dOt10lStXVuXKldW3b181atRI06dPV4MGDeTl5ZWinVWqVJFlWTp06JCzj5IrX7685s2b\nJ8uynIEq18WmryWmU+GmNXPmTNWsWdO5urokDR06VK1bt1ZISEiG8qhRo4Z8fHzk6+urfv36KV++\nfIqIiJBkR2Fr1qypRo0aycvLS3369NHRo0eTrOwOAAAA4MZ19OhR1alTR7NmzdJvv/2mPXv2aM6c\nOXr77bdVt25d+fv764477lCTJk3UuXNnRUREaOvWrXruuefk7++vli1bXnHZefLkUZ8+fdSnTx9N\nmTJF0dHRioyM1IQJE/Tpp58604WGhio6OlobNmxwBmxCQ0M1a9asFOvhXE7+/PkVEBCgiRMnKjo6\nWuHh4erSpUuSUUSBgYHy8fHR8uXLdfjwYZ08efKK25hc8eLFZYzRkiVL9Pfff+v06dMZ7ofU9O3b\nVxs2bFCXLl20efNmRUdHa/HixercubMkac+ePXrttde0fv167d27V2vWrNFvv/2mChUqSLIfZBMf\nH6+VK1cqLi5OZ8+eVZkyZdSqVSuFhYVp7ty5+vPPP7Vp0ya9++67zkWeu3TpopiYGPXs2VO///67\n5s6dqwkTJmRZP6WHkTi4ac2YMUOvvfZakm2rV6/W/v37nSvC//3333r66afVt29f9e3b97J5GmNk\nWZYke67nDz/8kPUVBwAAAG4is2qVuHyibOLn56fq1atrzJgxio6O1r///qvg4GC1bNlSAwcOdKZL\nnJLz+OOPKz4+XjVq1NCyZcuuenrNiBEjVLhwYb377rvq2rWr/P39dffddyd50lHiujgFCxZ0Ljoc\nGhqqixcvZmoUjiTlyJFDX375pV588UXdeeedKl26tEaPHp1ksWNPT099+OGHGj58uIYNG6YHH3ww\nyROyrkZwcLCGDRumAQMGqEOHDmrTpo2mTZuWoX5ITaVKlbRu3ToNHDhQtWrV0qVLl1SyZEk9+eST\nkiRfX1/98ccfat68ueLi4lS4cGG1atXKee/3v//9T126dNGzzz6ro0ePasiQIRo6dKimTp2qN954\nQ6+++qr279+vAgUK6L777nOOzClWrJjmz5+v3r1765NPPtE999yjt956S88991yW9FN6TOINaQZl\nKvG10Hp56+yuQhIzG8zM7iogFevXr1e9evV06NAh5cmTx7n96NGjunDhgvN9tWrV9N5776lRo0by\n8/NLkse+ffv0119/qVq1akpISNBHH32kt99+Wzt37lTBggX1+++/q0qVKlq4cKFq166tDz/8UGPH\njlVUVBTTqQAAAHDLiYqKUvny5bO7GsAN6zKfEZPWDleMxMFNafr06XrqqaeSBHAk+zF5rjw8PJQ/\nf35nAKdLly6SpAkTJujUqVPq2rWrdu/eLW9vb919991aunSpM4+yZctq1qxZ6tKli44cOaKqVatq\n4cKFBHAAAAAAANcEI3GuEiNxAAAAAICROMDlZMVIHBY2BgAAAAAAcAMEcQAAAAAAANwAQRwAAAAA\nAAA3QBAHAAAAAADADRDEAQAAAAAAcAMEcQAAAAAAANyAZ3ZXAMgqPH4eAAAAAHAzI4gDAAAAALhm\n/mj2xHUtr8zcBde1vCsRFhamuLg4LV68OLurckO488471axZMw0dOjS7q3LDYzoVAAAAAOCWFRYW\nJmOMRowYkWT72rVrZYxRXFxchvMKDQ1V9+7dL5tuzJgxmjVrVqbqGRISonfffTdTx1xLxhjNnTs3\nu6txyyGIAwAAAAC4pXl7e+udd97R33//fV3Ky5s3r/Lly3ddykru/Pnz2VIusgZBHAAAAADALa12\n7doKCQlJMRonuXXr1un++++Xt7e3ChcurF69ejmDImFhYQoPD9fHH38sY4yMMYqJiUk1n7CwMD32\n2GPO96GhoerWrZv69++vgIAABQYGqk+fPkpISHDu37t3r1555RVn3onWr1+vWrVqydfXV8HBwera\ntav++eefJHl37dpVffr0UaFChVSjRg1J0smTJ9WpUycFBgYqT548qlWrljZt2uQ87uTJk2rdurUC\nAwPl7e2tkiVL6oMPPpBkjwqSpObNm8sY43wvSYsWLdI999wjb29vlShRQgMGDEgSODpy5IiaNGki\nHx8fFS9eXFOmTEm3z5EUQRwAAAAAwC0tR44ceuuttzRhwgTt3r071TQHDhxQo0aNVKVKFW3evFmT\nJ0/W559/rn79+kmyp0g98MADateunWJjYxUbG6vbb789w3WYPXu2PD09tX79eo0dO1YffPCBvvzy\nS0nS/PnzVbRoUQ0ePNiZtyRt3bpV9evX1+OPP64tW7Zo/vz5ioyM1PPPP58k71mzZsmyLEVERGjG\njBmyLEuPPvqoDhw4oMWLF2vz5s166KGHVKdOHWfeAwcO1NatW7V48WL9/vvvmjJlioKDgyVJGzdu\nlCRNnDhRsbGxzvfLly9Xq1at1L17d23fvl1TpkzR3Llz1b9/f2ddwsLCFB0drVWrVmnBggWaMWNG\nmsEupMTCxgAAAACAW94jjzyiGjVqaMCAAfriiy9S7B83bpyKFCmicePGKUeOHCpfvrzeeustde7c\nWSNGjFDevHnl5eUlX19fBQUFZbr8ChUqaPjw4ZKkMmXKaOLEiVq9erWeffZZFShQQB4eHsqTJ0+S\nvN955x0988wzevnll53bxo8frypVqujIkSMKDAyUJJUoUUKjR492pvnuu+8UGRmpv//+Wz4+PpKk\nESNGaNGiRZo5c6ZeffVV7d27V1WrVtV9990nSSpevLjz+EKFCkmS8uXLl6Q+b7zxhl555RW1a9dO\nklSqVCmNGjVKzz33nN555x3t2rVLS5cu1ffff+8cETR9+nSVLFky0/11qyKIAwAAAACApFGjRumB\nBx7QK6+8kmJfVFSUqlevrhw5/pvQUrNmTZ0/f17R0dGqVKnSVZWd/PgiRYroyJEj6R7zyy+/KDo6\n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\ndOLECVmtVu3YsUNZWVl66KGHqu3r4MGDslgsunLlit566y2dOXNGkyZNklSx09U//vEPlZeX67vv\nvkyjaDgAACAASURBVNP06dPVv39/eXl5NeBoAQAA4OgIcQAA96wWLVrIz8/P9jKbzXJzc5Ovr68m\nTJigMWPGqH///vL09NT06dO1fPlyde3aVZK0aNEiRURE2PpKSUmRv7+/2rRpo127dmnHjh1ydXWV\nJJ04cULh4eHy8PDQQw89JFdXV61du9YuYwYAAIDjMqxW6+1cf1sX14fx28fbu4RKUp5m+9jGgu8G\nqsP3AgAAAIADqLp7RjWYiQMAAAAAAOAACHEAAAAAAAAcACEOAAAAAACAAyDEAQAAqMVXX30lNzc3\nRUVF2c59++23GjdunLy8vOTj46PIyMib9pOeni7DMDRr1qxq2wcMGCDDMFRaWlpntQMAgKbF2d4F\nAAAANGbTpk1T7969K50bNmyYevfurZMnT6pFixY6fPhwrX2UlJTopZde0mOPPVZt+5o1a1RSUlJn\nNQMAgKaJEAcAAKAG69atk7e3tx5//HEdP35ckvTZZ5/pm2++UVpampycnCRJvXr1qrWft99+W4MG\nDdLZs2ertF26dEnz5s3TqlWr1KdPn7ofBAAAaDJ4nAoAAKAaBQUFmjNnjt55551K5//85z+rS5cu\nmjhxolq1aqXevXsrPT29xn5yc3P1+9//XnPmzKm2PT4+XlOnTpWfn1+d1g8AAJoeZuIAAO5J47eP\nt3cJlaQ8nWLvEvADs2fPVnR0tAICAiqdz8vL02effaYVK1bov//7v5WamqrnnntOx48fV+vWrav0\nM336dC1YsEBms7lK2/79+7V3714tWbJEeXl59TYWAADQNDATBwAA4AcyMzO1c+dO/eIXv6jSZjKZ\nFBQUpOjoaDVv3lxjxoxR+/bttXfv3irXbtmyRYWFhRo9enSVtvLycsXGxmrJkiVydubf1QAAwM3x\nFwMAAMAPpKWlKScnRx06dJAkFRUVqaysTEePHtW0adO0ZcuWStcbhlFtP7t27dL+/fttj0pdunRJ\nTk5OOnTokJKTk7V//35bwFNWViZJCggI0Pr169W3b9/6Gh4AAHBQhDgAAAA/MGXKFI0ZM8Z2/NZb\nbyknJ0dJSUlycnLSK6+8ouTkZEVFRemTTz5RXl6ennjiiSr9LFiwQL/+9a9txy+99JLatWun2bNn\n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\nrmMQ0S71CwIAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fa2f2f347d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bar_width = 0.8 # width of each bar\n",
"bar_colors = ['#5cb85c', '#5bc0de', '#d9534f'] # bar colors\n",
"title = 'Percentage of Respondents\\' Interest in Technologies' # title of bar plot\n",
"\n",
"# call function to generate bar plot\n",
"generate_bar_plot(technologies_data_sorted, survey_data.shape[0], bar_width, bar_colors, title)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2. Visualizing Reponses to Question on Data Science Areas"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Let's retrieve the data pertaining to Question 2 and transform it in a *pandas* dataframe"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Not interested</th>\n",
" <th>Somewhat interested</th>\n",
" <th>Very interested</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Big Data (Spark / Hadoop)</th>\n",
" <td>127</td>\n",
" <td>729</td>\n",
" <td>1332</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Data Analysis / Statistics</th>\n",
" <td>60</td>\n",
" <td>444</td>\n",
" <td>1688</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Data Journalism</th>\n",
" <td>610</td>\n",
" <td>1081</td>\n",
" <td>429</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Data Visualization</th>\n",
" <td>102</td>\n",
" <td>734</td>\n",
" <td>1340</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Deep Learning</th>\n",
" <td>136</td>\n",
" <td>770</td>\n",
" <td>1263</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Machine Learning</th>\n",
" <td>74</td>\n",
" <td>477</td>\n",
" <td>1629</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Not interested Somewhat interested \\\n",
"Big Data (Spark / Hadoop) 127 729 \n",
"Data Analysis / Statistics 60 444 \n",
"Data Journalism 610 1081 \n",
"Data Visualization 102 734 \n",
"Deep Learning 136 770 \n",
"Machine Learning 74 477 \n",
"\n",
" Very interested \n",
"Big Data (Spark / Hadoop) 1332 \n",
"Data Analysis / Statistics 1688 \n",
"Data Journalism 429 \n",
"Data Visualization 1340 \n",
"Deep Learning 1263 \n",
"Machine Learning 1629 "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"areas_datascience_data = survey_dictionary[questions[1]] # get the data pertaining to question 2 from the survey dictionary\n",
"\n",
"# convert the dictionary into a pandas dataframe\n",
"areas_datascience_data = pd.DataFrame.from_dict(areas_datascience_data, orient='index')\n",
"areas_datascience_data # display the resulting dataframe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### For consistency, let's rearrange the columns so that the dataframe resembles the one we had in Question 1"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Very interested</th>\n",
" <th>Somewhat interested</th>\n",
" <th>Not interested</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Big Data (Spark / Hadoop)</th>\n",
" <td>1332</td>\n",
" <td>729</td>\n",
" <td>127</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Data Analysis / Statistics</th>\n",
" <td>1688</td>\n",
" <td>444</td>\n",
" <td>60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Data Journalism</th>\n",
" <td>429</td>\n",
" <td>1081</td>\n",
" <td>610</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Data Visualization</th>\n",
" <td>1340</td>\n",
" <td>734</td>\n",
" <td>102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Deep Learning</th>\n",
" <td>1263</td>\n",
" <td>770</td>\n",
" <td>136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Machine Learning</th>\n",
" <td>1629</td>\n",
" <td>477</td>\n",
" <td>74</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Very interested Somewhat interested \\\n",
"Big Data (Spark / Hadoop) 1332 729 \n",
"Data Analysis / Statistics 1688 444 \n",
"Data Journalism 429 1081 \n",
"Data Visualization 1340 734 \n",
"Deep Learning 1263 770 \n",
"Machine Learning 1629 477 \n",
"\n",
" Not interested \n",
"Big Data (Spark / Hadoop) 127 \n",
"Data Analysis / Statistics 60 \n",
"Data Journalism 610 \n",
"Data Visualization 102 \n",
"Deep Learning 136 \n",
"Machine Learning 74 "
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rearragned_columns = ['Very interested', 'Somewhat interested', 'Not interested']\n",
"areas_datascience_data = areas_datascience_data[rearragned_columns]\n",
"areas_datascience_data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Next, let's sort the dataframe in descending order of 'Very interested'"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Very interested</th>\n",
" <th>Somewhat interested</th>\n",
" <th>Not interested</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Data Analysis / Statistics</th>\n",
" <td>1688</td>\n",
" <td>444</td>\n",
" <td>60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Machine Learning</th>\n",
" <td>1629</td>\n",
" <td>477</td>\n",
" <td>74</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Data Visualization</th>\n",
" <td>1340</td>\n",
" <td>734</td>\n",
" <td>102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Big Data (Spark / Hadoop)</th>\n",
" <td>1332</td>\n",
" <td>729</td>\n",
" <td>127</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Deep Learning</th>\n",
" <td>1263</td>\n",
" <td>770</td>\n",
" <td>136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Data Journalism</th>\n",
" <td>429</td>\n",
" <td>1081</td>\n",
" <td>610</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Very interested Somewhat interested \\\n",
"Data Analysis / Statistics 1688 444 \n",
"Machine Learning 1629 477 \n",
"Data Visualization 1340 734 \n",
"Big Data (Spark / Hadoop) 1332 729 \n",
"Deep Learning 1263 770 \n",
"Data Journalism 429 1081 \n",
"\n",
" Not interested \n",
"Data Analysis / Statistics 60 \n",
"Machine Learning 74 \n",
"Data Visualization 102 \n",
"Big Data (Spark / Hadoop) 127 \n",
"Deep Learning 136 \n",
"Data Journalism 610 "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"areas_datascience_data_sorted = areas_datascience_data.sort_values('Very interested', ascending=False)\n",
"\n",
"areas_datascience_data_sorted # view the sorted dataframe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Let's generate a grouped bar plot for the responses to Question 2"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nMfftHelqYAcd4rCDPG9gBzROuKXLBvwX+z/ycdg3tluA97B76FyrXfM52jGhXXZjP67WuKS5kadT\nJTmm2DepFtDHZVkx7F+uYxz7j8X+pfpZl+M21VGuc9hDniKAxi55hDjybeU4PiexbyC/xvHEqTTW\nNyG/x1KoW6DLMj/sX+BPO/b7FXbgJNHTjBxpH8cOLJxy1OVP7J5DFVzSRAPTk2k796f6FMGeW+m0\nY1049vwmn2EHp8449rMelydHpeGzOYzkn051Q2VL7fFOad9paUfs3mqLHXlfwP6sTyLx05RSLGMy\n+0s4H0JcloWT/BO4ooEp12nbhPwSXgmf7wXYPcxyJrPNU9iBuTjH8W2Hfa5Hu6XrgT0R+GXXMgMN\nsB+rfh47aNU7oZ2vU9Zi2HNRrcW+ll3C7sm0AGiQTPo2jrTnHcdnLdA8pXPFsSzdrruOZWWwP5NH\nHe21B/jALU0t7AmHTzjSRDvKUOsabbEZOyhkUlhfzrV+KZXZJX1qvtOue9yBVx35HHO0+y7Hsc2R\n1s+9XnrppVdWfSU8dlRERCRdGWOyY//aetSyrEczujx3CmNMCPZNfUPLspKb50JEREREJFkaTiUi\nIunCGDMC+5fffdhzeXQDqmD3RBARERERkZukII6IiKQXC3sekaKOv/8A/mMlfiKTiIiIiIjcIA2n\nEhERERERERHJBLJdP4mIiIiIiIiIiGQ0BXFERERERERERDKBtM6Jo7FXIiIiIiIiIiLpy6QmkXri\niIiIiIiIiIhkAgriiIiIiIiIiIhkAlk6iOPt7Z3olT17dnr16gVAdHQ0xphE60eMGJFiXoGBgXh6\nejrTNmrUyLnuwoUL9OnTh6JFi+Lj48OLL77IpUuXbnn9REREREREROTukdY5ce4qZ86cSfR3kSJF\naNu2baI0J0+exMMjdc00d+5cHnvssSTLR44cyYYNG9i2bRtXrlyhRYsWvPXWWwwfPvzmKiAiIiIi\nIiIiWUaW7onjavbs2fj7+1O3bt10z3vu3Ln07t2bggUL4ufnR+/evZk8eXK670dERERERERE7l4K\n4jhMnTqV5557DmMSTwhdsmRJihUrRufOnTl69Og18+jQoQN+fn40atSILVu2JFpnWVaivw8cOMC/\n//6bfhUQERERERERkbuacQ0upMJd+Yjxffv2Ubp0aaKioihVqhRgD6/auXMn1apV49ixY7z00kuc\nPn2axYsXJ5vHr7/+So0aNbAsi7FjxzJ27Fh27txJgQIFGDx4MCtWrGDOnDlcuXKFli1bsm7dOg4e\nPMg999xzO6sqIiIiIiJyy5w6dYrDhw9rDlARFzly5MDf3598+fJdK1mqHjGuIA7w1ltvsXTpUiIi\nIlJM888//3DPPfdw6tQp8ubNe908g4KCGD16NC1atOD8+fO89tpr/PDDD+TKlYvu3bszdOhQ4uLi\nyJZNnaFERERERCTzO3XqFIcOHSIgIABPT88koxxEsiLLsjh//jwxMTEULlz4WoGcVH1gFEEAvvrq\nKzp16nTNNAkXoPj4+FTlaYxxDqHy9PRk3LhxxMTEsHfvXgoVKsR9992nAI6IiIiIiNw1Dh8+TEBA\nAF5eXgrgiDgYY/Dy8iIgIIDDhw/fdH5Z+ulUAKtXryYmJibJU6nWrl1LgQIFuPfeezlx4gS9e/cm\nJCSE/PnzJ8lj//79/P3339SsWZP4+Hj+97//cfToUerUqQNATEwMxhjuuece1q5dy4gRI5g0adJt\nqZ+IiIiIiMjtcOnSJTw9PTO6GCJ3JE9Pz3QZZpjlu4JMnTqVVq1aJRkitXfvXpo0aULevHmpVKkS\nuXLlYubMmc71YWFhhIWFAXD69GleeOEFfHx8CAgIYNGiRSxcuJBChQoBsGfPHmrXrk2ePHno1KkT\nI0eOpFGjRrevkiIiIiIiIreBeuCIJC+9PhuaE0dERERERERuWmRkJMHBwRldDJE71nU+I5oTR0RE\nRERERCSzKVasGB999FFGF+OO8M8//2CM4ZdffsnootwRsvycOCIiIiIiInLrdFzc8bbub1rjaalO\n+8QTT3D27FmWL1+eZF1kZCQVKlRg8eLFt306jE2bNpEnT55Up4+KiuLee+9l06ZNVKtW7RaWLHWW\nLVtGw4YNOXHiBAUKFMjo4txV1BNHREREREREsqSuXbuyYsUKoqOjk6ybNGkSJUuW5LHHHruhvG9m\nEls/Pz+8vLxuePubcfHixQzZr6SOgjgiIiIiIiKSJTVr1ozChQvz5ZdfJlp+6dIlpk2bRpcuXciW\nzb5t/vvvv3nqqafw8fGhYMGCNG/enD179ji3GTx4MNWqVWPSpEmULl2a3LlzM378ePz9/ZMEdJ5+\n+mlatWqVYrlch1NdvnwZYwwTJ06kdevW5MmThzJlyjgfvHP58mXuvfdeAKpXr44xJlHgaeLEiQQH\nB5M7d27Kly/Pxx9/TMLcuAl5T5gwgZYtW5InTx6GDBkCwLZt22jatCne3t74+/vToUMHDh065Mx3\ny5YtNGjQgHz58pE3b16qVatGREQEUVFRNGzYEAAfHx+MMXTr1g2A+Ph43n33XUqXLo2npyeVK1dO\n9AAhsJ8UXb16dXLnzk2NGjVYv379NY9hVqMgjoiIiIiIiGRJHh4edOrUiSlTphAfH+9cPnfuXI4e\nPUrnzp0BOHPmDCEhIeTNm5eIiAhWr16Nn58fDRs25Pz5887toqKi+O6775g9ezabN2+mU6dOxMXF\nMXfuXGea48eP8+OPP9K1a9c0lXX48OG0bt2aLVu20KpVK0JDQzlw4AAeHh6sWbMGsIcxxcbG8t13\n3wHw6aefMmTIEN566y0iIyN57733eOutt/jss88S5T106FBatmzJ1q1bCQsLIyYmhnr16lG9enU2\nbNjA0qVLOXnyJE8++aQzANSuXTuKFy/OunXr2LRpE0OGDCF37tyUKlWK//u//wNg165dxMbG8sEH\nHwAwcOBAvvrqKz799FN27NhB//796dq1K4sXLwbsJz83a9aM8uXLs3HjRt555x369u2bpna62ymI\nI5KJeXt7J3plz56dXr16AfDbb7/RsGFDChYsiJ+fH23btiU2NjbFvCIjI2nQoAH58+enbNmy/PDD\nD8510dHRGGMS7WvEiBG3vH4iIiIiIrda165d2b9/P8uWLXMumzRpEo0aNaJ48eIAfP311+TIkYOJ\nEydSpUoVgoKC+OKLLzh+/DgLFy50bnfx4kWmTZtG9erVqVy5Mnny5KF9+/ZMnjzZmWbGjBkUKlSI\nJk2apKmcoaGhtG/fnrJly/L2228DOCf79fX1BaBQoUIUKVIEHx8fAN566y3GjBlD69atKVWqFC1b\ntqRfv36MHz8+Ud7t27enS5culC5dmsDAQD755BPuv/9+3nnnHYKCgqhatSpTpkxhzZo1bNq0CYD9\n+/fTqFEjgoKCKFu2LK1ateLBBx8ke/bszv37+/tTpEgR8uXLx+nTpxk7diyTJ0+mcePGlCpVimef\nfZYuXbrwySefADBt2jQsy2Ly5MlUrFiRJk2aMHDgwDS1091OExuLZGJnzpxJ9HeRIkVo27YtACdO\nnOD555+ncePGeHh40LNnTzp37syiRYuS5HP58mVatmxJWFgYS5cuJSIighYtWrBp0ybKlSvnTHfy\n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\n7XSjNJxKREREREREsiQPDw+mTJlC9+7d+fzzz6levTp16tShbdu2PPjggwD8+eef/PTTT0RERPDI\nI48AMG3aNEqUKMGMGTPo1q0bYAcMPvnkE8qXLw9A+/bt+fDDDzl06JBz/peWLVuyYsUKXn31Vc6e\nPcsHH3zAkiVLqFu3LmD3glm3bh2ffPIJzZo1IyQkhBdeeIHY2Fjy58/P+vXrefPNN/n5558ZMGAA\n4eHhlClThmLFijnrlC9fPiZMmED27NkJDg6mbdu2LF++nIEDBwL28DFXX375Jfny5WPdunU8/PDD\n+Pn5AVCoUKEbGi7Vp08fWrRoAcA777zDV199xebNm3n44YcpWLAgAP7+/s42SU07JOjVqxdt2rRx\nvn/99dd5+umnefXVV53LPv30U6pXr87hw4fx8PDg5MmTtGjRgjJlygAQFBTkTJs/f36MMYnquWfP\nHmbOnEl0dDQlSpQAoGfPnixbtozPPvuM8ePH8+mnn1KiRAk+/vhjjDEEBQWxe/du3njjjTS3V1op\niCMiIiIiIiJZVuvWrWnWrBmrVq1izZo1LFq0iDFjxvD222/z+uuvExkZSbZs2ahVq5Zzm/z581O5\ncmV27NjhXJYrVy5nAAegcOHCFClSJNEEvoULF3Zus2PHDuLi4mjSpAnGGGeaS5cuERgYCNgBhyJF\nihAeHo6fnx9lypTh6aefZsSIEVy6dInw8PAkw50qVKhA9uzZne+LFi3K2rVrne/37NnDG2+8wdq1\nazly5Ajx8fHEx8ezf//+m2tIhypVqiTaN8Dhw4dTTJ+adkjgPtHyxo0biYqK4ttvv3UusywLsOtZ\nq1YtQkNDady4MY8++iiPPvoobdq0cQZnkvP7779jWRYVKlRItPzChQs0aNAAgMjISB566KFE5XU9\nP24lBXFEREREREQkS8udOzcNGzakYcOGDBkyhG7dujFs2DDn8JqUuN7Ee3h4JFnnPvGuMYb4+HgA\n579z585NElRw3a5evXqsWLECf39/6tevT2BgIL6+vqxfv56IiAjefffdFLd13ydA8+bNKVasGJ99\n9hkBAQF4eHhQoUIF53Cqm+W6/4T2cd2/u9S2A0CePHmSbNutWzf69OmTJN+AgADA7mn08ssvs2jR\nIn766ScGDRrEnDlzaNy4cYrlMcawfv36JPv39PRMsR63i4I4IiIiIiIiIi4qVKjA5cuXiYuLIzg4\n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\nrlwMGjSIqlWrUqdOHU6fPs3cuXOdeYwZM4YVK1ZQvHhxqlevDkDjxo2ZP38+K1as4IEHHuCBBx5g\n5MiRlChRwrndlClTKFWqFA0aNKBFixa0b98+0SPK5dpMwqRHqZSmxBmt4+KOGV2EGzat8bSMLoLc\nAXQOi4iIiEhmERkZSXBwcEYXQ+SOdZ3PSKomClJPHBERERERERGRTEBBHBERERERERGRTEBBHBER\nERERERGRTEBBHBERERERERGRTEBBHBEREREREUkXaXxwjkiWkV6fDQVxRERERERE5KblyJGD8+fP\nZ3QxRO5I58+fJ0eOHDedj4I4IiIiIiIictP8/f2JiYnh3Llz6pEj4mBZFufOnSMmJgZ/f/+bzs8j\nHcokIiIiIiIiWVy+fPkAOHjwIJcuXcrg0ojcOXLkyEHhwoWdn5GboSCOiIiIiIiIpIt8+fKly42q\niCRPw6lERERERERERDIBBXFERERERERERDIBBXFERERERERERDIBBXFERERERERERDIBBXFERERE\nRERERDIBBXFERERERERERDIBBXFERERERERERDIBBXFERERERERERDIBBXFERERERERERDIBBXFE\nRERERERERDIBBXFERERERERERDIBBXFERERERERERDIBBXFERERERERERDIBBXFERCTDffPNNwQH\nB5MnTx7KlCnDqlWrAFi+fDlBQUF4eXlRv3599u3bl2Ie0dHR1K9fHy8vL4KCgli2bJlz3bZt22jc\nuDG+vr4YY255fUREREREbgUFcUREJEMtXbqU/v378+WXX3L69GlWrlxJ6dKlOXr0KK1atWLEiBEc\nP36c+++/n6effjrFfJ555hmqV6/OsWPHePvtt2nTpg1HjhwBIEeOHDz11FNMmjTpdlVLRERERCTd\nKYgjIiIZaujQoQwZMoSHHnqIbNmyERAQQEBAAN9//z0VK1akbdu25M6dm2HDhrFlyxZ27tyZJI/d\nu3fz+++/M3z4cDw9PWndujWVK1dm9uzZAJQvX56uXbtSsWLF2109yQJCQkLInTs33t7eeHt7U758\neQAsy+Ltt9+mRIkS5MuXj3bt2nHq1Klr5jV27FhKlSpFnjx5CA4OZvfu3QCEh4eTLVs25z68vb2Z\nOnXqLa+biIiI3FkUxBERkQxz5coVNmzYwJEjRyhbtizFihWjZ8+enD9/nu3bt1O1alVn2oShVtu3\nb0+Sz/bt2yldujR58+Z1LqtatWqyaUVuhXHjxnHmzBnOnDnDrl27APjqq6+YNm0av/76KwcPHuT8\n+fP06tUrxTwmTpzIpEmTmD9/PmfOnGHevHn4+vo61xctWtS5jzNnztCpU6dbXi8RERG5syiIIyIi\nGebQoUNcunSJWbNmsWrVKjZv3symTZt46623OHPmDPnz50+UPn/+/Jw+fTpJPmlJK3K7zJ07l65d\nu1K8eHG8vb3p378/3377LefOnUuSNj4+nuHDh/Phhx9SoUIFjDGUKVOGggULZkDJRURE5E6lII6I\niGQYT09PAHr16sU999yDr68vr7zyCgsWLMDb2zvJ0JNTp04l6m2TIC1pRW6FgQMH4uvrS506dQgP\nD3cutywr0d8XLlzgzz//TLL9gQMHOHDgANu2baN48eKUKlWKoUOHEh8f70xz+PBhChcuTKlSpejT\npw9nz569pXUSERGRO4+COCIikmF8fHwoVqxYoidGJfxdsWJFtmzZ4lx+9uxZ9uzZk+y8NhUrVmTv\n3r2Jet5s2bJFc+DIbTFq1Cj27t1LTEwMzz//PC1atGDPnj00adKEiRMnEh0dzb///suoUaMAku2J\nc+DAAQCWLFnC1q1bWbFiBTNnznROxh0UFMTmzZuJjY3l559/ZuPGjbzyyiu3r5IiIiJyR1AQR0RE\nMlTnzp353//+x+HDhzlx4gQffvghzZs358knn2Tbtm3Mnj2buLg43nzzTapUqUJQUFCSPMqVK0e1\natUYPnw4cXFx/PDDD/zxxx+0bt0asHtAxMXFcfHiRQDi4uK4cOHCba2n3L0efPBB8ubNS65cuejU\nqRN16tRhwYIFdOnShWeeeYaQkBAqVqxI/fr1AShWrFiSPBJ6pfXr148CBQoQGBhIjx49WLBgAQBF\nihShQoUKZMuWjVKlSvHee+85J+4WERGRrENBHBERyVBvvPEGNWvWpFy5cgQHB1O9enUGDRqEn58f\ns2fPZtCgQfj4+LB27Vq++eYb53ZhYWGEhYU533/zzTds2LABHx8fBgwYwKxZs/Dz8wNg3759eHp6\nOnvmeHp6Op8gJJLejDFYlkW2bNkYPnw40dHRHDhwgIoVKzqfvuaufPny5MyZM9leaSntw3WolYiI\niGQNxnWsdiqkKXFG67i4Y0YX4YZNazwto4sgdwCdwyIid7aTJ0+ydu1a6tWrh4eHB99++y3PP/88\nmzZtwtfXlxMnTlC6dGkiIyN56qmn6N27N88//3yyeT333HMcP36cmTNn8u+///LYY4/x2muv0bVr\nV1asWEHp0qUpUaIEBw4c4LnnniMwMJAvv/zyNtdYREREbpGUf71xoZ44IiIiIjfo0qVLDB48GD8/\nP3x9ffnf//7HnDlzKFeuHEePHuXxxx8nT548NG3alC5duiQK4Lj3Jhs3bhze3t4ULVqUWrVq0b59\ne7p06QLApk2bqF27Nnny5KF27dpUrlyZjz/++LbXV0RERDKWeuLcodSLQUDnsIiIiIiISBahnjgi\nIiIiIiIiIncLBXFERERERERERDIBBXFERERERERERDIBBXFERERERERERDIBBXFERERERERERDIB\nj4wugIiI3L0y8xPWQE9ZExEREZE7i3riiIiIiIiIiIhkAuqJIyIiIpIC9SaTrCAkJITffvsNDw/7\n1iAgIIBdu3YBcOTIEf773/8yf/58smXLxuOPP86MGTOSzScwMJBDhw6RPXt2AGrXrs2SJUuc6/fu\n3Uvv3r2JiIggV65cdOnShffee+8W105E5O6iII6IiIiISBY3btw4unXrlmR5q1atqFmzJvv378fL\ny4tt27ZdM5+5c+fy2GOPJVl+8eJFGjZsyEsvvcS3335L9uzZ2b17d7qVX0Qkq1AQR0REREREkliy\nZAl///034eHhzt411atXv6G8pkyZQtGiRXnllVecy6pUqZIu5RQRyUo0J46IiIiISBY3cOBAfH19\nqVOnDuHh4QD89ttvlC9fnk6dOlGoUCFq1qxJRETENfPp0KEDfn5+NGrUiC1btjiX//bbbwQGBtK0\naVN8fX0JCQlh69att7JKIiJ3JQVxRERERESysFGjRrF3715iYmJ4/vnnadGiBXv27OHAgQMsWbKE\n+vXr888///Dqq6/SsmVLjh49mmw+M2bMIDo6mn379lG/fn0aN27MyZMnAThw4ADffPMNvXv35uDB\ngzRr1oyWLVty8eLF21lVEZFMT0EcEREREZEs7MEHHyRv3rzkypWLTp06UadOHRYsWICnpyeBgYF0\n7dqVHDly0K5dO4oXL86vv/6abD516tTB09MTLy8vBg4cSIECBVi1ahUAnp6ePPzwwzRt2pScOXPS\nt29fjh07RmRk5O2sqohIpqcgjoiIiIiIOBljsCyLKlWqYIxJsi6t+QDJ5iUiImmnII6IiIiISBZ1\n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\nAADgAIQ4AAAAAAAADkCIAwAAAAAA4ACEOAAAAAAAAA5AiAMAAAAAAOAAhDgAAAAAAAAOQIgDX9K5\nbgAAIABJREFUAAAAAADgAIQ4AAAAAAAADkCIAwAAAADVQEpKijp27KiGDRvq2muvVVpaWpn95s+f\nr5CQEAUGBurXv/61zpw542775JNP1K1bNwUEBKhTp0766KOPPFU+AA8gxAEAAAAAL9uwYYOmTp2q\nJUuW6OTJk9q8ebPatm1bqt/69ev1u9/9Th988IGysrK0d+9ezZo1S5J09OhR3XXXXXrsscd0/Phx\nPf7447rrrrt07NgxT08HQBUhxAEAAIDj9erVS35+fnK5XHK5XGrfvn25fb/66ivddtttcrlcatGi\nhZ5//nl3G6sY4C2zZs3SE088oV/+8peqU6eOrrnmGl1zzTWl+iUnJysuLk5RUVFq0qSJZs6cqVdf\nfVVS0fs3JCRE9913n3x8fDRy5EgFBwfrjTfe8PBsAFQVQhwAAADUCAsXLlRubq5yc3P1j3/8o8w+\nR44cUUxMjP7rv/5LP/zwg/bs2aM777xTEqsY4D2FhYX68ssv9a9//Uvt2rVTWFiY4uPj9eOPP5bq\nu2PHDl1//fXu8+uvv17Z2dn64YcfJEnW2hL9rbXavn171U4AgMcQ4gAAAKDWeO6559SvXz+NGDFC\nvr6+CggIUMeOHSWxigHek52drfz8fK1atUppaWlKT0/X1q1bNWfOnFJ9c3Nz1ahRI/f5+eOTJ0/q\nlltu0cGDB7Vy5Url5+crOTlZGRkZOn36tMfmAqBqEeIAAACgRpg2bZqCgoJ06623atOmTWX2+eyz\nz9S0aVN1795dzZs311133aV9+/a521nFAG/w9/eXJD300EMKDQ1VUFCQHn30Ua1du7ZUX5fLpZyc\nHPf5+eOAgAA1a9ZMb7/9tp577jm1aNFC7733nu644w6FhYV5ZiIAqhwhDgAAABzvmWee0d69e3Xg\nwAGNGzdOd911lzIyMkr1279/v5KTk/X8889r3759atOmjYYPHy5JrGKA1zRp0kRhYWEyxrivXXh8\noaioKP397393n//9739XixYt1KxZM0lSz5499cUXX+jo0aNatmyZdu3apW7dulXtBAB4DCEOAAAA\nHO/mm29WQECAfH19NWbMGN16661lrmLw9/fXvffeq65du8rPz0+zZs3SJ598ohMnTrCKAV41duxY\nvfjiizp8+LCOHTum+fPna9CgQaX6jR49Wi+//LK++eYbHT9+XHPmzNEDDzzgbt+6davy8/OVk5Oj\nKVOmqFWrVurXr58HZwKgKhHiAAAAoMYxxpS6NUqSOnXqdMnVDqxigLfMnDlTXbt2VWRkpDp27Kgb\nbrhBv/3tb7Vv3z65XC73bX8xMTF6/PHHdfvtt6t169YKDw/Xk08+6R7n2WefVVBQkFq1aqVDhw7p\nzTff9NaUAFQBQhwAAOD27bffys/PTyNHjiyzPSEhQfXq1XM/xtnlcmnv3r2SpLS0tBLXXS6XjDFa\nvXq1J6eAWuj48eNav3698vLyVFBQoBUrVmjz5s2KiYkp1Xfs2LF68803lZ6ervz8fD311FOKjo52\nbw7LKgZ4S7169ZSYmKjjx4/rn//8p1544QX5+fmpdevWys3NVevWrd19H330UWVnZysnJ0dLliyR\nr6+vu23lypU6ceKETpw4oddee03Nmzf3xnQAVBFCHAAA4DZp0iR17dr1kn3uv/9+92Occ3Nz1bZt\nW0lSjx49Slx/99135XK5yvwiDVSm/Px8zZgxQ8HBwQoKCtKLL76ot956S5GRke5w8bzevXtr7ty5\nGjhwoJo3b649e/bo//7v/9ztrGIAAFRndb1dAAAAqB5SUlLUuHFjde/eXXv27PnJ4yUnJ2vYsGFq\n2LBhJVQHlC84OFhffPFFmW3nw8ULTZgwQRMmTCiz/8qVKyu9PgAAKgsrcQAAgHJycvTEE0/oueee\nu2zfd955R02bNlVUVJSSkpLK7HPq1CmtWrVKY8aMqexSAQAAai1W4gAAAM2cOVNxcXGXfQpPbGys\nxo0bpxYtWujzzz/X0KFD1bhxY/cjms974403FBQUpJ49e1Zl2QAAALUKIQ4AALVcenq6Nm7cqK1b\nt162789//nP3cffu3fXwww9r1apVpUKc5ORkjR49utSTfwAAAFBx3E4FAJVg5MiRCg0NVWBgoCIj\nI7V48eIy+6WkpKh9+/Zq1KiRmjdvrjFjxignJ8fdvnDhQnXp0kW+vr564IEHPFQ9artNmzYpMzNT\nrVu3VkhIiH7/+99r9erVuvHGGy/72rIe4/z9999r06ZNGj16dFWVDAAAUCsR4gBAJZg2bZoyMzOV\nk5OjNWvWaMaMGdqyZUupfrfeeqs+/vhjnThxQnv37lVBQYFmzJjhbm/ZsqVmzJihX//6154sH7Xc\nuHHjlJGRofT0dKWnp2v8+PEaOHCg1q9fX6rv22+/rWPHjslaq7/97W964YUXdPfdd5fos2zZMnXv\n3l3XXnutp6YAAABQKxDiAEAliIqKkq+vr6SilQnGGGVkZJTq16pVKwUFBbnPfXx8SjwFaMiQIbrn\nnnvUrFmzqi8aKNagQQOFhIS4f1wul/z8/BQcHFzq8cwpKSlq166dAgICNHr0aE2dOrXU5sVLly5l\nQ2MAAIAqwJ44AFBJJk6cqFdffVU//vijbrjhBg0YMKDMfh999JEGDhyonJwcNWjQQG+++aaHKwUu\nLSEhwX188eOZr+Txy7t27aqKsgDAUXYPu8fbJVRY5Kq3vF0CgHKwEgded+bMGcXFxSk8PFwBAQHq\n3Lmz1q1bV27/vXv3atCgQQoICFBQUJAef/xxd9vOnTvVu3dvNWrUSO3atePLMTwqMTFRJ0+eVFpa\nmoYMGeJemXOx6OhonThxQvv379djjz2miIgIzxYKAAAAwJFYiQOvKygoUKtWrZSamqrWrVtr7dq1\nio2N1ddff13qy+3Zs2fVt29fTZo0Sa+99pp8fHy0e/du9zh33323xo8frw0bNig1NVV33XWXtm7d\nqsjISC/MDLWRj4+PoqOjtXz5ciUlJWny5Mnl9r3mmmsUExOjX/3qV/rqq688WCUAVH+sYgAAoDRW\n4sDrGjZsqISEBEVERKhOnToaNGiQ2rRpU+amsK+++qpatmypRx99VA0bNpSfn586deokqWj5/sGD\nB/Wb3/xGPj4+6t27t2699VYtW7bM01MCVFBQUOaeOBXtBwAAAACEOKh2srOztXv3bkVFRZVq++yz\nzxQREaH+/fsrKChIvXr10tdff13uWNZabd++vSrLBXT48GGlpKQoNzdXhYWFWr9+vVauXKk+ffqU\n6rtixQrt27dPkpSVlaXf/va3JfoVFBQoLy9PhYWFKiwsVF5engoKCjw2FwAAAADVFyEOqpX8/HyN\nGDFCY8aMUYcOHUq179+/XykpKZo8ebIOHjyogQMH6u6779bZs2fVvn17NW/eXPPmzVN+fr7ef/99\npaam6vTp016YCWoTY4ySkpIUFhamJk2aaMqUKVqwYIEGDx6sffv2yeVyuYObb775Rt27d1fDhg11\n6623qn379vrTn/7kHmvOnDny9/fX7373Oy1fvlz+/v6aM2eOt6YGAAAAoBphTxxUG+fOndOoUaNU\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fa2f3483c90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bar_width = 0.8 # width of each bar\n",
"bar_colors = ['#5cb85c', '#5bc0de', '#d9534f'] # bar colors\n",
"title = 'Percentage of Respondents\\' Interest in Data Science Areas' # title of bar plot\n",
"\n",
"# call function to generate bar plot\n",
"generate_bar_plot(areas_datascience_data_sorted, survey_data.shape[0], bar_width, bar_colors, title)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3. Visualizing Responses to Question on Programming Languages"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Let's retrieve the data pertaining to Question 3 and transform it in a *pandas* dataframe"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Votes</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Java</th>\n",
" <td>171</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Scala</th>\n",
" <td>104</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Python</th>\n",
" <td>1050</td>\n",
" </tr>\n",
" <tr>\n",
" <th>JavaScript</th>\n",
" <td>81</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Julia</th>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>R</th>\n",
" <td>468</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SQL</th>\n",
" <td>277</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Other</th>\n",
" <td>67</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Votes\n",
"Java 171\n",
"Scala 104\n",
"Python 1050\n",
"JavaScript 81\n",
"Julia 15\n",
"R 468\n",
"SQL 277\n",
"Other 67"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"programming_languages_data = survey_dictionary[questions[2]] # get the data pertaining to question 3 from the survey dictionary\n",
"\n",
"# convert the dictionary into a pandas dataframe\n",
"programming_languages_data = pd.DataFrame.from_dict(programming_languages_data, orient='index')\n",
"programming_languages_data.columns = ['Votes'] # label the only colum in the dataframe as Votes\n",
"\n",
"# display the resulting dataframe\n",
"programming_languages_data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Next, let's sort the dataframe in descending order of 'Votes'"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Votes</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Python</th>\n",
" <td>1050</td>\n",
" </tr>\n",
" <tr>\n",
" <th>R</th>\n",
" <td>468</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SQL</th>\n",
" <td>277</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Java</th>\n",
" <td>171</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Scala</th>\n",
" <td>104</td>\n",
" </tr>\n",
" <tr>\n",
" <th>JavaScript</th>\n",
" <td>81</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Other</th>\n",
" <td>67</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Julia</th>\n",
" <td>15</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Votes\n",
"Python 1050\n",
"R 468\n",
"SQL 277\n",
"Java 171\n",
"Scala 104\n",
"JavaScript 81\n",
"Other 67\n",
"Julia 15"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"programming_languages_data_sorted = programming_languages_data.sort_values('Votes', ascending=False)\n",
"\n",
"programming_languages_data_sorted # view the sorted dataframe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Before we plot the data, let's move the 'Other' row to the end"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Votes</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Python</th>\n",
" <td>1050</td>\n",
" </tr>\n",
" <tr>\n",
" <th>R</th>\n",
" <td>468</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SQL</th>\n",
" <td>277</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Java</th>\n",
" <td>171</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Scala</th>\n",
" <td>104</td>\n",
" </tr>\n",
" <tr>\n",
" <th>JavaScript</th>\n",
" <td>81</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Julia</th>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Other</th>\n",
" <td>67</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Votes\n",
"Python 1050\n",
"R 468\n",
"SQL 277\n",
"Java 171\n",
"Scala 104\n",
"JavaScript 81\n",
"Julia 15\n",
"Other 67"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"programming_languages_data_sorted.loc[['Other', 'Julia'], :] = programming_languages_data_sorted.loc[['Julia', 'Other'], :].values\n",
"programming_languages_data_sorted.index.values[-2:] = ['Julia', 'Other']\n",
"\n",
"programming_languages_data_sorted # view the modified dataframe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Let's generate a grouped bar plot for the responses to Question 3"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABHEAAAIgCAYAAAAC6vUpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xm8VnWBP/DP1wUBLwiIa2A6VkpOOKU2ZlqkWbllmW3u\nSiql1S/H0RZxKaepxnGZ/GU12uBWNObP0RbF0FTKockUc5tcCAk198TrinB+f5yH6+XhohcELgfe\n79frecFzzvec8z3Lc+5zPs/3e06pqioAAAAArNhW6+sKAAAAAPDqhDgAAAAADSDEAQAAAGgAIQ4A\nAABAAwhxAAAAABpAiAMAAADQAEIcYKVWSjmklFJ1ez1dSrm1lHJ0KWWNvq7fa1FKGVNKObmUslKc\ny0sp7yil/LaU8kxrX/3dIsq179MXSyn3lVK+Xkrpv7zr3Rda+74qpYxZhss4pJRy2BJMt2lv6tY6\ndqsl+Rwuad2Wp8Wp49Len93mN//1XCnlzlLKiaWUAUtjGSujUsqMUsqEPljuhFLKrOW9XACaqdEX\nMACL4aNJZiUZ3Pr/t5Osn+TEvqzUazQmyUlJTk0yr2+rslScl+S5JHsleTbJ3a9Sfv4+HZTkw0m+\n1Pr/Z5dhHVclh6T+nvCDPq5HTw7Jilu3+Q5J7+t4c5J3JLlzKdfhc0l+l2RgkvenPl+8IclBS3k5\nK4sPJ5nd15UAgFcixAFWFdOqqrq39f+rSylvSPL5vMYQp5SyepJSVdVLr7WCq7JWa6ItkvxTVVXX\n9nKy7vv0l6WUNyY5rJTy+aqqVoZQi+WolLJWVVUv9MWyq6qanWTqMpj1XVVVzZ/vtaWU9ZMcUkr5\nP1VVPdHTBH25HfpaVVW39HUdAODVrBRN8AGWwO+SDG5d1CRJSilHtLpaPV9KeayUcl4pZVj3iVpd\nE/6plPLFUsqfkryY5C2tceuVUr5TSvlzKeWF1r8XllLW6jb91qWUK0opT7a6OPymlLJT2zImlFJm\nlVLeWkqZUkp5tpRyTyllXLcyJ6f+VT1J5szvNtFt/CmllJtLKbNb63JtKWX79o1QSnlbaxnPter7\n5da0VVu5NUopXyql/G9r3R4spfxrb7ovlVIGl1LObk3zQinlj6WUL5RSSmv8IUnmpv6bNL61LjNe\nbb49uDl1i4PhbcvfrJRycSnl0dbyp5VSPtxW5k2llMtKKY+09v/MUsol87v6dOue8pHW/nmytW0v\nLqWsuzjr2za/D7bKPtZ6XVRKGdI2v/VKKT9sLe+vpZQLkixQplvZfUopU1vHzF9b67BJW5kZreV8\nopRyV6m7r91UStmxW5nrkrw7yTvLy11yrmuN27CUcn639XuolPKz0u2ztKRea91a43uzv+d35frb\nUsqkUkpnkv9czO24XynlllJKZ2vf3FZKObI3dexhvRfqTlVKua6U8utSyntL/Vl+tpRye/u6LKbf\ntf59Q9sy9mqtywtJPtMa96rHcatcb88hR5dS/ruU8kRrm04tpezRVmZ+V7xxpZR/LqX8pdRdYC8q\npQwspbxh/v4qpdxbSjm4bfr5+3XLVrlnSv1ZPrQ1/sBSn8M6Sym/KqVs3jb9At2pystdN7dvHVOz\nW9vj30rbua+U8jellF+09tMjpT4/HtGaftPF3lNtWp+Ja1vHdWdrfx3cQ7mqlHJqKeVzpZQ/tbbf\n9aWUrdrKrd4q91Crzte2tltV6r8v88tNKD2cj1vHznXd3vcvpZzROkY7W/vup6WULXuY9r2t+j/f\n2o+f6mk5rX3+zdZ6vNj69yulWxfiUkpHKeXbrf38QmvbT+5puQArCy1xgFXVZqmDg84kKaV8I8k/\nJPm3JP+Y5HWpuyn9bSllh6qq5nab9pAk05Mcm+SZJA+WUoYmuTHJsNZ0f0jdXWvvJP2SvFBKeVuS\nKUluSXJ46i5D45JMbi3j992WMTjJD5OcmeSrSQ5Nck4p5Y9VVf0qyblJRiQZm2TH1rp097okZ6Tu\nbrR2kgOS3FBK2aaqqtta6zw8yTVJHkxycOpA6gtJNu1he12UupvTN1vrOSrJ11plP9LjFk5XC5uf\nJ3lb6lZPtyXZI8npSdZL8uXW+B2T/Dp1l6pzkyxJS4BNkzyV5PFuyx+Z5LdJHmmt26NJPp7k0lLK\nh6qquqJV9OdJnkzy6SSPpd5+u2fhHzvOTDI5ySeTvDHJ15NsnOQ9i7G+3Z2V5GdJ9kvdEulbqfdl\n94uz/5dk69a097Tq/+32lS91yHdOkv9IfcwMSnJykutLKaOrqnq6W/GdWssbn+T51PvyZ6WUTauq\n+mvqC/mLkqye5MjWNPO7mVyY5PWpPyd/TrJBkl1SB2ipqmpGkgUu9BfTEtdtMfb3fJenPua+mVaX\nxN5sx1KHShfl5fPFakm2zMvh2ittv8Wxeepj5J9TH5f/kOSSUsqW3VqhLY7NWv/+tduwN6Vej6+l\nPq890dvjeDHPIZum/mzPSP39c6/U+3W3qqquaiv7pSTXteb55tSfi3lJ3prk35Oclvqz+h+llJuq\nqrqjbfpLupX7TJIflLql3pgkX0yyZurt+sMkf7+IbdXdhUl+lGSf1N3eTk59vjiptR36JfllkrVa\n9Xo0yaeS7NuLeffW3yT5SZJvpN4W70pybillQFVV320re0CSP6Zubdovyb8kubx13MxvNXpK6v34\nL6nPadskaf98LI61Un9WTk3yUOq/hZ9J8t+llFFVVf0lSUopb059bP1Pkk+06jc+yTrp1i241AH6\npNT7/2upj8HtW2WHpf4sJPXfuQ/m5fPjuknemUUE3QArhaqqvLy8vFbaV+rApUp9UbhGkqGpL6rm\nJvmvVplNW+9PbJv2na1pP9RtWJX6gmVAW9mvtubx1leoyzVJ7krSr9uw1VvD/qvbsAmt5byn27C1\nUocT3+827ORWuTVeZRus3lr3PyY5q9vwr6cOS0Z0GzYgycP1n4euYTu1lnNQ23z3bw3/u1dY9p6t\nMoe0DZ8f1AxvvV+jVe7kJdynhyV5KcnRbWXPS31BtW7b8F+m7o6V1C13qiQffIVljmmVuWoR22CX\nxVzf+fM7v63c2amDi9J6v2ur3Cfayl3ZGj6m9b4jdYD1g7Zym6W+sP4/3YbNSH0BOrTbsG1b89uv\n27Drkvy6h23RmeRzS+GzudDxuxTq9qr7u23Zn28r16vtmDrAfeJV1q/HOr7K8TWmbfo5Sd7Ybdj6\nqc8zX+7l/N6X+jMyOHWg0JnklrZlzEvbZ3gxjuNenUN6qN9qrXpdneTybsM3bS332rby/681/IBu\nw4am/syf1MN+PaiHco8nGdxt+OdaZV/fdvxN6Pb+kFaZU9rq87Mkd3d7f0Sr3Nu7DStJbm0N3/RV\n9teEJLMW47Mzf/v9e5Jb28ZVqcOMNbsN27c1fIdu26QzyXfapj0mbefhVt1mLOL4vu4V6rh66mD3\n6SRf6Db8h6k/owO7Ddso9XlvRrdhB7bq8q62+X4l9Wdx/db725Oc3ttt5+Xl5bUyvHSnAlYV/5v6\nguiJJN9JcnHqC/+kvlBeLcnFpe42tEbrV8Dfpv4C+q62eV1VVdVzbcPel+R31SLuqVDqJ8K8O/Uv\nxPO6LaOk/hW0fRnPVnWLmyRJVd+j4u4km6QXWs3Vf1VKeTz1Bcyc1L+4b9Gt2PZJplZV1fVUlNZ6\n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\nl6R+rPeU5bjcjtQtjn5eVdXYVysPsKrTEgdgFVZK+VrqL8/3p/61/VOp7ymye1/WC2gG55BaKeWY\n1C1w7kn9VMOPpr43UE9PuetzpZS/T12/36ZufbhN6tYsU1N3pVuWy/526i5iDybZOHULx6GpWxcB\n8CqEOACrtip1V6yNW///Q+p7DVz5ilMB1JxDai8k+ULqG8ivnrqb4aeqqjqvT2u1aJ1J3pW6+/Dg\n1F0C/zPJl6pl30y/f+ouVBuk7hb1P0neW1XVH5bxcgFWCrpTAQAAADTAyvBEAAAAAICVnhAHAAAA\noAEWN8SpVubXPffcU/Xv37864IADqiTV17/+9aqjo6PrNWDAgGq11VarHnvssR6nnzFjRvWe97yn\nGjhwYLXllltWkydP7hp3/vnnV9tss001ePDgasSIEdVxxx1XvfTSS32+zl5eXl5eXl5eXl5eXl5e\nXn3+6hUtcbo56qijst1223W9//KXv5zOzs6u1/HHH58xY8Zk+PDhPU7/yU9+Mm9961vz+OOP55/+\n6Z+y77775tFHH02SPPvssznzzDPz2GOP5be//W2uueaanHbaactlvQAAAIDmE+K0TJw4MUOGDMku\nu+zS4/iqqnLBBRfk4IMP7nH83XffnZtvvjmnnHJKBgwYkI985CN5y1vekksvvTRJ8ulPfzo77bRT\n+vXrl9e97nXZf//985vf/GaZrQ8AAACwchHiJJk9e3ZOPPHEnH766YssM2XKlDzyyCP5yEc+0uP4\nO+64I3/zN3+TQYMGdQ3beuutc8cdd/RY/oYbbshWW2312ioOAAAArDLW6OsKrAjGjx+fsWPHZsSI\nEYssc/7552ffffdNR0dHj+M7OzuzzjrrLDBsnXXWyQMPPLBQ2R/84Ae56aabcu655762igMAAACr\njFU+xJk2bVomT56cW265ZZFlnn322VxyySW5/PLLF1mmo6Mjs2fPXmDY7NmzF2iZkyT/9V//lS99\n6UuZPHnyIu+tAwAAANBulQ9xrrvuusyYMSObbLJJkrpFzdy5c3PnnXfm5ptvTpJcdtllGTZsWMaM\nGbPI+Wy11VaZPn16nn766a7g5tZbb81+++3XVeaqq67K4Ycfnp///Od5y1vesuxWCgAAAFjplKrq\n9ZOsksV47FVTPPvsswu0oDnttNMyY8aMnHPOOVlvvfWSJO973/uy/fbb56tf/eorzmv77bfPjjvu\nmFNPPTVXXnllDj300Nxzzz1Zb731cu211+ajH/1oLrvssrzrXe9apusEAAAAvTVnzpzMmjUrzz//\nfF9XZaW0+uqrZ8iQIRk+fHhWW22RtyYuvZnXKt8SZ+DAgRk4cGDX+46OjvTv378rwHnggQdy7bXX\n5jvf+c5C044bNy5J8t3vfjdJ/YSrQw45JEOHDs0mm2ySn/zkJ13z+drXvpannnoqu+++e9f0O+20\nU6688spltm4AAADwambNmpVBgwZl0003TSm9yhLopaqqMmfOnDz88MOZNWtWVy+gJbXKt8QBAACA\nVdldd92VLbfcUoCzDM2bNy9//OMfM2rUqEUV6dXG94hxAAAAWMUJcJatV+hGtXjzWSpzAQAAAGCZ\nEuIAAAAANMAqf2NjAAAAYEHlpG2X6/KqU25arstrKi1xAAAAgEb54Ac/mF122aXHcXfddVdKKbn6\n6qtfdT4HHHBAPvShDy3t6i0zQhwAAACgUcaOHZtf/epXmTFjxkLjzjvvvLz+9a/Pe9/73uVfsWVM\niAMAAAA0yh577JENNtgg//Ef/7HA8Dlz5uTCCy/MYYcdltVWWy233nprdt555wwYMCDrrrtuDjvs\nsMyePTtJcsIJJ+Tiiy/O5ZdfnlJKSin59a9/nST585//nI997GMZOnRohg0blj333DP33Xdf13Lu\nv//+fPCDH8ywYcMycODAjBo1KpdccskyX28hDgAAANAoa6yxRg4++OBMmDAh8+bN6xr+05/+NI89\n9lgOPfTQdHZ25v3vf3+GDh2a//mf/8mll16aG264IYcffniS5Itf/GI+8pGP5AMf+EAeeuihPPTQ\nQ/n7v//7dHZ2ZsyYMRk0aFCuv/763HjjjVlvvfWy66675rnnnkuSjBs3Li+++GKuu+663HHHHTn9\n9NOzzjrrLPP1FuIAAAAAjTN27NjMnDkzkydP7hp23nnn5X3ve19GjhyZCy+8MC+++GIuuOCCvOUt\nb8mYMWPy3e9+N//5n/+ZP/3pT+no6Ej//v2z1lprZcMNN8yGG26YNddcMz/84Q+z5ppr5txzz83o\n0aOz5ZZb5t///d/zxBNP5Morr0xSt8TZaaedMnr06Gy22WbZbbfd8r73vW+Zr7MQBwAAAGicN77x\njXn3u9+dH/zgB0mSBx98MJMmTcrYsWOT1Dc43nrrrbP22mt3TfPOd76za9yi/P73v8+9996bQYMG\npaOjIx0dHRkyZEhmz57d1aXq85//fE4++eTssMMOGT9+fG655ZZltZoLaOwjxpf3486awCPZAAAA\nWJWMHTs2hx9+eJ544olMmDAhw4YNy9577/2q05VSFjlu3rx52WabbXLxxRcvNG7ddddNkhx55JHZ\nfffd84tf/CKTJ0/O9ttvn/Hjx+eEE05Y8pXpBS1xAAAAgEbad999079//1x00UX5wQ9+kIMOOihr\nrrlmkmTUqFG59dZb88wzz3SV/81vftM1Lkn69euXuXPnLjDPt73tbbnnnnuy/vrr5w1veMMCr6FD\nh3aVGzlyZI488shccsklOfHEE/P9739/Wa+uEAcAAABopgEDBmS//fbLySefnPvuu6+rK1WSHHjg\ngenXr18OPvjg3H777bnuuusybty4fOxjH8umm26aJNl0003zhz/8IXfffXcee+yxvPTSSznwwAO7\nWvRMmTIlf/rTn3L99dfnC1/4QqZPn54k+exnP5tJkyZl+vTpueWWWzJp0qS8+c1vXubr29juVAAA\nAMCy0aTbdXzqU5/KOeeckx122KGrhU2SdHR0ZNKkSfnCF76Q7bbbLgMGDMiHPvShnHnmmV1ljjzy\nyNxwww3ZZptt0tnZmSlTpmTHHXfMlClTup5e9dRTT+V1r3tddt555wwZMiRJMnfu3Bx11FGZNWtW\nBg8enF122SWnn376Ml/XUlXV4pRfrMLLknviLKxJHzIAAABWDHfdddcC4QfLxqts50XfpKcb3akA\nAAAAGkCIAwAAANAAQhwAAACABhDiAAAAADSAEAcAAABWcYv50CMW09LavkIcAAAAWIWtvvrqmTNn\nTl9XY6X23HPPZc0113zN8xHiAAAAwCpsyJAhefjhhzNv3ry+rspKp6qqPPvss3nggQey/vrrv+b5\nrbEU6gQAAAA01PDhwzNr1qz88Y9/7OuqrJTWXHPNbLDBBhk8ePBrnpcQBwAAAFZhq622WjbZZJO+\nrga9oDsVAAAAQAMIcQAAAAAaQIgDAAAA0ABCHAAAAIAGEOIAAAAANIAQBwAAAKABhDgAAAAADSDE\nAQAAAGgAIQ4AAABAAwhxAAAAABpAiAMAAADQAEIcAAAAgAYQ4gAAAAA0gBAHAAAAoAGEOAAAAAAN\nIMQBAAAAaAAhDgAAAEADCHEAAAAAGkCIAwAAANAAQhwAAACABhDiAAAAADSAEAcAAACgAYQ4AAAA\nAA0gxAEAAABoACEOAAAAQAMIcQAAAAAaQIgDAAAA0ABCHAAAAIAGEOIAAAAANIAQBwAAAKABhDgA\nAAAADSALuZhUAAAgAElEQVTEAQAAAGgAIQ4AAABAAwhxAAAAABpAiAMAAADQAEIcAAAAgAYQ4gAA\nAAA0gBAHAAAAoAGEOAAAAAANIMQBAAAAaAAhDgAAAEADCHEAAAAAGkCIAwAAANAAQhwAAACABhDi\nAAAAADSAEAcAAACgAYQ4AAAAAA0gxAEAAABoACEOAAAAQAMIcQAAAAAaQIgDAAAA0ABCHAAAAIAG\nEOIAAAAANIAQBwAAAKABhDgAAAAADSDEAQAAAGgAIQ4AAABAAwhxAAAAABpAiAMAAADQAEIcAAAA\ngAYQ4gAAAAA0gBAHAAAAoAGEOAAAAAANIMQBAAAAaAAhDgAAAEADCHEAAAAAGkCIAwAAANAAQhwA\nAACABhDiAAAAADSAEAcAAACgAYQ4AAAAAA0gxAEAAABoACEOAAAAQAMIcQAAAAAaQIgDAAAA0ABC\nHAAAAIAGEOIAAAAANIAQBwAAAKABhDgAAAAADSDEAQAAAGgAIQ4AAABAAwhxAAAAABpAiAMAAADQ\nAEIcAAAAgAYQ4gAAAAA0gBAHAAAAoAGEOAAAAAANIMQBAAAAaAAhDgAAAEADCHEAAAAAGkCIAwAA\nANAAQhwAAACABhDiAAAAADSAEAcAAACgAYQ4AAAAAA0gxAEAAABoACEOAAAAQAMIcQAAAAAaQIgD\nAAAA0ABCHAAAAIAGEOIAAAAANIAQBwAAAKABhDgAAAAADSDEAQAAAGgAIQ4AAABAAwhxAAAAABpA\niAMAAADQAEIcAAAAgAYQ4gAAAAA0gBAHAAAAoAGEOAAAAAANIMQBAAAAaAAhDgAAAEADCHEAAAAA\nGkCIAwAAANAAQhwAAACABhDiAAAAADSAEAcAAACgAYQ4AAAAAA0gxAEAAABoACEOAAAAQAMIcQAA\nAAAaQIgDAAAA0ABCHAAAAIAGEOIAAAAANIAQBwAAAKABhDgAAAAADSDEAQAAAGgAIQ4AAABAAwhx\nAAAAABpAiAMAAADQAEIcAAAAgAYQ4gAAAAA0gBAHAAAAoAGEOAAAAAANIMQBAAAAaAAhDgAAAEAD\nCHEAAAAAGkCIAwAAANAAQhwAAACABhDiAAAAADSAEAcAAACgAYQ4AAAAAA0gxAEAAABoACEOAAAA\n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\nAAAAgAYQ4gAAAAA0gBAHAAAAoAGEOAAAAAANIMQBAAAAaAAhDsBycvbZZ2fbbbfNWmutlUMOOaRr\n+NSpU7Prrrtm2LBhWW+99fLRj340Dz300KvO75577kn//v1zwAEHLMNaAwAAKwohDsBysvHGG+eE\nE07IYYcdtsDwJ598MkcccURmzJiR+++/P4MGDcqhhx76qvM76qijst122y2r6gIAACuYNfq6AgCr\nin322SdJctNNN2XWrFldw3fbbbcFyh199NF597vf/YrzmjhxYoYMGZIddtgh995779KvLAAAsMLR\nEgdgBXPDDTdkq622WuT42bNn58QTT8zpp5++HGsFAAD0NS1xAFYgf/jDH/LVr341l19++SLLjB8/\nPmPHjs2IESOWY80AAIC+JsQBWEHce++92W233XLWWWdlp5126rHMtGnTMnny5Nxyyy3LuXYAAEBf\nE+IArADuv//+vPe978348eNz4IEHLrLcddddlxkzZmSTTTZJknR2dmbu3Lm58847c/PNNy+v6gIA\nAH1AiAOwnLz00kt56aWXMnfu3MydOzfPP/981lhjjTz88MPZeeedc/TRR2fcuHGvOI8jjjgin/jE\nJ7ren3baaZkxY0bOOeecZV19AACgjwlxAJaTU089NaecckrX+4suuignnXRSSimZPn16Tj755Jx8\n8sld4zs7O5MkX//61zNlypRceeWVGThwYAYOHNhVpqOjI/37989666233NYDAADoG6WqqsUpv1iF\nl6Vy0rZ9XYUVTnXKTX1dhRVS+f7v+7oKK6TqiG36ugoAAADUSm8KecQ4AAAAQAMIcQAAAAAaQIgD\nAAAA0ABCHAAAAIAGEOIAAAAANIAQBwAAAKABhDgAAAAADSDEAQAAAGgAIQ4AAABAAwhxAAAAABpg\njb6uAMCKZPAHLujrKqxwZl91UF9XAQAAiJY4AAAAAI0gxAEAAABoACEOAAAAQAMIcQAAAAAaQIgD\nAAAA0ABCHAAAAIAGEOIAAAAANIAQBwAAAKABhDgAAAAADSDEAQAAAGgAIQ4AAABAAwhxAAAAABpA\niAMAAADQAEIcAAAAgAYQ4gAAAAA0gBAHAAAAoAGEOAAAAAANIMQBAAAAaAAhDgAAAEADCHEAAAAA\nGkCIAwAAANAAQhwAWMF0dHQs8Fp99dXz2c9+dpHlp0+fnj333DODBg3K8OHDc9xxxy0wfuLEiRk1\nalTWXnvtbL755pkyZcqyXgUAAJaBNfq6AgDAgjo7Oxf4/4YbbpiPfvSjPZZ98cUXs+uuu+aoo47K\nj3/846y++uq5++67u8b/8pe/zPHHH58f//jHefvb356HHnpomdcfAIBlQ4gDACuwSy+9NOuvv352\n2mmnHsdPmDAhG2+8cY455piuYaNHj+76/0knnZQTTzwx22+/fZLkda973bKtMAAAy4zuVACwAjv/\n/PNz0EEHpZTS4/ipU6dm0003zW677Zbhw4dnzJgxue2225Ikc+fOzU033ZRHH300b3jDGzJixIgc\nffTRee6555bnKgAAsJQIcQBgBXX//ffn+uuvz8EHH7zIMrNmzcrEiRPzuc99Lg8++GD22GOP7L33\n3nnxxRfz8MMPZ86cOfnJT36SKVOmZNq0abnlllty6qmnLse1AABgaRHiAMAK6sILL8yOO+6YzTbb\nbJFlBgwYkB133DG77bZb+vXrl2OPPTaPP/547rrrrgwYMCBJ8tnPfjYbbbRRhg8fnmOOOSa/+MUv\nltcqAACwFAlxAGAFdcEFF7xiK5ykvv/NorpaDR06NCNGjFhg/KLKAgCw4hPiAMAK6MYbb8wDDzyw\nyKdSzXfAAQdk6tSpmTx5cubOnZszzzwzw4cPz6hRo5Ikhx56aL797W/nkUceyZNPPpkzzjgje+65\n5/JYBQAAljIhDgCsgM4///zss88+GTRo0ALDZ86cmY6OjsycOTNJssUWW+Siiy7KuHHjMnTo0Fx+\n+eW54oor0q9fvyTJ+PHjs9122+VNb3pTRo0albe+9a35yle+stzXBwCA165UVbU45Rer8LJUTtq2\nr6uwwqlOuamvq7BCKt//fV9XYYVUHbFNX1dhhTT4Axf0dRVWOLOvOqivqwAAACu7XvV51xIHAAAA\noAGEOAAAAAANIMQBAAAAaAAhDgAAAEADCHEAAAAAGkCIAwAAANAAQhwAAACABhDiAAAAADSAEAcA\nAACgAYQ4AAAAAA2wRl9XAACa6HN77dzXVVgh/dtPr+3rKgAArLS0xAEAAABoACEOAAAAQAMIcQAA\nAAAaQIgDAAAA0ABCHAAAAIAGEOIAAKwE7rnnnvTv3z8HHHDAIsvcfPPNede73pWOjo5ssMEGOeus\nsxYYf9ZZZ2WzzTbL2muvnVGjRuXuu+9e1tUGABaDR4wDAKwEjjrqqGy33XaLHP/YY4/lAx/4QM44\n44zsu+++efHFFzNr1qyu8eeee27OO++8/PznP8+oUaMyffr0DB06dHlUHQDoJSEOAEDDTZw4MUOG\nDMkOO+yQe++9t8cyp59+et7//vdn//33T5KstdZaGTVqVJJk3rx5OeWUUzJhwoS8+c1vTpJsvvnm\ny6fyAECv6U4FANBgs2fPzoknnpjTTz/9FctNnTo1w4YNyw477JD1118/e+21V2bOnJkkmTVrVmbN\nmpXbb789I0eOzGabbZaTTjop8+bNWx6rAAD0khAHAKDBxo8fn7Fjx2bEiBGvWG7WrFk5//zzc9ZZ\nZ2XmzJnZbLPN8slPfrJrXJJcffXVue222/KrX/0qP/rRj3Leeect8/oDAL2nOxUAQENNmzYtkydP\nzi233PKqZQcMGJAPf/jDXffNOemkkzJ8+PA89dRTGTBgQJLkuOOOy5AhQzJkyJAceeSR+cUvfpHD\nDz98ma4DANB7QhwAgIa67rrrMmPGjGyyySZJks7OzsydOzd33nlnbr755gXKjh49OqWUrvfd/7/F\nFlukX79+ixwPAKwYdKcCAGioI444Ivfdd1+mTZuWadOmZdy4cdljjz0yadKkhcoeeuihueyyyzJt\n2rTMmTMnX/va17LjjjtmnXXWycCBA/Pxj3883/rWt/L0009n1qxZ+f73v58999yzD9YKAFgUIQ4A\nQEMNHDgwG264Ydero6Mj/fv3z3rrrZcpU6ako6Ojq+zOO++cr3/969ljjz2y/vrr5957780Pf/jD\nrvFnn312Ojo6svHGG+cd73hH9ttvvxx22GF9sVoAwCIIcQAAVhInn3xyLrrooiTJTjvtlM7OzgXG\nf/rTn84DDzyQJ598Mj/96U8zcuTIrnGDBw/OxIkT8/TTT+fPf/5zTjzxRF2qVjIHHHBANtpoowwe\nPDhvetObcu655y6y7PTp07Pnnntm0KBBGT58eI477rglmg8AS5cQBwAAVgFf+tKXMmPGjMyePTtX\nXHFFTjjhhPz+979fqNyLL76YXXfdNTvvvHP+8pe/ZNasWTnggAMWez4ALH1CHAAAWAVstdVWWWut\ntZLUN64upeS+++5bqNyECROy8cYb55hjjsnaa6+d/v37Z/To0Ys9HwCWPiEOAACsIj7zmc9k4MCB\n2XLLLbPRRhtl9913X6jM1KlTs+mmm2a33XbL8OHDM2bMmNx2222LPR8Alj4hDgAArCK+853v5Omn\nn86UKVOyzz77dLWo6W7WrFmZOHFiPve5z+XBBx/MHnvskb333jsvvvjiYs0HgKVPiAMAAKuQ1Vdf\nPTvuuGNmzZqVc845Z6HxAwYMyI477pjddtst/fr1y7HHHpvHH388d91112LNB4ClT4gDAACroJde\neqnHe9mMHj16sZ5Mtqj5AKumxXmC3RlnnJENN9wwgwcPzmGHHZYXXnhhOda0mYQ4AACwknvkkUcy\nceLEdHZ2Zu7cuZk0aVJ+9KMfZZdddlmo7AEHHJCpU6dm8uTJmTt3bs4888wMHz48o0aNWqz5AKum\n3j7BbtKkSfnGN76Ra665Jvfff3+mT5+ek046qQ9q3CxCHAAAWMmVUnLOOedkxIgRGTp0aI499tic\neeaZ+eAHP5iZM2emo6MjM2fOTJJsscUWueiiizJu3LgMHTo0l19+ea644or069fvFecDkPT+CXbn\nn39+xo4dm6222ipDhw7N+PHjM2HChOVc2+ZZo68rAAAALFvrrbderr/++h7HbbLJJuns7Fxg2D77\n7JN99tlnseYDMN9nPvOZTJgwIc8991ze+ta39vgEuzvuuCN777131/utt946Dz/8cB5//PGsu+66\ny7O6jaIlDgAAALDU9OYJdp2dnfn/7d17tN/zne/x5zuC0SQiaURdmlBBCUlNJacqZUIV1aZDVAdV\nDWPOcmrhUEwpLVLG4dAyjZnOqEmQXlxSNb0I0+pgalxygqBNU5dIS9LQiMQlxPv88f3tZO9fdmT/\nduT3/X33fj7W2ivfW7JeO+u79m9/39/P5/0ZOHDgqv227VdeeaVpOavIIo4kSZIkSXpXrWsFu/79\n+7N06dJV+23bAwYMaFrGKnI6lSRJ0gb2nb3WbOjY2/3dQx8uO4IkqQnWtoLdyJEjeeSRRzjyyCMB\neOSRR9hqq62cSrUOjsSRJEmSJEnrrZEV7L7whS9w7bXX8sQTT7BkyRImT57MF7/4xeaHrhiLOJIk\nSZIkab01shLewQcfzFlnncX48eMZNmwYw4cP54ILLij5O2h9TqeSJEmSJEnrrdGV8E4//XROP/30\nZkTrMRyJI0mSJEmSVAEWcSRJkiRJkirAIo4kSZIkSVIFWMSRJEmSJEmqAIs4kiRJkiRJFeDqVJIk\nSVKruDTKTtCazs6yE0hSS3AkjiRJkiRJUgVYxJEkSZIkSaoAiziSJEmSJEkVYBFHkiRJkiSpAmxs\nLEmSJEnq4KWXXuKEE05g5syZDBkyhEsuuYSjjz6602tnzZrFaaedxqxZs+jXrx/nnHMOp556KvPn\nz2e33XbrcO3y5cu5/PLLOeOMM5rxbahmzpw5ZUdoSbvvvnvZERpmEUeSJEmS1MGXvvQlNtlkExYu\nXMjs2bM59NBDGT16NCNHjuxw3eLFizn44IO58sorOeKII1ixYgULFiwAYNiwYSxbtmzVtU8//TQj\nRoxg4sSJTf1epJ7E6VSSJEmSpFWWL1/OLbfcwkUXXUT//v0ZN24cEyZM4Prrr1/j2iuuuIKDDjqI\nY445hk033ZQBAwaw6667dvrvTps2jX333Zftt99+A38HUs9lEUeSJEmStMrcuXPp27cvO++886pj\no0eP5vHHH1/j2vvvv5/Bgwfz0Y9+lKFDh/LpT3+a+fPnr3FdZjJt2jSOO+64DZpd6uks4kiSJEmS\nVlm2bBmbb755h2MDBw7klVdeWePaBQsWMHXqVL71rW8xf/58dthhB4466qg1rrv33ntZuHAhRxxx\nxAbLLfUG9sSRJEmSJK3Sv39/li5d2uHY0qVLGTBgwBrXbrbZZhx22GGMGTMGgK997WsMGTKEl19+\nmYEDB666burUqUycOJH+/ftv2PBSD+dIHEmSJEnSKjvvvDNvvfUWv/vd71Yde+SRR9ZoagwwatQo\nImLVfvvtNq+99ho33XSTU6mkd4FFHEmSJEnSKv369ePwww/n/PPPZ/ny5dx3333cdtttHHvssWtc\nO2nSJGbMmMHs2bN58803ueiiixg3blyHUTgzZsxg0KBBjB8/vpnfhtQjWcSRJEmSJHUwZcoUXnvt\nNYYOHcpRRx3FNddcw8iRI7nnnns6TInaf//9ufjiizn00EMZOnQo8+bNY/r06R3+ralTp3Lsscd2\nOkpHUmPsiSNJkiRJ6mDw4MH86Ec/WuP4xz72MZYtW9bh2EknncRJJ5201n/rjjvueNfzSb2VI3Ek\nSZIkSZIqwCKOJEmSJElSBVjEkSRJkiRJqgCLOJIkSZIkSRVgEUeSJEmSJKkCLOJIkiRJkiRVgEUc\nSZIkSZKkCrCII0mSJEmSVAEWcSRJkiRJkirAIo4kSZIkSVIFWMSRJEmSJEmqgL5lB5AkSZIkNe7h\niLIjtJwPZ5YdQdqgHIkjSZIkSZJUARZxJEmSJEmSKsAijiRJkiRJUgVYxJEkSZIkSaoAiziSJEmS\nJEkVENlA9+6I+DkwZMPFqaQhwOKyQ6gyvF/UVd4raoT3i7rKe0WN8H5RV3mvqBHeL51bnJkHr+ui\nhoo4WlNEPJSZe5WdQ9Xg/aKu8l5RI7xf1FXeK2qE94u6yntFjfB+WT9Op5IkSZIkSaoAiziSJEmS\nJEkVYBFn/X2n7ACqFO8XdZX3ihrh/aKu8l5RI7xf1FXeK2qE98t6sCeOJEmSJElSBTgSR5IkSZIk\nqQIs4kiSJEmSJFWARRxJkiSpF4uIpyLivZ0c3yIiniojkySpc33LDiD1VhHx/sx8ruwcan0RsTXw\nvzPzrLKzqHwR0RcYCwwDNml/LjOnlRJKUtVtD2zUyfFNgW2bG0VVEBGDgEPo/LPowlJCqSVFxMbA\nvcAXMvO3ZefpCWxsLDVZRLwPOA84PjM3KzuPWl9EjAZmZWZnv2CrF4mIDwK3AzsAAaykeCHzJvBG\nZm5eYjy1KB+2tDYRcXht82bgBODldqc3Ag4AxmfmLs3OptYVER8BfgK8AWwJ/AHYurb/TGaOKjGe\nWlBELALGZebcsrP0BI7E6aaIeA/wIWAoddPSMvPWUkKpZUTEFsC3gU9QPFz9A3A1cD5wNvAEcHxp\nASVV1TeBhyk+f16o/TkQuAb4aom51KLW9bAFWMTp3W6u/ZnAtXXn3qS4R85oZiBVwmXAjcCpwFJg\nf2A58D3WvI8kgKnAicCZZQfpCSzidENEfJzih9Qac4cpPgR9W66LgX0pfmAdDFwJHAj0Aw7JzF+V\nmE1SdY0B9svM5RHxNtA3M2dFxFkUhWLffqqeD1taq8zsAxARTwNjMnNxyZFUDaOAEzIzI2IlsGlm\nPhURZwPTKX7mSO31A46JiAMpXkYtb38yM08pJVVF2di4e75F8VZru8zsU/dlAUcAhwKTMvPLwASK\naQ+/z8z9LeBIWg8BvFrb/hOre1UsAEaUkkitbhTwj1nMn2972FpIMSr062UGU+vIzB0s4KgBK9pt\nLwSG17aXAds0P44qYFdgFvBn4APAHu2+di8xVyU5Eqd7tgcmZOYfyw6ilrUNxZQpam8mXgf+pdxI\nalURcdU6LhnSlCCqgjnAaOAp4AHg7Npb0BOBeWUGU8vq7GHrSXzYUp2I+GvgdGC32qEngSsyc0Z5\nqdSiZlGMDJ0L3A1MjoitgM8Dj5aYSy0qM8eXnaEnsYjTPfcBuwC/LzuIWlYfirnkbVay+u25VG+P\nLlzznxs8hargGxRDkqHogfMT4JfAYuDIskKppfmwpXWKiDMopoJPA/6tdnhvYHpEnJeZl5eVTS3p\nXD40AuIAABB5SURBVGBAbfurFPfN1RQ/ZyaVFUqtLyKGADsCszPzjbLzVJWrU3VDrZP/ZOAK4DE6\nPqyTmbPKyKXWUetVcSdF40goVgX5FXWFnMyc0ORoknqYiBgM/Dn9QFcnImIvYEBm/jIitqR42NqH\n2sNWZj5WakC1hIh4Hjg/M/+l7viJwIWZuXU5yST1BBExAPguMJGih+xOtdkK/wS8kJlfLzNf1VjE\n6YbaA/rapH1xFBHXdeW6zPRthdZQe0uxIjOXlp1FrSUiTgOmZ+aisrNI6jki4hVgz8ycV3d8BPD/\nMnNA539TktYtIqZQTAf/EnAvMKpWxPkU8I3MHF1qwIqxiNMNETH8nc5n5rPNyiKpZ4iIzSmmyhwF\nDKod/hNwHcVb0NfKyqbWERHzgfcBvwCuB2ZkplM1Ja2XiLgeeDwz/6Hu+NkUD1vHlJNMrSIiHqVY\nHfHPEfEYxWiKTmWmKyWqg4hYAByWmQ/Wisaja0WctqlVFoobYE+cbrBII+ndFBFbAP9F0XD0RmpN\nsYGRwCnAxyNiHMUqM3tn5roaIavnGg78FXA0Rf+Bf4qI24AbgJmZ+U4jRdVLrOsBqz0ftlQzD/j7\niBgP/Lp27CO1rysi4vS2CzPzihLyqXy3sLpNwM1lBlElDQJe7OT4AIreoWqAI3G6KSJGAV+m6OCf\nFA9dl2XmnFKDSaqciLicom/SxzPz+bpz21D0V5oDHASckZnXNj+lWk1EbAJ8iqKg80lgSWa62pCI\niK919drMvGBDZlE1RMTTXbw0M/MDGzSMpB4nIu4GfpSZ36yNxBmVmU9HxDXA8Mz8ZLkJq8UiTjdE\nxATgVuAeijl9AONqX4dn5u1lZZNUPRHxFHByZv50LecPBW6nKBSf3dRwamkRsTVFEedvgV0ys0/J\nkSRJkjqIiI8CdwDfp1gd8V8pRpyPBfZ1YaDGWMTphtqc0BmZ+bW64xcCn7Exk6RGRMTrwIjMXLCW\n89sBz2SmU2DVtsLDEcAxwH4U0yCmAzdkZlffpkuS1GVO09T6iog9KGayfBjoA8wCLnWVxMb5QNA9\nO1M0lKx3PXBWk7NIqr4lwDZAp0UcYDs6n0esXiYibqaYOrUU+AHwlcx8sNxUanURMYmiafowYJP2\n55wa03tFxFUUP0OW17bXKjNPaVIstS774Gi91Io1x5WdoyewiNM9iygqiPPqjn8YWNj8OJIq7hfA\nucBn1nL+K8B/NC+OWtgbwESKJsY2AtQ6RcSZFD9D/hnYF5gCjKhtX15iNJVvD2Dj2vYo1j7KwmH7\nsn+W3hW1Xo9DKUbirOJ0qsY4naobIuI84AzgMooVZQD2oRgedllmfqOsbJKqJyJ2AR4EfgP839qf\nUDROPwPYCRibmb8tJ6GkqoqIucA5mXlz3bKu5wHDMvPEkiNKknq4iNiTYiXNDwJRdzozc6Pmp6ou\nizjdEBEBnEbxcNW2EsgfKYo6V6X/qZIaFBFjge+yesU7KD7kngAmOWVGbSJiEMVqZp1NjbmwlFBq\nWRHxKvDBzJwfEYuAT2Tm7IgYATyQmYNLjqiSRcTGwHPAAZn5eNl51PrW1R/HnjiqFxEPUrQGuJDi\nubnD/ZOZz5aRq6qcTtUNtSLNlcCVtQaTZOYr5aaSVGWZ+QCwe0R8iKLvFsDTwG/8+aI2EfER4KfA\n68CWwB+ArSmmWT1D8cuR1N4LwBBgPvAssDcwm2JKlS+dRGa+GRFv4v2grqvvj7Mx8CGKmQnfbn4c\nVcBuwJ6ZObfsID2BRZz15MOVpPUVEQcA783MH2bmbGB2RHwFmAb0jYi7gL/JzCWlBlUruIxiOPKp\nFM2N9weWA98Dri0xl1rXL4AJFKuAXEvxAupI4C+BH5YZTC3lauArETEpM98qO4xa29r649R6cA1v\nchxVw2PA+wCLOO8Cp1N1Q0QMBr4BHEDnjZk2LyOXpGqKiDuBn2XmFbX9scD9FA9cTwJnUiwffWZ5\nKdUKIuJlYExmzo2IJcDemflkRIwBpmfmTiVHVIuJiD5An7YH84j4HMXb8rnAP2fmm2XmU2uIiNuB\n/YDXgDkUxeFVMnNCGblULRGxI/BQZg4qO4vKV3tmbvMh4GLgqxQFnQ6fPZn5UhOjVZ4jcbrnWmBP\n4Dt0MqdPkhq0B/D37fY/C/xXW8PRiHgOmExRzFHvtqLd9kKKN55PAstY3aNNWiUz3wbebrf/A4rl\n6aX2FgO3lB1Clbcv8GrZIdQyFtPxOTmAmZ0cS8DGxg2wiNM9BwAHZuZ/lx1EUo+wBbCo3f4+FH1P\n2jwIbNvURGpVs4AxFKMo7gYmR8RWwOeBR0vMpRYVEScDSzLzhrrjnwc2z8wp5SRTK8nMSWVnUHVE\nxI/rD1H0Z9sTcClytRlfdoCeyiJO9yyieOspSe+G54EdgeciYlOKX4LOa3d+AEXjWulcivsBiiHJ\n0yh6WcwFji8rlFraacAJnRx/BrgOsIgjImIksFFmPlp3fBTwVmY+UU4ytaiX6Dia4m3gceCczJxZ\nTiS1msz8Vdt2RAwDnqtfxbm26vP7m52t6uyJ0w21+eRHAsdlpsUcSeslIqYAe1FMqZpAMapim8xc\nUTt/DHBKZv6P8lJKqqKIeJ1iifFn6o5vDzyZmZuVEEstJiLuA76dmdPrjv8NcHJmjisnmaSeICJW\nAltn5qK64+8FFmWm06ka4EicLoqIx+hYcd4BWBQRz7JmY6ZRzcwmqfLOB24F7qIY5XdcWwGn5njg\nzjKCqTV0MnS9M29RjOqamZm3beBIqo4XKBpKPlN3/C8p+hVIAKOABzo5/iBF3zbJzyKtj7beN/X6\nA683OUvlWcTpupvLDiCpZ8rMxcC+ETEQWJaZK+su+SxO4eztXuzCNX2AEcDxEXFpZn59w0ZSRUwH\nroqI5RR9lKDoU/BN4MayQqnlrAQGdnJ8EMXDlwR+FqlBEXFVbTOBSyKifePrjYCxwOymB6s4p1NJ\nktSDRMRngKsyc3jZWVS+iNiYonfS5yge1KH4xfmHwLEuMS6AiLiN4v74bNuLhIjoC9wEbJyZnyoz\nn6rHzyIBRMQva5v7Ab+m4yqbKyhGiV6emb9rcrRKs4jTDRHxFDAmM1+sO74FMCszP1BOMklSb1eb\nX/7DzDyg7CxqHRExgqJpOhS9cOaUmUetJSJ2Ae6lGPV5b+3wOIqpDvtm5pNlZVM1+Vmk9iLiOor2\nAVvVDs3LzCUlRqq0PmUHqKjt6Xwt+02B7ZobRZKk1TLzRX9pVkQcEBFHtu1n5jyKKQ7XA7Mj4ue1\nl08Smflbir4404HBta8bgdEWcNQdfhapTW1lqi2Bp4H/rn0tjogf186pQY7EaUBEHF7bvJliuc6X\n253eCDgAGJ+ZuzQ7myRJUpuIuBP4WWZeUdsfC9wPXAs8CZwJ3JCZZ5aXUpLUk0XEthQN0t8GpgBP\n1E6NBP5XbXtMZv6xhHiVZRGnARHxdm0zWbPJ25sUc/rOyMx/b2YuSZKk9iLiBeDQzHy4tn8ZsHfb\nUtER8Vlgsi+eereI6A9s2r5FQETsSlHk6w/cmpnfLyufpGqLiO9QFGw+npmv1Z17DzATeDwz/2cZ\n+arK1akakJl9ACLiaYqKoUtzSpKkVrQFsKjd/j7AT9vtPwhs29REakXXUIwsPxkgIoYA91C8NX8e\nuDEi+mTm9PIiSqqwTwLH1BdwADLz1Yj4KnBD82NVmz1xuucwCziSJKmFPQ/sCBARm1I0Nf51u/MD\ngDdKyKXWsjcwo93+sRQrxuyUmaOBy6kVeCSpG7YEfv8O5+fVrlEDLOJ0z6yIeDgiToqIgWWHkSRJ\nqvMz4P9ExP7ApcByihEWbUZR/PKs3m1rOj5gjQduycy2vo9TgZ2ankpST7GIoqn+2uxEx1Gj6gKL\nON2zC8X8vXOBP0bEDRExvuRMkiRJbc4HXgfuAo4HTszMFe3OHw/cWUYwtZRXgX7t9tsaYLd5HXhP\nUxNJ6kl+BkyujQjtICL+AriIjlN91QU2Nl4PEdEHOASYBHwaWAB8F5iamQvKzCZJklQbMbwsM1fW\nHR9cO76i87+p3iAi7gJmZ+aXI+KvgP8AtsvM52vnDwSmZKajcSQ1LCK2AR4CVgL/CPymdmo3itWp\n+gJ7ZeYfyklYTRZx3gW1KuJJwCXAJsBbwK0UK1V5Q0qSJKnlRMR+FG/KF1P0pZiemSe0Oz8F2Cwz\nJ5UUUVLFRcT2FMuLH8TqFZ4TuAM4OTOfKidZdVnEWQ8RMZZiOPLngKXAdRQjcbYGLgQGZ+aY8hJK\nkiRJa1dbUvwTwAvATZn5drtzfwc8kJmzy8onqWeIiEGs7rE1LzNfKjNPlVnE6YaIOJ2ieLMz8O/A\nvwI/r/vQ2w54JjNdxl2SJEmSJK03CwzdcxJF4ebfMnPhWq5ZBJywlnOSJElSy4iIvhSNjYdRtAdY\nJTOnlRJKkrQGR+I0ICLeA1wGHEZRALsLOCUzF5caTJIkSeqmiPggcDuwA0XPipUUv+u+CbyRmZuX\nGE+S1I5LjDfmAuCLFFOovgccCFxTZiBJkiRpPX0TeBgYSLHs+K7AXsBsYGKJuSRJdRyJ04CI+D1w\nbmZ+v7Y/FrgP+Iv6pTslSZKkKoiIF4H9MnNORLwMjM3M39ZWr7o6M0eVHFGSVONInMa8H7inbScz\nH6BYTnyb0hJJkiRJ6ycoRuAA/AnYtra9ABhRSiJJUqdsbNyYjYAVdcfewv9HSZIkVdccYDTwFPAA\ncHZErAROBOaVGUyS1JHTqRoQEW8DdwJvtDt8CPArVr+9IDMnNDmaJEmS1C0RcRDQLzNvjYgPAD8B\ndgEWA0dm5t1l5pMkrWYRpwERcV1XrsvMSRs6iyRJkrShRMRg4M/pw4IktRSLOJIkSVIvFhGnAdMz\nc1HZWSRJ78wijiRJktSLRcR84H3AL4DrgRmZ+eo7/y1JUhlcnUqSJEnq3YYDBwHPAVcDCyPihog4\nOCJ8XpCkFuJIHEmSJEkARMQmwKeAo4FPAksyc5tyU0mS2lhZlyRJkgRAZq4Afl37epZimpUkqUVY\nxJEkSZJ6uYgYEBGTIuIuYD7wt8B0YMdyk0mS2nM6lSRJktSLRcTNFFOnlgI/AG7IzAfLTSVJ6kzf\nsgNIkiRJKtUbwERgZmauLDuMJGntHIkjSZIkSZJUAY7EkSRJknq5iBgEHAIMAzZpfy4zLywllCRp\nDY7EkSRJknqxiPgI8FPgdWBL4A/A1hTTrJ7JzFElxpMktePqVJIkSVLvdhlwA7AtRSFnf4oROQ8B\nl5aYS5JUx5E4kiRJUi8WES8DYzJzbkQsAfbOzCcjYgwwPTN3KjmiJKnGkTiSJElS77ai3fZCYHht\nexmwTfPjSJLWxsbGkiRJUu82CxgDzAXuBiZHxFbA54FHS8wlSarjdCpJkiSpF4uIvYABmfnLiNgS\nmAbsQ1HUOT4zLeRIUouwiCNJkiRJklQBTqeSJEmSeqGI+HEXLnsLeB6YmZm3beBIkqR1sIgjSZIk\n9U4vduGaPsAI4PiIuDQzv75hI0mS3onTqSRJkiS9o4j4DHBVZg5f58WSpA3GJcYlSZIkrcu9wLyy\nQ0hSb+dIHEmSJEmSpApwJI4kSZIkSVIFWMSRJEmSJEmqAIs4kiRJkiRJFWARR5IkSZIkqQIs4kiS\nJEmSJFXA/wcEuGk6fbjIxQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fa2f3447510>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bar_width = 0.5 # width of each bar\n",
"bar_colors = ['#007E33', '#0099CC', '#0d47a1', '#6d4c41', '#9933CC', '#FF8800', '#CC0000', '#d3d3d3'] # bar colors\n",
"title = 'Percentage of Respondents\\' Interest in Progamming Languages' # title of bar plot\n",
"\n",
"# call function to generate bar plot\n",
"generate_bar_plot(programming_languages_data_sorted, survey_data.shape[0], bar_width, bar_colors, title)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 4. Visualizing Responses to Question on Data Science Tools"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Let's retrieve the data pertaining to Question 4 and transform it in a *pandas* dataframe"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Votes</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Jupyter</th>\n",
" <td>233</td>\n",
" </tr>\n",
" <tr>\n",
" <th>IBM Data Science Experience</th>\n",
" <td>317</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Spark / Hadoop</th>\n",
" <td>793</td>\n",
" </tr>\n",
" <tr>\n",
" <th>IBM SPSS</th>\n",
" <td>136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Other</th>\n",
" <td>102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Anaconda</th>\n",
" <td>247</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Apache Zeppelin</th>\n",
" <td>48</td>\n",
" </tr>\n",
" <tr>\n",
" <th>RStudio</th>\n",
" <td>357</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Votes\n",
"Jupyter 233\n",
"IBM Data Science Experience 317\n",
"Spark / Hadoop 793\n",
"IBM SPSS 136\n",
"Other 102\n",
"Anaconda 247\n",
"Apache Zeppelin 48\n",
"RStudio 357"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datascience_tools_data = survey_dictionary[questions[3]] # get the data pertaining to question 3 from the survey dictionary\n",
"\n",
"# convert the dictionary into a pandas dataframe\n",
"datascience_tools_data = pd.DataFrame.from_dict(datascience_tools_data, orient='index')\n",
"datascience_tools_data.columns = ['Votes'] # label the only colum in the dataframe as Votes\n",
"\n",
"# display the resulting dataframe\n",
"datascience_tools_data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Next, let's sort the dataframe in descending order of 'Votes'"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Votes</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Spark / Hadoop</th>\n",
" <td>793</td>\n",
" </tr>\n",
" <tr>\n",
" <th>RStudio</th>\n",
" <td>357</td>\n",
" </tr>\n",
" <tr>\n",
" <th>IBM Data Science Experience</th>\n",
" <td>317</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Anaconda</th>\n",
" <td>247</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Jupyter</th>\n",
" <td>233</td>\n",
" </tr>\n",
" <tr>\n",
" <th>IBM SPSS</th>\n",
" <td>136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Other</th>\n",
" <td>102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Apache Zeppelin</th>\n",
" <td>48</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Votes\n",
"Spark / Hadoop 793\n",
"RStudio 357\n",
"IBM Data Science Experience 317\n",
"Anaconda 247\n",
"Jupyter 233\n",
"IBM SPSS 136\n",
"Other 102\n",
"Apache Zeppelin 48"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datascience_tools_data_sorted = datascience_tools_data.sort_values('Votes', ascending=False)\n",
"\n",
"datascience_tools_data_sorted # view the sorted dataframe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Before we plot the data, let's move the 'Other' row to the end and shorten some of the long choices"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Votes</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Spark / Hadoop</th>\n",
" <td>793</td>\n",
" </tr>\n",
" <tr>\n",
" <th>RStudio</th>\n",
" <td>357</td>\n",
" </tr>\n",
" <tr>\n",
" <th>IBM DSX</th>\n",
" <td>317</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Anaconda</th>\n",
" <td>247</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Jupyter</th>\n",
" <td>233</td>\n",
" </tr>\n",
" <tr>\n",
" <th>IBM SPSS</th>\n",
" <td>136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Apache Zeppelin</th>\n",
" <td>48</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Other</th>\n",
" <td>102</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Votes\n",
"Spark / Hadoop 793\n",
"RStudio 357\n",
"IBM DSX 317\n",
"Anaconda 247\n",
"Jupyter 233\n",
"IBM SPSS 136\n",
"Apache Zeppelin 48\n",
"Other 102"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# shorted IBM Data Science Experience to IBM DSX\n",
"datascience_tools_data_sorted.index.values[2] = 'IBM DSX'\n",
"\n",
"# move the Other row to the end\n",
"datascience_tools_data_sorted.loc[['Other', 'Apache Zeppelin'], :] = datascience_tools_data_sorted.loc[['Apache Zeppelin', 'Other'], :].values\n",
"datascience_tools_data_sorted.index.values[-2:] = ['Apache Zeppelin', 'Other']\n",
"\n",
"datascience_tools_data_sorted # view the modified dataframe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Let's generate a grouped bar plot for the responses to Question 4"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABHEAAAJQCAYAAAAJyPjoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XucXVVhL/DfIoEwZEIICRBJglFQwFi4CnjldQFBiCCI\nCIjKS6iQiqJS1Lby1NiL0qK1XKgKSngILQ8v1asEwQYCVAQEWkAeBgMEEAwBkkACSdj3j31mmEwm\nJAOZTDb5fj+f88mcvddZe+19ztmZ/Zu11i5VVQUAAACAVdsa/d0AAAAAAJZNiAMAAADQAEIcAAAA\ngAYQ4gAAAAA0gBAHAAAAoAGEOAAAAAANIMQB6KVSypGllKrLY04p5e5SyudKKQP7u31vRCll11LK\naaWUN8X/D6WU7Uspt5ZSXmi9V/9jKeW6v6cvl1KmlVL+vpSy9spud39ovfdVKWXXPtzGkaWUo17H\n68YuT9tan93q9XwPX2/bVqbetHFFv59d6ut4zCulzCil/KKU8pellLVeZ71jW+/b21dEO7vUu24p\n5fRSyn2t7/+zpZT/LqV8v5SyYS/rqkopp63I9q0MXb43y3pM6YNtj2/V/f4VXTfA6q7RFxsA/eyg\nJDOSrNv6+Z+TbJjklP5s1Bu0a5JTk0xM8kr/NmWFOD/JvCT7JnkxyYPLKN/xng5J8tEkf9v6+fN9\n2MbVyZGpf/f4UT+3oydHZtVtW4cjs/xt/F2S7ZPct4LbcHyS25KsmWTjJB9M8n+SfK6U8sGqqv7c\ny/rGpj7n3JTk4RXRwFLKgCTXter+VpK7kgxO8u4kn2i1++leVLl96vNC0zyZuu1d/WeSC5J8v8uy\n2SurQQC8cUIcgNfvrqqq/tD6+dpSymZJvpA3GOK0LkBKVVUL32gDV2et3kSbJ/lmVVW/Xs6XdX1P\nf1VKeUeSo0opX6iq6s0QarESlVIGVVX1Un9su6qq2Ul+0wdV/76qqq71/msp5fwkv04dLu3bB9vs\nrV2SbJdk/6qqru6y/N+T/H1vexp229/GaH32Fmt7KSVJHm/qPgFgOBXAinRbknW7dtUvpRzTGmo1\nv5Qys5Ryfill/a4vanU5/2Yp5W9KKX9M8nKSv2it26CUck4p5bFSykutfy8qpQzq8vqtSyn/3hou\nMK+UcnMpZedu27igNfThPaWUqaWUF0spD5VSJnQpc1rqv4gnyYKOrvZd1p9eSvldKWV2a19+3VNX\n+VLKe1vbmNdq79+1Xlt1KzewlPK3pZT7W/v2RCnlH5dn+FJrqMTZrde8VEp5oJTypdK6QimlHJlk\nUer/505u7cv0ZdXbg98lWSfJiG7bf1sp5ZJSyp9b27+rlPLRbmXeWUr5aSnl6db7/2gp5fLSGupT\nXh2e8rHW+/Ns69heUkoZ3pv97Vbffq2yM1uPi0sp63Wrb4NSyk9a23uulHJhksXKdCl7QCnlN63P\nzHOtfdikW5npre0cUkr5famHr9xeStmpS5kpqS+udyzdhnGUUkaWUiZ12b8nSyk/L70c9rKU9r+h\ntrXWL8/73TGU692llMmllLlJ/q2Xx/GTpZQ7SylzW+/Nf5dSjl2eNvaw30sMpyqlTCml3FRK2aPU\n3+UXSyn3dN+X3qqq6j+T/EuSD5dSNu2yvc+VUv6zlDKrtc+/KaXs07WNSf6j9fRXXfZr19b6Q0p9\nnvlz65jcWUo5Yjma1HGO/dNS2rtYIFtK+Wipz5sdx/23pZT9uqxfYjhVWUHn3S5l31bqc/ufWp+x\nh0sp/9StzC6llOtLPYT3hdbn7N3LcTyWSylljVLKV1ptfLmU8ngp5Z9KKYO7lVuvlHJuq60vl/oc\n/rnlqP/Drc/A7Nax/n0p5W9WVPsBVhdCHIAV522pg4O5SVJKOSP1MIPrkuyX5MtJxif5Zal723R1\nZJJ9kpzY+veJUsqwJLck+XiSs5LsneQrqYcxrNXaxntbZdZP8pkkH0vyTJLrSinbdNvGukl+kuTi\nJB9JHTqdW0rZrbX+vNTDj5Jkp9Td8Lt2xR+V5Dut1x6ZejjCjaWUv+goUEoZkeT6VnuOSD0Maa9W\n+e4uTnJSq037JPnfSY5OckkPZTuV+q/o/y/Jp5P8Y+q//F/TOkbfbBX7f619SGuftk89PKq3xiZ5\nPvUx7dj+mCS3Jtk6yZdSv7e/S3Jl1wu/VhtGJfmr1Mfgb5K8lCX/7/1ukir1MI+vteq7opf729U/\nter7ZJLTU38m/qlbmauSfDjJ36X+fC1MPRxwMa2LzStTD8k5MMmxqYek3FBKGdKt+M5J/jrJya06\nByT5eXk1QPpskjuT/Fde/Wx9trXuotbzL6cennN86uEr6yRJVVXTq6oqVVVN6WF/l8frblsv3u8O\nVye5oVXuO606lnkcSx0qXdx67f6tcj/Mq+Haax2/3tg09efhrCQHpB5yc3mpexK+Eb9o/btjl2Vj\nU59XDkp93G9PfdzHt9b/LslxrZ+Pz6v79bvWsren/i58KvUx+VmS83oKQbr5XerP9PdbAc2wpRUs\npXw+9ffh6dTnrIOS/LTV9qW9ZkWed1NKeVuS3yb5X6l7co5P/d0d0aXMPqnPrXOTHJr6+z0kydTW\nZ3RF+IfUw89+nvr88J0kxyT591I6A/KBSSa32vC/U5+Pfp3kn0spS+2FWkrZIvVxvj/1Mf5I6s9h\n9/MIAMtSVZWHh4eHRy8eqQOJKvVQnYFJhqW+KFuU5P+2yoxtPT+l22t3bL12/y7LqiRPJGnrVvbr\nrTre8xptuT7J75Os1WXZgNay/9tl2QWt7ezWZdmg1BceP+iy7LRWuYHLOAYDWvv+QJJ/6rL871MH\nFaO7LGtL8lT9X07nsp1b2zm8W72fai3/H6+x7Q+3yhzZbfl5rW2PaD0f2Cp32ut8T49KfSH4uW5l\nz0/y5yTDuy3/VerhWEl98VUl2e81trlrq8w1SzkGu/dyfzvqm9St3NlJ5qceopfUIUmV5JBu5X7Z\nWr5r63l76gDrR93KvS11b7Evdlk2PcmzSYZ1WbZtq75Pdlk2JclNPRyLuUmOXwHfzSU+vyugbct8\nv7tt+wvdyi3XcUwd4M5axv712MZlfL527fb6BUne0WXZhqnPM3+3nPXtsZT1m7fWf3Up69dI/d26\nNsnVy1tvD6//YZK7l2P//7L1uapSz+91b5Izk2zcpcy6SeYkuWoZdS12HsmKP+9e2Grrxq/Rhj8k\nub7bsnWTzEzy3V58R6okE3tYPrL12fiXHo5jlWTP1vMD0/P54+LU844NbT0f3yr3/tbzQ1vvw6Dl\nbauHh4eHR88PPXEAXr/7U//SOyvJOal7kHTcOeaDqS86Lin1sKGBrb9g3pr6ouF/davrmqqq5nVb\ntmeS26qqurOnjZdS2lIPr7g8yStdtlFS9/7pvo0Xq6rqGLqQqp4v4cEkm2Q5tIZg/Ecp5ZnU4caC\nJO9MffHW4f1JflNVVeckoK39+n/dqhuf+gL2im7H59rW+u5t7+p/pb4Y+Em35Ren7qHUfSLP3uj6\nnp6f5PtVVZ3dQ9t/keT5bm2fnGTrUsq6qS/SHk5yRinlM6WeW2dp/q3b88tT71/HfvR2f7sf6/9O\nfeG4Uev59qkv2q/sVu6ybs+3T32R2P0z/Fjq49T9PfrPqqqe7bbdZPk+X7cl+XIp5QullL/o+Kv/\n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\n7Nmz+3K3AAAAaAAhDvTCxhtvnJNOOilHHXVUj+ufe+65zJ07N3Pnzs3JJ5/cY5lZs2Zl3333zZe/\n/OU899xz+cpXvpJ99903zz77bJLkwgsvzEUXXZSbb745TzzxRObNm5fPf/7zfbZPAAAANIMQB3rh\ngAMOyP7775/hw4e/7jpuueWWjBw5MgcddFAGDBiQQw89NBtssEGuuuqqJMnPfvazHH300RkzZkza\n29vz1a9+Nf/6r/+aF198cUXtBgAAAA0kxIEV6K1vfWtGjx6dT3/605k5c+ZSy1VVtcTze+65p8f1\nVVXlpZdeykMPPbTiGwwAAEBjCHFgBRgxYkRuu+22PPLII7njjjsyZ86cfOpTn+qx7Pbbb58nnngi\nl156aRYsWJBJkyZl2rRpnT1txo8fn/POOy/Tp0/P888/n29961tJoicOAADAak6IAytAe3t7tt12\n2wwcODAbbbRRzj777Fx77bWZM2fOEmWHDx+eq6++OmeddVY22mijXHPNNdljjz0yevToJMlRRx2V\nT3ziE9l1110zbty47LbbbknSuR4AAIDVkxAH+kApJUnyyiuv9Lh+l112yW233ZZZs2bloosuyv33\n35/3ve99SZI11lgjp59+eqZPn54ZM2Zk3LhxGTVqVEaNGrXS2g8AAMCqR4gDvbBw4cLMnz8/ixYt\nyqJFizJ//vwsXLgwt956ax544IG88soreeaZZ3L88cdn1113zdChQ3us584778yCBQsye/bsnHji\niRkzZkz22muvJPXdq6ZNm5aqqnLfffflhBNOyCmnnJI11vB1BQAAWJ25KoRemDhxYtra2nLGGWfk\n4osvTltbWyZOnJiHH34448ePz5AhQ/Lud787gwYNyqWXXtr5ugkTJmTChAmdz7/97W9nxIgRGTNm\nTJ588sn89Kc/7Vw3c+bM7L333hk8eHA+9KEP5aijjsoxxxyzUvcTAACAVU/pfpecZehV4b5UTt22\nv5uwyqlOv72/mwAAAAD0XlmeQnriAAAAADSAEAcAAACgAYQ4AAAAAA0gxAEAAABoACEOAAAAQAMI\ncQAAAAAaQIgDAAAA0ABCHAAAAIAGEOIAAAAANIAQBwAAAKABhDgAAAAADSDEAVhJzj777Gy77bYZ\nNGhQjjzyyB7LfP3rX08pJdddd12P659++ul84hOfyMYbb5yhQ4dmxx13zK233tqHrQYAAFYVQhyA\nlWTjjTfOSSedlKOOOqrH9dOmTcvll1+et7zlLUutY+7cudluu+1yxx13ZNasWTniiCOyzz77ZO7c\nuX3VbAAAYBUxsL8bAH2t/OCO/m7CKqk6Zpv+bsJq54ADDkiS3H777ZkxY8YS64877rh861vfymc/\n+9ml1vH2t789J5xwQufzY445JieeeGIeeOCBbLON9xQAAN7M9MQBWAVcfvnlGTRoUPbee+9eve6u\nu+7Kyy+/nM0226yPWgYAAKwq9MQB6Gdz5szJ3/3d3+VXv/pVr143e/bsHHbYYTn11FMzdOjQPmod\nAACwqtATB6CfnXbaaTnssMMyduzY5X7NvHnzsu++++b9739//vZv/7bvGgcAAKwyhDgA/ez666/P\n9773vYwcOTIjR47MY489loMPPjjf+ta3eiz/0ksvZf/998/o0aPz/e9/fyW3FgAA6C+GUwGsJAsX\nLszChQuzaNGiLFq0KPPnz8/AgQNz/fXXZ8GCBZ3ltttuu5x11ln50Ic+tEQdCxYsyIEHHpi2trZM\nmjQpa6whiwcAgNWF3/4BVpKJEyemra0tZ5xxRi6++OK0tbVl4sSJGT58eGcvnJEjR2bAgAEZNmxY\n2tvbkyQTJkzIhAkTkiS33HJLfv7zn+faa6/Neuutl/b29rS3t2fq1Kn9uWsAAMBKUKqq6k35XhXu\nS+XUbfu7Cauc6vTb+7sJqyS3GO+ZW4wDAACsMsryFNITBwAAAKABhDgAAAAADSDEAQAAAGgAIQ4A\nAABAAwhxAAAAABpAiAMAAADQAEIcAAAAgAYQ4gAAAAA0gBAHAAAAoAGEOAAAAAANIMQBAAAAaAAh\nDgAAAEADCHEAAAAAGmBgfzcAYFWy7vgL+7sJq5zZ1xze300AAACiJw4AAABAIwhxAAAAABpAiAMA\nAADQAEIcAAAAgAYQ4gAAAAA0gBAHAAAAoAGEOAAAAAANIMQBAAAAaAAhDgAAAEADCHEAAAAAGkCI\nAwAAANAAQhwAAACABhDiAEA/O/vss7Pttttm0KBBOfLIIzuXv/zyyznwwAMzduzYlFIyZcqU16xn\n1qxZ+ehHP5rBgwfnrW99a37yk58stv7Pf/5zPvnJT2bo0KEZNmxYPvWpT/XB3gAA0FcG9ncDAGB1\nt/HGG+ekk07K5MmTM2/evMXW7bTTTvniF7+Ygw46aJn1HHfccVlrrbXy1FNP5a677so+++yTrbfe\nOuPGjUuSHHDAAdluu+3y6KOPZp111sk999zTJ/sDAEDfEOIAQD874IADkiS33357ZsyY0bl8rbXW\nyhe/+MUkyYABA16zjhdeeCFXXnll7rnnnrS3t2ennXbKfvvtl4suuihnnHFGrr322jz22GOZMmVK\nZ13vec97+miPAADoC4ZTAcCbwIMPPpiBAwfmne98Z+eyrbfeOvfee2+S5De/+U0233zzHHHEERk+\nfHi222673HDDDf3VXAAAXgchDgC8CcydOzfrrrvuYsuGDh2aOXPmJElmzJiRa6+9Nrvttlv+9Kc/\n5a//+q/zkY98JDNnzuyP5gIA8DoIcQDgTaC9vT2zZ89ebNns2bMzZMiQJElbW1vGjh2bo48+Omuu\nuWYOOeSQjBkzJjfffHN/NBcAgNdBiAMAbwLvfOc7s3Dhwjz00EOdy+6+++7OSY232mqrlFIWe033\n5wAArNqEOADQzxYuXJj58+dn0aJFWbRoUebPn5+FCxcmSV566aXMnz8/SX3L8fnz56eqqiXqGDx4\ncA444ICccsopeeGFF3LzzTfn6quvzmGHHZYk+ehHP5pnn302kyZNyqJFi3LFFVdkxowZ2XHHHVfe\njgIA8IYIcQCgn02cODFtbW0544wzcvHFF6etrS0TJ05Mkmy++eZpa2vL448/nr322ittbW155JFH\nkiR///d/nw996EOd9ZxzzjmZN29eNtxww3ziE5/Iueee29kTZ/3118+///u/5x/+4R8ydOjQnHHG\nGbn66qszYsSIlb/DvCFnn312tt122wwaNChHHnnkYuuuv/76bLHFFllnnXWy2267dX5WXssNN9yQ\nUkpOOumkzmWXXXZZNt988wwdOjQbbrhhjjjiiCWG6wEAK1/p6a95r6FXhftSOXXb/m7CKqc6/fb+\nbsIqqfzgjv5uwiqpOmab/m7CKmnd8Rf2dxNWObOvOby/mwB0cdVVV2WNNdbI5MmTM2/evFxwwQVJ\nkpkzZ2bTTTfNeeedl3333Tcnn3xypk6dmt/85jdLrWvBggXZbrvtsvbaa2ePPfboDA8fe+yxtLW1\nZcSIEZk7d26OPfbYDB8+PN/73vdWxi4CwOpouca5D+zrVgAAsOIccMABSZLbb789M2bM6Fx+1VVX\nZdy4cTnooIOSJKeddlpGjBiR+++/P1tssUWPdf3jP/5j9txzzzz99NOLLR8zZsxizwcMGJA//OEP\nK3I3AIDXwXAqAIA3gXvvvTdbb7115/PBgwdn0003zb333ttj+UceeSQ/+tGPcsopp/S4/qabbsrQ\noUMzZMiQXHnllfniF7/YJ+0GAJafnjgAAG8Cc+fOzQYbbLDYsqFDh2bOnDk9lj/++OPzjW98I+3t\n7T2u32mnnfL888/n8ccfzw9/+MOMHTt2RTcZAOglPXEAAN4E2tvbl5h8ePbs2RkyZMgSZX/2s59l\nzpw5+fjHP77MekeNGpXx48fnkEMOWWFtBQBeHz1xAADeBMaNG5dJkyZ1Pn/hhRcybdq0zjuUdXX9\n9dfn9ttvz8iRI5Mkzz//fAYMGJD//u//ztVXX71E+YULF2batGl913gAYLnoiQMA0CALFy7M/Pnz\ns2jRoixatCjz58/PwoUL89GPfjT33HNPrrzyysyfPz9f//rXs9VWW/U4qfE3vvGNPPjgg7nrrrty\n1113Zb/99stnPvOZ/PjHP06SXHLJJXn00UeT1HPnfO1rX8vuu+++UvcTAFiSEAcAoEEmTpyYtra2\nnHHGGbn44ovT1taWiRMnZoMNNsiVV16Zr33taxk2bFhuvfXWXHbZZZ2vmzBhQiZMmJAkGTJkSEaO\nHNn5aGtry+DBg7P++usnSe67777ssMMOGTx4cHbcccdsvvnm+eEPf9gv+wsAvKpUVdWb8r0q3JfK\nqdv2dxNWOdXpt/d3E1ZJ5Qd39HcTVknVMdv0dxNWSeuOv7C/m7DKmX3N4f3dBAAAeLMry1NITxwA\nAACABhDiAAAAADSAEAcAAACgAYQ4AAAAAA0gxAEAAABoACEOAAAAQAMM7O8GAEATHb/vB/q7Cauk\n7/3s1/3dBACANy09cQAAAAAaQIgDAAAA0ABCHAAAAIAGEOIAAAAANIAQBwAAAKABhDgAAAAADeAW\n4wAAfewH297R301Y5Rxz+zb93QQAaBw9cQAAAAAaQIgDAAAA0ABCHAAAAIAGEOIAAAAANIAQBwAA\nAKABhDgAAAAADSDEAQAAAGgAIQ4AAABAAwhxAAAAABpAiAMAAADQAEIcAAAAgAYQ4gAAAAA0gBAH\nAAAAoAGEOAAAAAANIMQBAAAAaAAhDgAAAEADCHEAAAAAGkCIAwAAANAAQhwAAACABhDiAAAAADSA\nEAcAAACgAYQ4AAAAAA0gxAEAAABoACEOAAAAQAMIcQAAAAAaQIgDAAAA0ABCHAAAWI1cdtll2XLL\nLTN48OBsuummmTp1ao/lvvOd72TkyJFZd911c9RRR+Wll17qXHfLLbfkfe97X4YMGZKtttoqN910\n08pqPsBqTYgDAACriV/96lf56le/mh//+MeZM2dObrzxxrz97W9fotzkyZNzxhln5Prrr88jjzyS\nhx9+OKeeemqSZNasWdl3333z5S9/Oc8991y+8pWvZN99982zzz67sncHYLUjxAEAgNXEqaeemlNO\nOSXvf//7s8Yaa2TUqFEZNWrUEuUmTZqUo48+OuPGjcuwYcNy8skn54ILLkhS98IZOXJkDjrooAwY\nMCCHHnpoNthgg1x11VUreW8AVj9CHAAAWA0sWrQot99+e/785z9ns802y+jRo/O5z30u8+bNW6Ls\nvffem6233rrz+dZbb52nnnoqzzzzTJKkqqrFyldVlXvuuadvdwAAIQ4AAKwOnnrqqSxYsCBXXHFF\npk6dmrvuuit33nlnJk6cuETZuXPnZujQoZ3PO36eM2dOtt9++zzxxBO59NJLs2DBgkyaNCnTpk3L\niy++uNL2BWB1JcQBAIDVQFtbW5Lk85//fN7ylrdkxIgROeGEE/KLX/xiibLt7e2ZPXt25/OOn4cM\nGZLhw4fn6quvzllnnZWNNtoo11xzTfbYY4+MHj165ewIwGpMiAMAAKuBYcOGZfTo0SmldC7r+nNX\n48aNy9133935/O67785GG22U4cOHJ0l22WWX3HbbbZk1a1Yuuuii3H///Xnf+97XtzsAgBAHAABW\nF5/+9Kfzz//8z3n66afz7LPP5jvf+U4+/OEPL1Hu8MMPz/nnn5/77rsvzz33XCZOnJgjjzyyc/2d\nd96ZBQsWZPbs2TnxxBMzZsyY7LXXXitxTwBWT0IcAABYTZx88snZbrvt8s53vjNbbrll3vOe9+Rr\nX/taHn300bS3t+fRRx9NkowfPz5f+cpXsttuu2WTTTbJW9/61px++umd9Xz729/OiBEjMmbMmDz5\n5JP56U9/2l+7BLBaGdjfDQAAAFaONddcM+ecc07OOeecxZZvsskmmTt37mLLTjjhhJxwwgk91nPp\npZf2WRsBWDo9cQAAAAAaQIgDAAAA0ABCHAAAAIAGEOIAAAAANIAQBwAAAKABhDgAAAAADSDEAQAA\nAGgAIQ4AAABAAwhxAAAAgDfkoYceytprr51DDz20x/WnnXZa1lxzzbS3t3c+Hn744STJ1KlTF1ve\n3t6eUkquvPLKlbkLjSDEAQAAAN6Q4447Ltttt91rlvn4xz+euXPndj7e/va3J0l23nnnxZb//Oc/\nT3t7e8aPH78ymt4oQhwAAADgdbvsssuy3nrrZffdd18h9U2aNCkHHnhgBg8evELqezMR4gAAAACv\ny+zZs3PKKafkrLPOWmbZn/3sZ1l//fUzbty4nHvuuT2WeeGFF3LFFVfkiCOOWNFNfVMY2N8NAAAA\nAJrp5JNPztFHH53Ro0e/ZrmDDz44xxxzTDbaaKPceuut+djHPpb11lsvn/jEJxYrd9VVV2XEiBHZ\nZZdd+rLZjSXEAQAAAHrtrrvuynXXXZc777xzmWXf9a53df68ww475Atf+EKuuOKKJUKcSZMm5fDD\nD08pZYW3981AiAMAAKuKb7lo6dFXq/5uAdCDKVOmZPr06dlkk02SJHPnzs2iRYty33335Xe/+91r\nvraUkqpa/Lv92GOPZcqUKfn+97/fZ21uOnPiAAAAAL12zDHHZNq0abnrrrty1113ZcKECdlnn30y\nefLkJcpeffXVefbZZ1NVVX7729/me9/7Xj7ykY8sVuaiiy7KDjvskE033XRl7ULjCHEAAACAXltn\nnXUycuTIzkd7e3vWXnvtbLDBBpk6dWra29s7y1522WXZbLPNMmTIkBx++OH56le/usTkxRdeeKEJ\njZfBcCoAAADgDTvttNM6f955550zd+7czueXXnrpMl9///3390Wz3lT0xAEAAABoACEOAAAAQAMI\ncQAAAAAaQIgDAAAA0ABCHAAAAIAGEOIAAAAANIAQBwAAAKABhDj/v737jpasLNM2ft1ktEFUlKDS\nJIkSxBFlUEcwYMRBBQOjCAgGGBEGERxUZNSREREVFRQxYkZRv8GsGEYwEJSk2ESVLIo2Ehp4vj/2\nPlCcPk2faji1q05dv7XO6trv3qfXjaus3vXs931eSZIkSZKkEWARR5IkSZIkaQRYxJEkSZIkSRoB\nFnEkSZIkSZJGgEUcSZIkSZKkEWARR5IkSZIkaQQs03UASZIkSZI0c84999yuIwylRz3qUV1H6Jsz\ncSRJkiRJkkaARRxJkiRJkqQRYBFHkiRJkiRpBFjEkSRJkiRJGgEWcSRJkiRJd7rlllvYc889mTt3\nLiuttBJbbrkl3/zmN6e89txzz2WHHXZg1VVXJclC55/85CezwgorMGfOHObMmcOGG2440/GlWc0i\n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\nAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fa2f3274cd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bar_width = 0.5 # width of each bar\n",
"bar_colors = ['#007E33', '#0099CC', '#0d47a1', '#6d4c41', '#9933CC', '#FF8800', '#CC0000', '#d3d3d3'] # bar colors\n",
"title = 'Percentage of Respondents\\' Interest in Data Science Tools' # title of bar plot\n",
"\n",
"# call function to generate bar plot\n",
"generate_bar_plot(datascience_tools_data_sorted, survey_data.shape[0], bar_width, bar_colors, title)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12"
},
"widgets": {
"state": {},
"version": "1.1.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment