菜鸟学数据分析(day02)
废话不多说,直接上代码
day02-1_条形图.py
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
# 数据来源 http://58921.com/alltime/2017
plt.figure(figsize=(20, 10), dpi=80)
x = ["战狼2", "速度与激情8", "羞羞的铁拳", "前任3:\n再见前任",
"功夫瑜伽", "西游伏妖篇", "变形金刚5:最后的骑士",
"芳华", "摔跤吧!\n爸爸 ", "寻梦环游记",
"加勒比海盗5:死无对证 ",
"金刚:\n骷髅岛", "极限特工:\n终极回归",
"生化危机6:\n终章", "乘风破浪", "神偷奶爸3",
"智取威虎山", "蜘蛛侠:\n英雄归来", "大闹天竺",
"雷神3:\n诸神黄昏"]
y = [56,26,21,19,17,16,15,14,12,12,11,11,11,11,10,10,8,7,7,7]
plt.bar(range(len(x)), y, width=0.3)
plt.xticks(range(len(x)), x, rotation=90)
plt.show()
day02-1_条形图-v2.py
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
# 数据来源 http://58921.com/alltime/2017
plt.figure(figsize=(20, 10), dpi=80)
x = ["战狼2", "速度与激情8", "羞羞的铁拳", "前任3:再见前任",
"功夫瑜伽", "西游伏妖篇", "变形金刚5:最后的骑士",
"芳华", "摔跤吧!爸爸 ", "寻梦环游记",
"加勒比海盗5:死无对证 ",
"金刚:骷髅岛", "极限特工:终极回归",
"生化危机6:终章", "乘风破浪", "神偷奶爸3",
"智取威虎山", "蜘蛛侠:英雄归来", "大闹天竺",
"雷神3:诸神黄昏"]
y = [56,26,21,19,17,16,15,14,12,12,11,11,11,11,10,10,8,7,7,7]
# TODO 看这个,加了个h
plt.barh(range(len(x)), y, height=0.3, color="orange")
plt.yticks(range(len(x)), x)
plt.xlabel("票房(亿元)")
plt.ylabel("电影名称")
plt.title("2017年度票房")
plt.show()
day02-1_条形图3条-v3.py
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.figure(figsize=(20, 8), dpi=80)
a = ["猩球崛起3:终极之战", "敦刻尔克", "蜘蛛侠:英雄归来", "战狼2"]
b_16 = [15746, 312, 4497, 319]
b_15 = [12347, 156, 2045, 168]
b_14 = [2358, 399, 2358, 362]
# notice:要有偏移
x_14 = list(range(len(a)))
x_15 = [i+0.2 for i in x_14]
x_16 = [i+0.4 for i in x_14]
plt.bar(range(len(a)), b_14, label="14日", color="orange", width=0.2)
plt.bar(x_15, b_15, label="15日", color="blue", width=0.2)
plt.bar(x_16, b_16, label="16日", color="red", width=0.2)
# 设置图例
plt.legend()
# x轴添加刻度
plt.xticks(x_15, a)
plt.show()
day02-1_3_10m_temp.py
import matplotlib.pyplot as plt
import matplotlib.font_manager
plt.rcParams['font.sans-serif'] = ['SimHei']
y_3 = [11,17,18,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,21,20]
y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,10,9,7,12]
x_3 = range(1, 32)
x_10 = range(51, 82)
plt.figure(figsize=(20, 8), dpi=80)
plt.scatter(x_3, y_3, label="3月份")
plt.scatter(x_10, y_10, label="10月份")
_x = list(x_3)+list(x_10)
_xtick_labels = ["3月{}日".format(i) for i in x_3]
_xtick_labels += ["10月{}日".format(i-50) for i in x_10]
plt.xticks(_x[::3], _xtick_labels[::3], rotation=45)
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("时间温度变化情况")
# 添加图例
plt.legend()
plt.show()
day02-2-直方图.py
from matplotlib import pyplot as plt
a = [125,140,139,145,142,159,157,174,110,145,157,115,116,118,112,102,152,89,136,145,104,106,108,105,102,112,102,99,94,78,127,180,89,120,157,103,145,148,120,124,110,113,159,96,97,86,88,120,133,145,131]
plt.figure(figsize=(20, 8), dpi=80)
# 设置计算组数 ,尽量将d设置成能被整除的数
d = 3 # 组距 如果是5则有偏差
num_bins = (max(a)-min(a))//d # 图有偏差,是因为有的时候无法整除导致的
plt.hist(a, num_bins, normed=True) # normed 用来表示占比
# 设置x轴的刻度
plt.xticks(range(min(a), max(a)+d, d))
plt.grid()
plt.show()
day02-2-上下班时间.py
from matplotlib import pyplot as plt
interval = [0,2,10,15,20,25,30,35,40,45,60,90]
# 时间段
width = [5,5,5,5,5,5,5,5,5,15,30,60]
# 组距
quantity = [836,2737,3723,3926,3596,1439,3273,642,824,613,215,47]
plt.bar(range(len(quantity)), quantity, width=1)
_x = [i-0.5 for i in range(len(quantity)+1)]
_xticks_label = interval+[150]
plt.xticks(_x, _xticks_label)
plt.grid(alpha=0.4)
plt.show()