python实现读取类别频数数据画水平条形图案例


Posted in Python onApril 24, 2020

1、数据分组-->频数分布表

环境配置:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

按照你设定合适的间隔,把数据分为各个范围的组,然后统计出在这个范围内的频数有多少,我没有找到合适的函数,我就自己写了一个函数,类似直方图的工作,这是画水平条形图的数据准备。至于为什么要画水平条形图,当类别太多,使用水平条形图比较简洁,个人看法。下面给出代码,就不解释代码含义了。

def data_count(dataa, r1, r2, step):
 r = pd.DataFrame(np.random.randn(1, 2))
 r.drop(0, inplace=True)
 while r1+step <= r2:
  num = 0
  for j in range(len(dataa)):
   if dataa[j] >= r1 and dataa[j] < r1+step:
    num = num + 1
  f = "%s~%d" % (r1, r1+step)
  # r = r.append([[int(r1), num], ]) # 使用单数表示
  r = r.append([[f, num], ]) # 使用范围表示
  r1 = r1 + step
 return r

要注意的数据范围只包含上界不含下界,数据公式这样子1⩽data<5,只含上界,这样就可以做出不重不漏。

2、频数计算

这是运用data_count函数(上面代码)进行频数计算的演示,首先看一下原数据长什么样,暂时麻烦就不公布了,你们自己按照自己的数据决定。

python实现读取类别频数数据画水平条形图案例

测试data_count函数代码:

data_gap1 = data_count(g11[:], 1, 51, 1)
data_gap2 = data_count(g22[:], 1, 51, 1)

很简单啦,就是函数的调用,你们都会的,给大家看一下输出结果,如下图:

python实现读取类别频数数据画水平条形图案例

输出结果

感觉相当完美,函数也很万能,只要输入最小值最大值和间隔,就能出频数分布表

3、水平条形图

def plot_bar(plot_data, title):
 plt.figure(figsize=(10, 15))
 y = plot_data.iloc[:, 1].values
 tt = list(range(len(y)))
 index = plot_data.iloc[:, 0].values
 plt.bar(left=0, bottom=list(range(len(y))), width=y, color='blue', height=0.5,
   orientation='horizontal') # 水平对应bottom&width, height表示bar的宽度
 plt.yticks(tt, index)
 plt.ylabel('数据范围')
 plt.xlabel('频数')
 plt.title(title)
 plt.show()

上面中plt.bar(left=0, bottom=list(range(len(y))), width=y, color='blue', height=0.5,orientation='horizontal')这句代码是最重要的,其中left表示直方图的开始的位置(也就是最左边的地方),height是指直方图的高度,当直方图太粗时,可以通过width来定义直方图的宽度,注意多个直方图要用元组,yerr这个参数是防止直方图触顶。orientation='horizontal'指得水平条形图,使用barh方法可以省略这个参数得设定。

有个坑,如果直接用bottom=类别数据,文本格式的类别会乱序,需要像我那样先指定位置,在指定类别,如plt.yticks(tt, index)所作的工作。

python实现读取类别频数数据画水平条形图案例

水平条形图

补充知识:在ipython notebook中添加latex公式

1 MathJax 的安装

ipython notebook中数学公式的渲染使用MathJax。一般网络较好的情况下,MathJax可以在线使用,但是如果希望离线使用,需要将其安装到本地磁盘中,常用的方法是在ipython notebook中使用以下命令:

from IPython.external.mathjax import install_mathjax

install_mathjax()

2.生成配置文件

安装完mathjax之后可以正常import latex,但是执行Latex(r'S\sqrt{x^2+y^2}$')后显示的是‘$\sqrt{x^2+y^2}$'这样字符串;

原来还需要生成配置文件,方法是:在命令行中运行 ipython profile create,执行完成会在./ipython/profile_default 目录下生成

一系列的配置文件,其中包括ipython_notebook_config.py文件;有地方看到需要修改该配置文件,取消 c.NotebookApp.enable_mathjax=True;

的注释,大家可以试一下,我自己没有取消这行注释,再打开ipnb文件时公式都能正常渲染,耶~

第一次记录blog,一方面跟大家一起学习,一方面方便以后回顾,毕竟记性差了许多,哈哈~

以上这篇python实现读取类别频数数据画水平条形图案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python正则表达式re模块详解
Jun 25 Python
编写简单的Python程序来判断文本的语种
Apr 07 Python
Python中的ConfigParser模块使用详解
May 04 Python
Python并发之多进程的方法实例代码
Aug 15 Python
eclipse创建python项目步骤详解
May 10 Python
python tkinter组件摆放方式详解
Sep 16 Python
使用TensorFlow-Slim进行图像分类的实现
Dec 31 Python
Django的CVB实例详解
Feb 10 Python
基于python和flask实现http接口过程解析
Jun 15 Python
详解Python中第三方库Faker
Sep 25 Python
使用PyCharm官方中文语言包汉化PyCharm
Nov 18 Python
Pandas的数据过滤实现
Jan 15 Python
pandas中的ExcelWriter和ExcelFile的实现方法
Apr 24 #Python
Python内存映射文件读写方式
Apr 24 #Python
pandas的resample重采样的使用
Apr 24 #Python
python实现在内存中读写str和二进制数据代码
Apr 24 #Python
pandas DataFrame 数据选取,修改,切片的实现
Apr 24 #Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 #Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
Apr 24 #Python
You might like
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
js 用于检测类数组对象的函数方法
2017/05/02 Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
2017/06/12 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
Python中使用pprint函数进行格式化输出的教程
2015/04/07 Python
Python中的with...as用法介绍
2015/05/28 Python
Python查询阿里巴巴关键字排名的方法
2015/07/08 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
Python 实现12306登录功能实例代码
2018/02/09 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
python查看模块,对象的函数方法
2018/10/16 Python
CentOS 7 安装python3.7.1的方法及注意事项
2018/11/01 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
Pyorch之numpy与torch之间相互转换方式
2019/12/31 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
高中体育教学反思
2014/01/29 职场文书
夜不归宿检讨书
2014/02/25 职场文书
竞选村长演讲稿
2014/04/28 职场文书
书香家庭事迹材料
2014/05/09 职场文书
应聘教师自荐书
2014/06/16 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
英语复习计划
2015/01/19 职场文书
python 模块重载的五种方法
2021/04/24 Python
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB