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正则表达式中的括号匹配问题
Dec 14 Python
Django 跨域请求处理的示例代码
May 02 Python
Python实现字符型图片验证码识别完整过程详解
May 10 Python
Python 实现将数组/矩阵转换成Image类
Jan 09 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
Apr 10 Python
python怎么判断模块安装完成
Jun 19 Python
Python:__eq__和__str__函数的使用示例
Sep 26 Python
通过代码简单了解django model序列化作用
Nov 12 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 Python
Python数据类型最全知识总结
May 31 Python
Python函数中apply、map、applymap的区别
Nov 27 Python
Python语言内置数据类型
Feb 24 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
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
WordPress中is_singular()函数简介
2015/02/05 PHP
php随机获取金山词霸每日一句的方法
2015/07/09 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
YII2自动登录Cookie总是失效的解决方法
2017/06/28 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
JavaScript获取ul中li个数的方法
2017/02/13 Javascript
React 子组件向父组件传值的方法
2017/07/24 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
2019/07/12 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
Python urlopen 使用小示例
2008/09/06 Python
Python实现股市信息下载的方法
2015/06/15 Python
python进行TCP端口扫描的实现
2018/12/21 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
Cole Haan官方网站:美国时尚潮流品牌
2017/12/06 全球购物
迷你唐卡软皮鞋:Minnetonka Moccasin
2018/05/01 全球购物
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
一个SQL面试题
2014/08/21 面试题
介绍一下gcc特性
2015/10/31 面试题
运动会领导邀请函
2014/01/10 职场文书
爱情保证书大全
2014/04/29 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
中秋节寄语2015
2015/03/24 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书