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

    Problem Description 根据小学数学的知识,我们知道一个正整数x是3的倍数的条件是x每一位加起来的和是3的倍数.反之,如果一个数每一位加起来是3的倍数,则这个数肯定是3的倍数. 现在给 ...

  2. ASP.NET Core性能测试

    ASP.NET Core性能测试 应用性能直接影响到托管服务的成本,因此公司在开发应用时需要格外注意应用所使用的Web框架,初创公司尤其如此.此外,糟糕的应用性能也会影响到用户体验,甚至会因此受到相关 ...

  3. react-dnd

    http://react-trello-board.web-pal.com/ https://react-dnd.github.io/react-dnd/docs-tutorial.html http ...

  4. spring之控制反转

    IOC (Inversion of Control) 控制反转 我的理解:将创建对象的控制权从代码本身转交给了外部容器(spring容器). 1.将组件对象(业务对象)的控制权从代码本身转移到外部容器 ...

  5. 序列化流与反序列化流,打印流,工具类commons-IO

    1序列化流与反序列化流 用于从流中读取对象的操作流 ObjectInputStream    称为 反序列化流 用于向流中写入对象的操作流 ObjectOutputStream   称为 序列化流 特 ...

  6. 1126 数字统计 2010年NOIP全国联赛普及组

    1126 数字统计 2010年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver         题目描述 Description 请统计某个 ...

  7. 告别CMD.windows终端神器conemu设置

    前言 一种刘姥姥进大观园的感觉,现在是见啥啥新鲜.因为之前不怎么接触到命令操作,平时偶尔用用cmd也没觉得什么不妥.直到现在经常调试脚本,使用git越发感觉不方便.看见同事使用的terminal绚丽夺 ...

  8. 编写SQL语句操作数据库(慕课SQLite笔记)

    安卓常用数据存储方式之一SQLite学习及操作笔记 0.视频地址:http://www.imooc.com/video/3382 1.每个程序都有自己的数据库 默认情况下是各自互不干扰 1)创建一个数 ...

  9. Viewcontroller基类

    #import <UIKit/UIKit.h> #import "YQZMutableArray.h" @interface YQZViewController : U ...

  10. 对Yii 2.0模型rules的理解(load()无法正确装载数据)

    在实际开发中,遇到数据表新增字段而忘记了在对应模型中rules规则中添加新增的字段,而导致load()方法装载不到新增字段,导致新增字段无法写入数据库中.   解决办法:在新增字段后及时在对应模型ru ...