matplotlib绘制直方图

更新时间:2023-07-20 19:33:56 阅读: 评论:0

我不想当忍者matplotlib 绘制直⽅图
1.
直⽅图是⽤⼀系列不等⾼的长⽅形来表⽰,宽度表⽰数据范围的间隔,⾼度表⽰在给定间隔内数据出现的频数,长⽅形的⾼度跟落在间隔内的数据数量成正⽐,变化的⾼度形态反映了数据的分布情况。
2.导⼊相关库
是 Python 的绘图库。 它可与 NumPy ⼀起使⽤,提供了⼀种有效的 MatLab 开源替代⽅案。 我们⼀般⽤到的是 Matplotlib 的 Pyplot 函数集合。
Pyplot 中使⽤ hist( ) 绘制直⽅图,并以元组形式返回直⽅图的计算结果,包括各区间中元素数量,区间的取值范围,以及具体每个区间对象。
3.相关参数介绍:数组或者数组序列(不要求每个数组长度相同),⽤于存放数据
:整数、序列或字符串,整数表⽰等宽区间的个数(直⽅图条形个数),⾃动计算区间范围,序列则表⽰区间的范围,除了最后⼀个以外,都是包含左边不包含右边,字符串则表⽰对应的策略,默认为 hist.bins
:元组,指定最⼩值和最⼤值(直⽅图数据的上下界),默认包含绘图数据中的最⼩值和最⼤值(默认以绘图数据的最⼩值作为直⽅图数据的上下界):是否将直⽅图的频数转化为频率:布尔值,可选,如果为 True,则返回的是归⼀化的概率密度,所有区间的概率之和为1
咳嗽绿痰
:类似于数组的值,可选,形状和  相同,表⽰每个值对应的权重,默认情况下所有数据的权重相同
:布尔值或 -1,累积求和,表⽰⼩于某个数的所有元素个数之和,随着数的增⼤⽽不断增⼤,如果为 -1,则反转⽅向,表⽰⼤于某个数的所有元素个数之和,随着数量增⼤⽽不断减⼩
:指定直⽅图的类型,默认为 bar。bar(多个并列摆放),barstacked(多个堆叠摆放),step(⽣成对应的折线),stepfilled(填充相关区域):设置条形边界值的对齐⽅式,默认为 mid,另外还有 left 和 right
:设置条形图的宽度from  matplotlib import  pyplot as  plt
情人节鲜花1hist ( x , bins =None , range=None , normed =Fal , # 超重要  density =Fal , weights =None , cumulative =Fal , bottom =None , histtype ='bar', align ='mid', rwidth =None , # 选⽤    orientation ='vertical', color =None , edgecolor =None , label =None , # 常⽤  stacked =Fal , **kwargs )
1
2
恃才傲物的意思
3
4x bins range normed density weight x cumulative histtype align rwidth
:设置直⽅图的摆放⽅向,默认为垂直⽅向。:设置直⽅图的填充⾊:设置直⽅图边框⾊:设置直⽅图标签,可以通过 legend 展⽰其图例
扬的成语
:当有多个数据时,是否需要将直⽅图呈堆叠摆放,默认⽔平摆放
4.绘图⽰例
这⾥以我⾃⼰正在做的⼀个问题为⽰例,⾄于其他参数,⼤家不妨⾃⼰去尝试使⽤⼀下。
绘图数据:
绘图代码:
orientation color edgecolor label stacked plt .figure (figsize =(20,10))matplotlib .rcParams ['font.family'] = 'SimHei' # 显⽰中⽂fre_tuple = plt .hist (id_array , bins =20, color ='steelblue') # 返回值元组plt .title ('⼩区流量记录分布直⽅图', fontproperties ='SimHei', fontsize =15)plt .show ()
1
2
3
4
5
id_array 最⼩值:1,最⼤值:2388,指定了 bins 为 20,则 hist( ) 将 1 到 2388 等距分割为 20 个区间,记录各个区间的频数
此时的区间划分和各区间频数为:
修改部分参数:
修改 bins 参数,⾃定义划分区间:plt .figure (figsize =(20,10))matplotlib .rcParams ['font.family'] = 'SimHei'fre_tuple = plt .hist (id_array , bins =20, color ='steelblue', edgecolor ='black', rwidth =0.8, orientation ='horizontal')plt .title ('⼩区流量记录分布直⽅图', fontproperties ='SimHei', fontsize =15)plt .show ()
1
酸鸡2
3
4
5
修改后的 bins:新昌大佛寺
此时的区间间隔和频数:plt .figure (figsize =(20,10))matplotlib .rcParams ['font.family'] = 'SimHei'bins = np .linspace (0,1200,13).tolist ()bins .append (2500)fre_tuple = plt .hist (id_array , bins =bins , color ='steelblue', edgecolor ='black', rwidth =0.8, orientation ='horizontal')plt .title ('⼩区流量记录分布直⽅图', fontproperties ='SimHei', fontsize =15)plt .show ()1
2
3
4
5
6
7
5.
添加数据标签plt .figure (figsize =(20,10))matplotlib .rcParams ['font.family'] = 'SimHei'fre_tuple = plt .hist (id_array , bins =20, color ='steelblue', edgecolor ='black', rwidth =0.8, orientation ='horizontal')plt .title ('⼩区流量记录分布直⽅图', fontproperties ='SimHei', fontsize =15)x_loc = fre_tuple [0] # 频数y_loc = fre_tuple [1] # 分割区间for  x ,y in  zip (x_loc ,y_loc ): # text :在指定位置上显⽰⽂本    plt .text (x +2500, y +25, '%.0f' % x , ha ='center', va = 'bottom',fontsize =15)    # x ,y 加上的数值可以⾃⼰结合要绘制的图形设定,⽤来调整标签的显⽰位置plt .show ()1
2
3
4
5
6
7不负初心
8
9
10
11

本文发布于:2023-07-20 19:33:56,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1107486.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:区间   数据   默认   数组
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图