# 绘制直方图

# 假设你获取了250部电影的时长(列表a中),希望统计出这些电影时长的分布状态(比如时长为100分钟到
# 120分钟电影的数量,出现的频率)等信息,你应该如何呈现这些数据? from matplotlib import pyplot as plt a = [131,98,125,131,124,139,131,117,128,108,135,138,131,102,107,114,119,128,121,142,
127,130,124,101,110,116,117,110,128,128,115,99,136,126,134,95,138,117,111,78,
132,124,113,150,110,117,86,95,144,105,126,130,126,130,126,116,123,106,112,138,
123,86,101,99,136,123,117,119,105,137,123,128,125,104,109,134,125,127,105,120,
107,129,116,108,132,103,136,118,102,120,114,105,115,132,145,119,121,112,139,125,
138,109,132,134,156,106,117,127,144,139,139,119,140,83,110,102,123,107,143,115,
136,118,139,123,112,118,125,109,119,133,112,114,122,109,106,123,116,131,127,115,
118,112,135,115,146,137,116,103,144,83,123,111,110,111,100,154,136,100,118,119,
133,134,106,129,126,110,111,109,141,120,117,106,149,122,122,110,118,127,121,114,
125,126,114,140,103,130,141,117,106,114,121,114,133,137,92,121,112,146,97,137,
105,98,117,112,81,97,139,113,134,106,144,110,137,137,111,104,117,100,111,101,
110,105,129,137,112,120,113,133,112,83,94,146,133,101,131,116,111,84,137,115,
122,106,144,109,123,116,111,111,133,150] # 计算组数 组数=极差/组距
d = 3 # 组距
num_bins = (max(a)-min(a))//d # 双斜线是商向下取整,也可以用int强行取整 # 绘制直方图,传入数据列表和组数
# 这是频数直方图
plt.hist(a,num_bins)
# 这是频率直方图
# plt.hist(a,num_bins,normed=True) # 自定义x轴
plt.xticks(range(min(a),max(a)+d,d)) # 显示辅助线,设置透明度
plt.grid(alpha=0.5) # plt.savefig("8.png") plt.show()
# 在美国2004年人口普查发现有124milion的人在离家相对较远的地方工作。
# 根据他们从家到上班地点所需要的时间,通过抽样统计(最后一列)出了下表的数据,
# 这些数据能够绘制成直方图么? # 需要注意的是一下数据已经经过统计了,所以绘制不了直方图,直方图只能绘制没有经过处理的原始数据
# 但是我们可以用绘制条形图的方法把图展示成直方图 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,5,15,30,60] # 组距,可看出是变化的
quantity = [836,2737,3723,3926,3596,1438,3273,642,824,613,215,47] # 人数 # 绘制条形图,为了取消各条之间的空隙,设定宽度为1就行
plt.bar(range(len(quantity)),quantity,width=1) # 设置X轴刻度
# 因为条形图的刻度默认在各数据条的中间,又因为我们设定了数据条宽度为1,所以需要把刻度向左偏移0.5
# 如果是这样的话,最后一个刻度条的末尾没有数据
# x = [i-0.5 for i in range(len(quantity))]
# 进行修改,实际上是增加了一个刻度,但是这个刻度没有数据
x = [i-0.5 for i in range(len(quantity)+1)]
# 增加最后一个刻度的真实刻度值,150的来源是现有的真实刻度是90,然后它的宽度为60,所以加起来为150
x_ticks = interval+[150]
# 两个刻度一一对应起来
plt.xticks(x,x_ticks) plt.grid(alpha=0.5) plt.show()

