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的Django框架结合jQuery实现AJAX购物车页面
Apr 11 Python
Python中强大的命令行库click入门教程
Dec 26 Python
Python中import机制详解
Nov 14 Python
详解python上传文件和字符到PHP服务器
Nov 24 Python
python中的二维列表实例详解
Jun 19 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
Apr 29 Python
使用python 写一个静态服务(实战)
Jun 28 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
Aug 23 Python
Python xpath表达式如何实现数据处理
Jun 13 Python
keras 自定义loss层+接受输入实例
Jun 28 Python
keras 模型参数,模型保存,中间结果输出操作
Jul 06 Python
python神经网络学习 使用Keras进行回归运算
May 04 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
apache php mysql开发环境安装教程
2016/07/28 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
2017/04/27 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
top.location.href 没有权限 解决方法
2008/08/05 Javascript
jquery复选框CHECKBOX全选、反选
2008/08/30 Javascript
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
JavaScript自动设置IFrame高度的小例子
2013/06/08 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
动态加载脚本提升javascript性能
2014/02/24 Javascript
js Dialog 去掉右上角的X关闭功能
2014/04/23 Javascript
浅谈JS日期(Date)处理函数
2014/12/07 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
浅谈json取值(对象和数组)
2016/06/24 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
python多线程编程方式分析示例详解
2013/12/06 Python
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
使用Python的turtle模块画国旗
2019/09/24 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
2020/06/05 Python
Python使用Chrome插件实现爬虫过程图解
2020/06/09 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
CSS3中使用RGBA设置透明度的示例
2015/08/04 HTML / CSS
html5使用canvas压缩图片的示例代码
2018/09/11 HTML / CSS
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
房屋租赁协议书
2014/04/10 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
培训通知书模板
2015/04/17 职场文书
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python