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 内置字符串处理函数的使用方法
Jun 11 Python
Python实现的简单发送邮件脚本分享
Nov 07 Python
Python使用urllib模块的urlopen超时问题解决方法
Nov 08 Python
Python更新数据库脚本两种方法及对比介绍
Jul 27 Python
理论讲解python多进程并发编程
Feb 09 Python
浅谈pandas用groupby后对层级索引levels的处理方法
Nov 06 Python
解决pandas .to_excel不覆盖已有sheet的问题
Dec 10 Python
解决项目pycharm能运行,在终端却无法运行的问题
Jan 19 Python
对python3中, print横向输出的方法详解
Jan 28 Python
Python将string转换到float的实例方法
Jul 29 Python
python爬虫 requests-html的使用
Nov 30 Python
python基础之模块的导入
Oct 24 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
非常不错的MySQL优化的8条经验
2008/03/24 PHP
js下函数般调用正则的方法附代码
2008/06/22 PHP
php 变量未定义等错误的解决方法
2011/01/12 PHP
php数组一对一替换实现代码
2012/08/31 PHP
PHP数组及条件,循环语句学习
2012/11/11 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
PHP实现的统计数据功能详解
2016/12/06 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
2013/04/17 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
js实现自定义进度条效果
2017/03/15 Javascript
VUE实现一个分页组件的示例
2017/09/13 Javascript
微信小程序实现下滑到底部自动翻页功能
2020/03/07 Javascript
python基础之入门必看操作
2017/07/26 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
Python正则匹配判断手机号是否合法的方法
2020/12/09 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
使用python turtle画高达
2020/01/19 Python
Tensorflow实现在训练好的模型上进行测试
2020/01/20 Python
python圣诞树编写实例详解
2020/02/13 Python
flask项目集成swagger的方法
2020/12/09 Python
Urban Outfitters德国官网:美国跨国生活方式零售公司
2018/05/21 全球购物
馥绿德雅美国官方网站:Rene Furterer头皮护理专家
2019/05/01 全球购物
国贸专业个人求职信范文
2014/01/08 职场文书
社团成立邀请函
2014/01/08 职场文书
自我鉴定书
2014/03/24 职场文书
2015年环保局工作总结
2015/05/22 职场文书
Python关于OS文件目录处理的实例分享
2021/05/23 Python