In [1]: from matplotlib import pyplot as plt
import csv
import numpy as np
import pandas as pd
from collections import Counter
Line Plot
In [2]: ages_x = [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55]
py_dev_y = [20046, 17100, 20000, 24744, 30500, 37732, 41247, 45372, 48876, 53850, 57287, 63016, 65998, 70003,
70000, 71496, 75370, 83640, 84666, 84392, 78254, 85000, 87038, 91991, 100000, 94796, 97962, 93302,
99240, 102736, 112285, 100771, 104708, 108423, 101407, 112542, 122870, 120000]
[Link](ages_x, py_dev_y, label='Python')
[<[Link].Line2D at 0x1c126c46c40>]
Out[2]:
In [3]: js_dev_y = [16446, 16791, 18942, 21780, 25704, 29000, 34372, 37810, 43515, 46823, 49293, 53437,
56373, 62375, 66674, 68745, 68746, 74583, 79000, 78508, 79996, 80403, 83820, 88833,
91660, 87892, 96243, 90000, 99313, 91660, 102264, 100000, 100000, 91660, 99240, 108000,
105000, 104000]
[Link](ages_x, js_dev_y, label='JavaScript')
[<[Link].Line2D at 0x1c1273eefa0>]
Out[3]:
In [4]: dev_y = [17784, 16500, 18012, 20628, 25206, 30252, 34368, 38496, 42000, 46752, 49320, 53200, 56000, 62316,
64928, 67317, 68748, 73752, 77232, 78000, 78508, 79536, 82488, 88935, 90000, 90056, 95000, 90000,
91633, 91660, 98150, 98964, 100000, 98988, 100000, 108923, 105000, 103117]
[Link](ages_x, dev_y, color='#444444', linestyle='--', label='All Devs')
[<[Link].Line2D at 0x1c12746c460>]
Out[4]:
Bar Chart
In [5]: [Link]("fivethirtyeight")
data = pd.read_csv('[Link]')
ids = data['Responder_id']
lang_responses = data['LanguagesWorkedWith']
language_counter = Counter()
for response in lang_responses:
language_counter.update([Link](';'))
languages = []
popularity = []
for item in language_counter.most_common(15):
[Link](item[0])
[Link](item[1])
[Link]()
[Link]()
[Link](languages, popularity)
[Link]("Most Popular Languages")
# [Link]("Programming Languages")
[Link]("Number of People Who Use")
plt.tight_layout()
[Link]()
Pie Charts
In [6]: from matplotlib import pyplot as plt
[Link]("fivethirtyeight")
slices = [59219, 55466, 47544, 36443, 35917]
labels = ['JavaScript', 'HTML/CSS', 'SQL', 'Python', 'Java']
explode = [0, 0, 0, 0.1, 0]
[Link](slices, labels=labels, explode=explode, shadow=True,
startangle=90, autopct='%1.1f%%',
wedgeprops={'edgecolor': 'black'})
[Link]("My Awesome Pie Chart")
plt.tight_layout()
[Link]()
Stack Plots
In [7]: [Link]("fivethirtyeight")
minutes = [1, 2, 3, 4, 5, 6, 7, 8, 9]
player1 = [8, 6, 5, 5, 4, 2, 1, 1, 0]
player2 = [0, 1, 2, 2, 2, 4, 4, 4, 4]
player3 = [0, 1, 1, 1, 2, 2, 3, 3, 4]
labels = ['player1', 'player2', 'player3']
colors = ['#6d904f', '#fc4f30', '#008fd5']
[Link](minutes, player1, player2, player3, labels=labels, colors=colors)
[Link](loc=(0.07, 0.05))
[Link]("My Awesome Stack Plot")
plt.tight_layout()
[Link]()
Fill Between
In [8]: data = pd.read_csv('[Link]')
ages = data['Age']
dev_salaries = data['All_Devs']
py_salaries = data['Python']
js_salaries = data['JavaScript']
[Link](ages, dev_salaries, color='#444444',
linestyle='--', label='All Devs')
[Link](ages, py_salaries, label='Python')
overall_median = 57287
plt.fill_between(ages, py_salaries, dev_salaries,
where=(py_salaries > dev_salaries),
interpolate=True, alpha=0.25, label='Above Avg')
plt.fill_between(ages, py_salaries, dev_salaries,
where=(py_salaries <= dev_salaries),
interpolate=True, color='red', alpha=0.25, label='Below Avg')
[Link]()
[Link]('Median Salary (USD) by Age')
[Link]('Ages')
[Link]('Median Salary (USD)')
plt.tight_layout()
[Link]()
Scatter Plots
In [9]: [Link]('seaborn')
data = pd.read_csv('[Link]')
view_count = data['view_count']
likes = data['likes']
ratio = data['ratio']
[Link](view_count, likes, c=ratio, cmap='summer',
edgecolor='black', linewidth=1, alpha=0.75)
cbar = [Link]()
cbar.set_label('Like/Dislike Ratio')
[Link]('log')
[Link]('log')
[Link]('Trending YouTube Videos')
[Link]('View Count')
[Link]('Total Likes')
plt.tight_layout()
[Link]()
In [ ]: