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之ReportLab绘制条形码和二维码的实例
Jan 15 Python
python 按不同维度求和,最值,均值的实例
Jun 28 Python
详解python里的命名规范
Jul 16 Python
Python多线程原理与用法详解
Aug 20 Python
python调用百度语音REST API
Aug 30 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
Jun 28 Python
如何通过python的fabric包完成代码上传部署
Jul 29 Python
Python模块/包/库安装的六种方法及区别
Feb 24 Python
Python logging模块写入中文出现乱码
May 21 Python
python与pycharm有何区别
Jul 01 Python
基于pycharm 项目和项目文件命名规则的介绍
Jan 15 Python
Python Django / Flask如何使用Elasticsearch
Apr 19 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 面试碰到过的问题 在此做下记录
2011/06/09 PHP
PHP简单的MVC框架实现方法
2015/12/01 PHP
php实现搜索类封装示例
2016/03/31 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
javascript 写类方式之十
2009/07/05 Javascript
使用jquery读取html5 localstorage的值的方法
2013/01/04 Javascript
你必须知道的Javascript知识点之"字面量和对应类型"说明介绍
2013/04/23 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
原生JavaScript实现异步多文件上传
2015/12/02 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
js绑定事件和解绑事件
2017/04/27 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
2018/08/09 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
对matplotlib改变colorbar位置和方向的方法详解
2018/12/13 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
python如何保存文本文件
2020/06/07 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
自荐信范文
2013/12/10 职场文书
内容编辑个人求职信
2013/12/10 职场文书
学前教育毕业生自荐信范文
2013/12/24 职场文书
法律六进活动方案
2014/03/13 职场文书
法学自荐信
2014/06/20 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
2015年护士节活动策划方案
2015/05/04 职场文书
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers