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中type的构造函数参数含义说明
Jun 21 Python
Python获取当前页面内所有链接的四种方法对比分析
Aug 19 Python
Python实现的FTP通信客户端与服务器端功能示例
Mar 28 Python
python3实现基于用户的协同过滤
May 31 Python
浅谈python 读excel数值为浮点型的问题
Dec 25 Python
Python实现定时执行任务的三种方式简单示例
Mar 30 Python
Python绘制堆叠柱状图的实例
Jul 09 Python
Django实现CAS+OAuth2的方法示例
Oct 30 Python
Python读取xlsx数据生成图标代码实例
Aug 12 Python
Python+Opencv身份证号码区域提取及识别实现
Aug 25 Python
如何使用python写截屏小工具
Sep 29 Python
使用gunicorn部署django项目的问题
Dec 30 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数组的使用方法小结
2010/09/23 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
2014/02/24 PHP
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
PHP+MySQL插入操作实例
2015/01/21 PHP
jQuery源码解读之hasClass()方法分析
2015/02/20 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
2018/01/31 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
python连接池实现示例程序
2013/11/26 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
Python常用的json标准库
2019/02/19 Python
详解Python3 基本数据类型
2019/04/19 Python
PyQt5实现简易电子词典
2019/06/25 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
如何用Matplotlib 画三维图的示例代码
2020/07/28 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
瑞典首都斯德哥尔摩的多元奢侈时尚品牌:Acne Studios
2017/07/09 全球购物
澳大利亚排名第一的狂热牛仔品牌:ONETEASPOON
2018/11/20 全球购物
天网面试题
2013/04/07 面试题
班组长工作职责
2013/12/25 职场文书
小学生综合素质评语
2014/04/23 职场文书
三八妇女节活动总结
2014/05/04 职场文书
授权委托书格式
2014/07/31 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
婚育证明格式
2015/06/17 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
使用css样式设计一个简单的html登陆界面的实现
2021/03/30 HTML / CSS
Python机器学习之PCA降维算法详解
2021/05/19 Python