Matplotlib的使用——直方图

  • 直方图更多的应用场景:

    • 用户年龄的分布状态;
    • 一段时间内用户的点击数分布状态;
    • 用户活跃时间的分布状态;
  • 哪些数据可以绘制直方图?

    • 连续的数据;
    • 没有统计过的数据;
    • 原始数据;
  • 案例1: 250部电影的时长, 电影时长的分布状态;

    • 把数据分为多少组进行统计?
      • 如果数据在100个以内, 一般分为5-12组;
      • 组距: 每个小组里面端点的距离;
      • 组数 = 极差 / 组距
import random
from matplotlib import  pyplot as plt

y = [random.randint(60, 180) for i in range(250)]

# 组距
d = 10  

# 组数
num_bins = (max(y) - min(y)) // d

# 设置x轴的刻度范围
plt.xticks(list(range(min(y), max(y) + d))[::d])

# 设置网格
plt.grid(linestyle='-.', alpha=0.3)

# 直方图绘制数据分为20个分组
plt.hist(y, num_bins)
plt.savefig('doc/01_hist.png')
Interval  Width	   Quantity	 Quantity/width
0			5		4180		836
5			5		13687		2737
10			5		18618		3723
15			5		19634		3926
20			5		17981		3596
25			5		7190		1438
30			5		16369		3273
35			5		3212		642
40			5		4122		824
45			15		9200		613
60			30		6461		215
90			60		3435		57
from matplotlib import pyplot as plt

# 公司到家的的距离
interval = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 60, 90]
# 间距
width = [5, 5, 5, 5, 5, 5, 5, 5, 15, 30, 60]
# 对应的人数
quantity = [836, 2737, 3723, 3926, 3596, 1438, 3273, 642, 824, 613, 215, 57]
# 设置图形的大小
plt.figure(figsize=(10, 10))
# 绘制条形图
# plt.bar(range(12), quantity, width=1)
# 绘制折线图
plt.plot(interval, quantity)
# 设置x轴的刻度
# _x = [i-0.5 for i in range(12)]
# plt.xticks(_x, labels=interval)
plt.xticks(interval)
# 设置网格
plt.grid(linestyle='-.', alpha=0.5)
# gca====get current axis 获取当前的坐标轴
ax = plt.gca()
# 设置右边框和上边框;
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 设置x轴为下边框
ax.xaxis.set_ticks_position('bottom')
# 设置y轴为作边框
ax.yaxis.set_ticks_position('left')
# 设置x轴和y轴的交点为(0, 0)点;
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0 ))

# 保存图片
plt.savefig('doc/03_bar.png')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值