Python绘制二维曲线的日常应用详解


Posted in Python onDecember 04, 2019

使用Python绘制出类似Excel或者MATLAB的曲线还是比较容易就能够实现的,需要用到的额外库有两个,numpy和matplotlib。使用这两个模块实现的曲线绘制其实在一定程度上更像是MATLAB的plot功能,不过今天看了一下matplotlib网站上的信息,现在的功能更为强劲了,而且已经支持三维图像的绘制。

模块库的安装非常简单,我使用的Mac,在Mac上用pip进行了两个模块库的安装都十分顺畅。相信其他平台基本上也都这样,如果能够联网,这种安装方式是十分推荐的,确实是简单。

我用Python读取我自己日常运动的数据,数据以Numbers的方式进行统计,导出成Excel文件。为了能够读取Excel文件,我又安装了xlrd模块库。

从matplotlib的网站上抄了一小段代码简单做了一下修改,加入了数据读取以及简单的计算,代码如下:

#!/usr/bin/python



 import numpy as np

 import matplotlib.pyplot as plt

 from xlrd import open_workbook



 def SportLine(excel_file):

     days_year  = []

     target_km  = []

     records   = []

     sum_records = []

     pct_records = []

     target_pct  = []



     fig,axs = plt.subplots(3)



     for i in range(365):

         days_year.append(i)



     for day in days_year:

         target_km.append(float(day)/365.0 * 1000.0)



     # read record data

     book = open_workbook(excel_file)

     sheet = book.sheet_by_name('record')

     rows_num = sheet.nrows

     cols_num = sheet.ncols

     for row_num in range(3,368):

         try:

             records.append(float(sheet.cell(row_num,1).value))

         except:

             records.append(0.0)



     # calculate sum of records

     sum_record = 0.0

     for each_record in records:

         sum_record += each_record

         sum_records.append(sum_record)



     # calculate pct of all

     for each_sum in sum_records:

         pct_records.append(each_sum / 1000.0)



     # calculate target pct

     for day in range(1,366):

         target_pct.append(float(day)/365.0)



     # plot target and sum trend

     ax = axs[0]

     ax.plot(days_year,sum_records)

     ax.plot(days_year,target_km)

     ax.set_title('distance-year-km')

     ax.grid(True)



     # plot record

     ax = axs[1]

     ax.plot(days_year,records)

     ax.set_title('distance-day-km')

     ax.grid(True)



     # plot percentage

     ax = axs[2]

     ax.plot(days_year,pct_records)

     ax.plot(days_year,target_pct)

     ax.set_title('pct-100%')

     ax.grid(True)

     plt.show()



 SportLine('records.xlsx')

我的运动数据记录电子表格格式如下:

Python绘制二维曲线的日常应用详解

程序运行,画出的曲线如下:

Python绘制二维曲线的日常应用详解

基本差不多了,后面需要做的只有细节上的修正了。

以上这篇Python绘制二维曲线的日常应用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现登陆知乎获得个人收藏并保存为word文件
Mar 16 Python
11个并不被常用但对开发非常有帮助的Python库
Mar 31 Python
用Python的pandas框架操作Excel文件中的数据教程
Mar 31 Python
Python使用CMD模块更优雅的运行脚本
May 11 Python
Python内置random模块生成随机数的方法
May 31 Python
详解PyCharm+QTDesigner+PyUIC使用教程
Jun 13 Python
python实现mean-shift聚类算法
Jun 10 Python
Django框架安装及项目创建过程解析
Sep 14 Python
Python实现PS滤镜中的USM锐化效果
Dec 04 Python
python实现视频压缩功能
Dec 18 Python
python元组打包和解包过程详解
Aug 02 Python
python利用while求100内的整数和方式
Nov 07 Python
使用python远程操作linux过程解析
Dec 04 #Python
基于Python检测动态物体颜色过程解析
Dec 04 #Python
如何用OpenCV -python3实现视频物体追踪
Dec 04 #Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
Dec 04 #Python
python 画函数曲线示例
Dec 04 #Python
python二元表达式用法
Dec 04 #Python
python numpy 反转 reverse示例
Dec 04 #Python
You might like
php mysql数据库操作类
2008/06/04 PHP
PHP临时文件的安全性分析
2014/07/04 PHP
PHP实现批量生成App各种尺寸Logo
2015/03/19 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
ThinkPHP和UCenter接口冲突的解决方法
2016/07/25 PHP
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
jQuery之$(document).ready()使用介绍
2012/04/05 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
Javascript中常用类型的格式化方法小结
2016/12/26 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
在VUE中实现文件下载并判断状态的方法
2019/11/08 Javascript
google广告之另类js调用实现代码
2020/08/22 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
python的pygal模块绘制反正切函数图像方法
2019/07/16 Python
python实现加密的方式总结
2020/01/19 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
html5实现九宫格抽奖可固定抽中某项奖品
2020/06/15 HTML / CSS
10条PHP编程习惯
2014/05/26 面试题
计算机网络毕业生自荐信
2013/10/01 职场文书
七年级政治教学反思
2014/02/03 职场文书
保护环境建议书300字
2014/05/13 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
环保建议书200字
2014/05/14 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
表扬稿范文
2015/01/17 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
检讨书怎么写
2015/05/07 职场文书
导游词之无锡梅园
2019/11/28 职场文书