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中zip()函数用法实例教程
Jul 31 Python
使用Python解析JSON数据的基本方法
Oct 15 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
May 16 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
Django 导出 Excel 代码的实例详解
Aug 11 Python
Flask框架响应、调度方法和蓝图操作实例分析
Jul 24 Python
Python使用统计函数绘制简单图形实例代码
May 15 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 Python
Python读取实时数据流示例
Dec 02 Python
Python:type、object、class与内置类型实例
Dec 25 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
May 11 Python
python爬虫使用正则爬取网站的实现
Aug 03 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获取QQ达人QQ信息的方法
2015/03/05 PHP
php之可变变量的实例详解
2017/09/12 PHP
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
简介alert()与console.log()的不同
2015/08/26 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
2020/08/03 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python笔记(2)
2012/10/24 Python
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
python3 shelve模块的详解
2017/07/08 Python
解决Python字典写入文件出行首行有空格的问题
2017/09/27 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
html5中localStorage本地存储的简单使用
2017/06/16 HTML / CSS
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
幼儿教师考核制度
2014/01/25 职场文书
社区活动邀请函范文
2014/01/29 职场文书
大型会议接待方案
2014/03/01 职场文书
广播节目策划方案
2014/05/23 职场文书
股东合作协议书
2014/09/12 职场文书
元旦标语大全
2014/10/09 职场文书
停电放假通知
2015/04/14 职场文书
优秀家长事迹材料(2016推荐版)
2016/02/29 职场文书
投资入股协议书
2016/03/22 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
Linux磁盘管理方法介绍
2022/06/01 Servers