首页 > 编程语言 >Python教程 - 改进温度折线图

Python教程 - 改进温度折线图

时间:2022-09-03 13:45:56浏览次数:62  
标签:教程 plt nums Python pyplot ticks len 折线图 nums1

任务介绍

之前我们完成了画温度变化图,但是实现的相对简单,这次我们可以改进一下
但在改进之前需要学习一下新的知识,画横线和刻度

画横线

pyplot.hlines()用于在图中从xmin到xmax的每个y处绘制水平线。
例如在y=3处画一条横线,x的范围为0到5

import matplotlib.pyplot as plt

plt.hlines(3, 0, 5)
plt.show()

效果如下:

我们可以用来横线来表示平均数

import matplotlib.pyplot as plt

nums1 = [1,3,2,5,4]
plt.plot(nums1,marker='o')
plt.hlines(sum(nums1)/len(nums1), 0, len(nums1), linestyle='dashed', color='green')
plt.show()

效果如下:

设置刻度

pyplot.xticks设置当前x轴刻度位置和标签
例如将x轴的刻度设置为英文形式

plt.xticks([0,1,2,3,4], ['One','Two','Three','Four','Five'])

完整代码:

import matplotlib.pyplot as plt

nums1 = [1,3,2,5,4]
plt.plot(nums1,marker='o')
plt.hlines(sum(nums1)/len(nums1), 0, len(nums1), linestyle='dashed', color='green')
plt.xticks([0,1,2,3,4], ['One','Two','Three','Four','Five'])
plt.show()

效果如下:

带日期的温度记录文件

学习了以上的新知识,我们就可以用来改进我们的温度变化图
首先将txt中的内容改为一下内容:

Day1 37
Day2 36
Day3 35
Day4 30.5
Day5 32
Day6 38.5
Day7 37

增加x轴刻度标签的解析

由于一行数据表示两个内容,第一个是第几天,第二个是温度,因此我们需要先用split函数将字符串分割,再分别存到数组ticks和数组nums中

    nums=[]
    ticks=[]
    for l in lines:
        sp = l.split()
        ticks.append(sp[0])
        n = float(sp[1])
        nums.append(n)
    print(nums)

然后用nums画折线图和平均温度的横线,用ticks设置x轴刻度
完整代码

import tkinter
import tkinter.filedialog
import matplotlib.pyplot as plt

fn = tkinter.filedialog.askopenfilename(filetypes=[('TXT', '.txt')])
print(fn)

with open(fn) as f:
    lines = f.readlines()
    print(lines)

    nums=[]
    ticks=[]
    for l in lines:
        sp = l.split()
        ticks.append(sp[0])
        n = float(sp[1])
        nums.append(n)
    print(nums)

    plt.plot(nums, marker='o')
    plt.hlines(sum(nums)/len(nums), 0, len(nums), linestyle='dashed', color='green')
    plt.xticks(range(0,len(ticks)), ticks)
    plt.show()

效果如下:

标签:教程,plt,nums,Python,pyplot,ticks,len,折线图,nums1
From: https://www.cnblogs.com/hgrun/p/python-temperature2.html

相关文章

  • Python教程 - 画温度变化图
    任务介绍之前介绍了通过matplotlib来画折线图的基础知识,这次我们用画折线图的知识来画温度变化图温度记录文件首先,我们新建一个txt文件,输入以下内容保存,作为一段时间的......
  • Python导出微信公众号所有文章
    前言公司周年庆,行政的同事想让我帮个忙,把微信公众号的文章都导在一个文档里面,方便统计和检索。在网上找了一圈,大部分工具处于不可用状态,或者需要收费,于是花了一个多小时......
  • 用于数据工程的 Python 简介
    用于数据工程的Python简介Photoby希特什·乔杜里on不飞溅Python是当今数据工程师、数据科学家和机器学习工程师最常用的编程语言之一,因此它通常被称为数据语言......
  • python常用第三方库大汇总。
     分类库名称说明环境管理P非常简单的交互式python版本管理工具Pyenv简单的python版本管理工具Vex可以在虚拟环境中执行命令Virtualenvvirtualenv......
  • Selenium 教程第 3 部分
    Selenium教程第3部分我真的很抱歉放弃这部续集。实际上,我在写这篇文章的时候就失去了动力,想着谁会去读它,甚至会喜欢它。但是看到您的一些支持者喜欢这个故事或添加到......
  • Python获取时光网电影数据
    Python获取时光网电影数据一、前言有时候觉得电影真是人类有史以来最伟大的发明,我喜欢看电影,看电影可以让我们增长见闻,学习知识。从某种角度上而言,电影凭借自身独有的魅......
  • Python环境安装及配置
    下载minicondahttps://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/ 配置pip升级pip:python-mpipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simple......
  • python | 算法大神左神(左程云)算法课程 二叉树部分【中】
    1.二叉树宽度......
  • Python3项目初始化10-->前端基础jquery、ajax,sweetalert--创建用户删除用户改造
    32、JS基础-dmodal点击“创建”,不调整新页面操作,直接弹出框操作。modals弹框指示页面:https://v3.bootcss.com/javascript/#modals拷贝代码,父节点在body里面。<aclass=......
  • MySQL教程 - 事务(Transaction)
    更新记录转载请注明出处。2022年9月3日发布。2022年9月3日从笔记迁移到博客。事务说明事务(transaction)一种机制,用于执行成批的MySQL操作用以保证没有不完整的操......