Python读取excel生成正态分布图

需求背景:
在制造业工厂为了统计产品尺寸的分布程度,需要制作正态分布图,excel 中没有专门的概率分布图制作比较麻烦。使用python容易实现。
运行环境:
win10 win8 win7 64位操作系统
python 3.6 以上
第三方库:
numpy
matplotlib
xlrd
程序代码:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
import matplotlib.mlab as mlab
import xlrd
#import timedef get_excel_value(j,filename):  #j代表列0是第一列,j,filename 为文件名row_list =[] #建立空列表插入尺寸数据excel = xlrd.open_workbook(r"%s"%filename)#sheet = excel.sheet_by_index(0)  #根据下标获取对应的sheet表sheet = excel.sheet_by_name("report")  #根据表名获取对应的sheet表#for  j in range(0,sheet.ncols):for i in range(5, sheet.nrows):     #从表的第6行开始到if sheet.row_values(i, start_colx=j, end_colx=j+1):  #内循环row_list.append(sheet.row_values(i, start_colx=j, end_colx=j+1)[0]) #每次循环取一个单元格数据插入列表中arr_mean = np.mean(row_list)arr_std = np.std(row_list,ddof=1)return row_list,arr_mean,arr_std   #函数返回尺寸数据,尺寸均值,尺寸标准差def get_tolerance(j,filename):  #读取公差函数,公差在工作表的3-5行excel = xlrd.open_workbook(r"%s"%filename)sheet = excel.sheet_by_index(0)  #根据下标获取对应的sheet表nominalvalue = sheet.row_values(2, start_colx=j, end_colx=j+1)[0]up=sheet.row_values(3, start_colx=j, end_colx=j+1)[0]low=sheet.row_values(4, start_colx=j, end_colx=j+1)[0]LSL=nominalvalue+lowUSL=nominalvalue+upreturn LSL,USLdef get_name(j,filename):   #获取尺寸名excel = xlrd.open_workbook(r"%s"%filename)sheet = excel.sheet_by_index(0)  #根据下标获取对应的sheet表name = sheet.row_values(1, start_colx=j, end_colx=j+1)[0]return nameclass higram:def __init__(self,dimension,filename,mu,sigma,data,LSL,USL,num_bins ):self.dimension=dimensionself.filename=filenameself.mu=muself.sigma=sigmaself.data=dataself.LSL=LSLself.USL=USLself.num_bins=num_binsdef creatchart(self):# 设置matplotlib正常显示中文和负号matplotlib.rcParams['font.sans-serif']=['SimHei']   # 用黑体显示中文matplotlib.rcParams['axes.unicode_minus']=False     # 正常显示负号def norm_pdf(x,mu,sigma):pdf = np.exp(-((x - mu)**2) / (2* sigma**2)) / (sigma * np.sqrt(2*np.pi)) #正态分布函数return pdfn, bins, patches = plt.hist(self.data, self.num_bins, density=1, facecolor="blue", edgecolor="black", alpha=0.5)#facecolor直方填充颜色edgecolor直方边框颜色#FFC0CB Pink 粉红 #E6E6FA Lavender 淡紫色/熏衣草淡紫y=norm_pdf(bins, mu, sigma)   #概率分布图#print(y)plt.plot(bins, y, 'r--',linestyle='-')   #概率分布图"_"代表实线,"r--"代表红色x = np.linspace(self.LSL, self.LSL, 100)    #等差数列y = np.linspace(0, 60, 100)plt.text(x[0],y[39],'LSL',size=13)    #text(x,y,str),x,y 文字的坐标plt.plot(x, y, 'g--', linewidth=1)x = np.linspace(self.USL, self.USL, 100)y = np.linspace(0, 60, 100)plt.text(x[0],y[39],'USL',size=13)plt.plot(x, y, 'g--', linewidth=1)plt.xlabel("区间")# 显示纵轴标签plt.ylabel("频数/频率") # 显示图标题plt.title(self.dimension+"_正态分布图")plt.subplots_adjust(left=0.15)   #把画的图从左边0.15(整个为1)处开始, 要不把y轴的label显示不出来plt.show()if __name__ == "__main__":#s=time.time()data=get_excel_value(0,"检测报告.xls")[0]  #尺寸数据mu=get_excel_value(0,"检测报告.xls")[1]    #尺寸均值sigma=get_excel_value(0,"检测报告.xls")[2]     #尺寸标准差LSL=get_tolerance(0,"检测报告.xls")[0]       #下公差USL=get_tolerance(0,"检测报告.xls")[1]       #上公差Dimension=get_name(0,"检测报告.xls")#尺寸名#e=time.time()#t=e-s#print(t)'''print("result:",data)print("mean:",mu)print("std:",sigma)print("LSL:",LSL)print("USL:",USL)print("Dimension:",Dimension)'''h=higram(Dimension,"检测报告.xls",mu,sigma,data,LSL,USL,num_bins=60)h.creatchart()