matplotlib学习记录 七的更多相关文章

  1. Spring学习记录(七)---表达式语言-SpEL

    SpEL---Spring Expression Language:是一个支持运行时查询和操作对象图表达式语言.使用#{...}作为定界符,为bean属性动态赋值提供了便利. ①对于普通的赋值,用Sp ...

  2. leveldb 学习记录(七) SSTable构造

    使用TableBuilder构造一个Table struct TableBuilder::Rep { // TableBuilder内部使用的结构,记录当前的一些状态等 Options options ...

  3. matplotlib学习记录 六

    # 绘制多数据条形图 # 假设你知道了列表a中电影分别在2017-09-14(b_14),2017-09-15(b_15), # 2017-09-16(b_16)三天的票房,为了展示列表中电影本身的票 ...

  4. matplotlib学习记录 五

    # 绘制电影票房竖条形图 from matplotlib import pyplot as plt a = ["战狼2","速度与激情8","功夫瑜伽 ...

  5. matplotlib学习记录 四

    # 绘制3月每天最高温和10月每天最高温散点图 from matplotlib import pyplot as plt # 让matplotlib能够显示中文 plt.rcParams['font. ...

  6. matplotlib学习记录 三

    # 绘制自己和朋友在各个年龄的女友数量的折线图 from matplotlib import pyplot as plt # 让matplotlib能够显示中文 plt.rcParams['font. ...

  7. matplotlib学习记录 二

    # 绘制10点到12点的每一分钟气温变化折线图 import random from matplotlib import pyplot as plt # 让matplotlib能够显示中文 plt.r ...

  8. matplotlib学习记录 一

    from matplotlib import pyplot as plt # 先实例一个图片,传入图片参数,10宽,5高,分辨率为80 image = plt.figure(figsize=(10,5 ...

  9. zeromq学习记录(七)订阅发布消息封装

    之前也有提到 使用订阅发布 pub sub模式必须要显示定义ZMQ_SUBSCRIBE 只有以此模式定义的过滤字节开头的消息才会被订阅者收到 如果想收到所有信息 可定义subscriber.setso ...

随机推荐

  1. Codeforces 1141F2(贪心、预处理)

    要点 一开始dp然后码力太辣鸡并且算法带假于是调了很久一交还WA在28-- 吐槽完毕.后来想拿栈优化dp时发现其实完全不需要dp,贪心选取即可,当前的不兼容就干脆不要它了,结果不会变差.然后想要什么就 ...

  2. 补充:jQuery的ajax

    一.jQuery的ajax 什么是ajax AJAX = 异步的javascript和XML(Asynchronous Javascript and XML) 简言之,在不重载整个网页的情况下,AJA ...

  3. BI的意义

    BI系统建设的价值,有可能不值钱,也有可能价值数千万,就看我们大家好用了没.”所以,BI系统建设的收获,终究还是因企业而异的,再归根,便是与企业的文化,与企业的人,尤其是管理层是极为相关的了. 商业智 ...

  4. Zeppelin的入门使用系列之使用Zeppelin来运行Spark SQL(四)

    不多说,直接上干货! 前期博客 Zeppelin的入门使用系列之使用Zeppelin来创建临时表UserTable(三) 1. 运行年龄统计的Spark SQL (1)  输入Spark SQL时,必 ...

  5. 【踩坑】Nginx上配置ssl证书实现https访问

    昨天开始为域名挂上ssl证书,使得可以以https去访问服务器.按照网上所介绍的配置Nginx,然而一直访问不了网站. 第二天排查了一早上,发现不单要配置Nginx,阿里云上安全组要开启443端口,并 ...

  6. webm视频转换 其他视频格式转换为webm格式

    将其他视频格式转换为webm格式 https://files.cnblogs.com/files/bubuchu/html5videoshipingeshizhuanhuanqi.zip

  7. filter和map的使 使得数组对象变数组

    let UnitList = this.paytypeData.filter( item => item.CheckBox === true ).map(axis => axis.Unit ...

  8. Cocos2d-x v3.1 初识(一)

    Cocos2d-x v3.1 初识(一) Cocos2d-x从以前苹果平台上的Cocos2d发展而来,版本已经更新到了3.1.1.作为一个跨平台的游戏开发引擎,现在已经被上百个国家在使用,这也是国人的 ...

  9. WebView全面学习(一)--常用类和方法

    WebView全面学习(一)--常用类和方法 WebView本质上是一个View,他基于webkit引擎来展示web页面 在Android不同的版本webkit内核有所区别,从Android版本上看, ...

  10. Burpsuite Professional安装及使用教程

    转自:https://www.jianshu.com/p/edbd68d7c341 1.先从吾爱破解论坛下载工具:https://down.52pojie.cn/Tools/Network_Analy ...