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实现抓取网页并且解析的实例
Sep 20 Python
python通过pil将图片转换成黑白效果的方法
Mar 16 Python
举例详解Python中的split()函数的使用方法
Apr 07 Python
Python简单遍历字典及删除元素的方法
Sep 18 Python
使用python实现个性化词云的方法
Jun 16 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
Apr 23 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
May 26 Python
利用Python如何实现一个小说网站雏形
Nov 23 Python
Python Numpy计算各类距离的方法
Jul 05 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
Nov 25 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
Mar 30 Python
Python中的 No Module named ***问题及解决
Jul 23 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调用Webservice思路及源码分享
2014/06/04 PHP
php获取数组元素中头一个数组元素值的实现方法
2014/12/20 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
原创javascript小游戏实现代码
2010/08/19 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
2020/02/10 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
python中文编码问题小结
2014/09/28 Python
Python 异常处理的实例详解
2017/09/11 Python
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
在Python中增加和插入元素的示例
2018/11/01 Python
python pickle存储、读取大数据量列表、字典数据的方法
2019/07/07 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
IE矩阵Matrix滤镜旋转与缩放及如何结合transform
2012/11/29 HTML / CSS
html5视频常用API接口的实战示例
2020/03/20 HTML / CSS
国际象棋商店:The Chess Store
2018/07/09 全球购物
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
包装类的功能、种类、常用方法
2012/01/27 面试题
Linux如何压缩可执行文件
2013/10/21 面试题
Laravel中Kafka的使用详解
2021/03/24 PHP
应聘护理专业毕业自荐书范文
2014/02/12 职场文书
毕业生自荐信如何写
2014/03/24 职场文书
2014年校长工作总结
2014/12/11 职场文书
领导参观欢迎词
2015/01/26 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
关于JavaScript回调函数的深入理解
2021/06/27 Javascript