运行效果:

Python读取excel生成正态分布图相关推荐

  1. python读取excel生成柱状图

    可以使用 Python 的第三方库来读取 Excel 文件,比如 pandas.openpyxl 等.这些库可以方便地将 Excel 中的数据读取出来并存储到一个数据框中(pandas 中的数据结构) ...

  2. python读取excel生成mysql建表语句_python读取excel文件并自动在mysql中建表导数据

    """ 根据excel在mysql中建表(表名为文件名,字段为csv中的header,默认所有字段为varchar,如需更改,在数据库中更改即可),并插入数据 " ...

  3. python 读取excel 生成json 读取json

    # _*_ coding: utf-8 import xlrd,sys import pickle import json data=xlrd.open_workbook("d:/test/ ...

  4. wps生成正态分布的随机数_WPS中用excel做正态分析.doc

    WPS中用excel做正态分析WPS中用excel做正态分析.doc 数据录入 新建excel文档,录入待分析数据(本例中将数据录入A列,则在后面引用中所有的数据记为A:A);计算"最大值& ...

  5. python读取excel指定列-Python读取excel指定列生成指定sql脚本的方法

    需求 最近公司干活,收到一个需求,说是让手动将数据库查出来的信息复制粘贴到excel中,在用excel中写好的公式将指定的两列数据用update这样的语句替换掉. 例如: 有个A库,其中有两个A.01 ...

  6. python 读取excel表格数据,然后写入word模板,批量生成

    Python 读取excel及批量生成word模板 问题-来源 前几天,我姐遇见了一个难题:需要从excel表格中不断复制数据到word模板中,相当繁琐,询问我有没有解决的办法.于是我百度了一下,借鉴 ...

  7. python绘制表格界面_python 读取 excel 生成 html 页面

    前言 有天老板找我到办公室跟我说要做一个商城,商城卖出去东西就有佣金可以拿.我听着就头大.老板打开电脑给我看了网站:你看一下这个网站,照着它的流程就可以拥有一个商城了.我靠过去一看,大概了解一下:原来 ...

  8. python读取excel表格-python读写Excel表格的实例代码(简单实用)

    安装两个库:pip install xlrd.pip install xlwt 1.python读excel--xlrd 2.python写excel--xlwt 1.读excel数据,包括日期等数据 ...

  9. vb.net读取excel并写入dgv_如何用Python读取Excel中的图片?然后写入图片?

    大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进行分析. 那么你知道如何使用Python读 ...

  10. python 读取excel图片_如何用Python读取Excel中图片?

    公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...

最新文章

  1. Entity Framework 约定
  2. MPB:窖泥样品采集与核酸提取
  3. 8大趋势已现,未来传感器将彻底改变你的生活!
  4. 关于RESTful名字的含义
  5. boost::edge_list用法的测试程序
  6. python学习高级篇(part3)--MRO
  7. 第四次作业----刘滔
  8. 在Oracle用SQL处理以 System.currentTimeMillis
  9. EditText自定义边框和背景
  10. 绿联USB转RS-485/422转换器
  11. 技术帝,教你认识海思芯片及ARM芯片技术科普
  12. linux opencv调用笔记本摄像头,Linux下利用Opencv打开笔记本摄像头问题
  13. phpmyadmin 安装下载使用教程
  14. Notepad++ json 插件 Jsonviewer2 无法使用问题
  15. Oracle数据库之表空间(tablespace)---面试再也不害怕系列之一
  16. 用vue element-ui分页组件构建一个简单的分页 ( 超详细 )
  17. 结构化大数据分析平台设计
  18. 美迪网站推广教你怎样写原创文章
  19. 导入mysql文件提示“ASCII '\0' appeared in the statement”
  20. Maven Archetype使用教程与具体使用方法

热门文章

  1. mac分区数据恢复|mac分区后数据丢失怎么恢复?
  2. 程设课终章:c++使用socket实现bmp图片的传输
  3. 云呐|RFID资产盘点系统带审批(rfid库存盘点功能)
  4. cad导入图片之间相互转换
  5. 强连通分量入门——Trajan算法
  6. Kosaraju算法+Trajan算法
  7. 网易严选App感受Weex开发
  8. 使用ML.NET实现健康码识别
  9. 先验 超验_三个世界的划分:经验、超验、先验
  10. Java代码练习1 智能开关灯