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中实现定制类的特殊方法总结
Sep 28 Python
Python统计文件中去重后uuid个数的方法
Jul 30 Python
Python处理json字符串转化为字典的简单实现
Jul 07 Python
python导入csv文件出现SyntaxError问题分析
Dec 15 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
Pytorch卷积层手动初始化权值的实例
Aug 17 Python
flask 实现上传图片并缩放作为头像的例子
Jan 09 Python
代码总结Python2 和 Python3 字符串的区别
Jan 28 Python
Python获取、格式化当前时间日期的方法
Feb 10 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
python字典按照value排序方法
Dec 28 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获取网卡地址的代码
2008/04/09 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
jQuery表格插件datatables用法汇总
2016/03/29 Javascript
jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
2016/06/02 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
vue.js中Vue-router 2.0基础实践教程
2017/05/08 Javascript
vue路由组件按需加载的几种方法小结
2018/07/12 Javascript
详解nodejs http请求相关总结
2019/03/31 NodeJs
前端天气插件tpwidget使用方法详解
2019/06/24 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
[08:53]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS 选手采访
2021/03/11 DOTA
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
Php多进程实现代码
2018/05/07 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
python 最简单的实现适配器设计模式的示例
2020/06/30 Python
Python用Jira库来操作Jira
2020/12/28 Python
彪马日本官网:PUMA日本
2019/01/31 全球购物
制药工程专业应届生求职信
2013/09/24 职场文书
建筑工程专业毕业生自荐信
2013/10/19 职场文书
大学生毕业自我评价范文分享
2013/11/11 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
2014标准社保办理委托书
2014/10/06 职场文书
赢在中国观后感
2015/06/02 职场文书
党员转正意见怎么写
2015/06/03 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
护士工作心得体会
2016/01/25 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书
java objectUtils 使用可能会出现的问题
2022/02/28 Java/Android