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程序与C程序的结合使用
Apr 07 Python
详谈python http长连接客户端
Jun 12 Python
Python编程之字符串模板(Template)用法实例分析
Jul 22 Python
python中找出numpy array数组的最值及其索引方法
Apr 17 Python
Python3实现购物车功能
Apr 18 Python
Python实现的ftp服务器功能详解【附源码下载】
Jun 26 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
Jul 01 Python
python 杀死自身进程的实现方法
Jul 01 Python
解决Python对齐文本字符串问题
Aug 28 Python
Python使用configparser库读取配置文件
Feb 22 Python
Python3实现打印任意宽度的菱形代码
Apr 12 Python
Python调用系统命令os.system()和os.popen()的实现
Dec 31 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多进程编程实例
2014/10/15 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
Google Map Api和GOOGLE Search Api整合实现代码
2009/07/18 Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
2015/11/24 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
jQuery实现模拟flash头像裁切上传功能示例
2016/12/11 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
详解如何在微信小程序中愉快地使用sass
2018/07/30 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
Vue 递归多级菜单的实例代码
2019/05/05 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
Python3读取文件常用方法实例分析
2015/05/22 Python
Pycharm更换python解释器的方法
2018/10/29 Python
python 同时运行多个程序的实例
2019/01/07 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
django有哪些好处和优点
2020/09/01 Python
Spartoo芬兰:欧洲最大的网上鞋店
2016/08/28 全球购物
公司晚会主持词
2014/03/22 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
小学英语课后反思
2014/04/26 职场文书
怎样拟定创业计划书
2014/05/01 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
东京审判观后感
2015/06/01 职场文书
论文评审意见
2015/06/05 职场文书
详解Nginx 工作原理
2021/03/31 Servers
goland 设置project gopath的操作
2021/05/06 Golang