matplotlib折线图

matplotlib折线图

假设一天中每隔两个小时的气温(℃)分别是[15,13,14.5,17,20,25,26,26,27,22,18,15], 画出对应的气温折线图

# 导入库
from matplotlib import pyplot as plt# 传入x轴和y轴数据, 是一个可迭代对象
# x轴和y轴的数据一起组成了所有要绘制出来的坐标
x = range(2, 26, 2)
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]# 传入数据, 绘制折线图
plt.plot(x, y)# 展示图形
plt.show()

output_2_0.png

但是目前存在以下几个问题:

  1. 设置图片大小(想要一个高清无码大图)
  2. 保存到本地
  3. 描述信息,比如x轴和y轴表示什么,这个图表示什么
  4. 调整x或者y的刻度的间距
  5. 线条的样式(比如颜色,透明度等)
  6. 标记出特殊的点(比如告诉别人最高点和最低点在哪里)
# figsize设置图片大小
# dpi参数能控制清晰度
fig = plt.figure(figsize=(20, 8), dpi=80)plt.plot(x, y)
# 保存图片
# 也可以保存为svg这种矢量图格式, 放大不会有锯齿
plt.savefig("line_chart.png")
plt.show()

output_4_0.png

fig = plt.figure(figsize=(10, 5))plt.plot(x, y)# 设置x轴刻度
# 将所有的x都作为x轴刻度
# plt.xticks(x)# 将[2, 26)每隔1作为x轴刻度
# plt.xticks(range(2, 26))# 将[2, 26)每隔0.5作为x轴刻度
# 这样子刻度会过于密集
# xticks_labels = [i/2 for i in range(4, 49)]
# plt.xticks(xticks_labels)# 刻度太密集时可以使用列表的步长来解决
# x[::2]表示在列表x中间隔为2取值
plt.xticks(x[::2])# 设置y轴刻度
plt.yticks(range(min(y), max(y) + 1))plt.show()

output_5_0.png

如果列表a表示10点到12点的每一分钟的气温, 如何绘制折线图观察每分钟气温的变化情况?

from matplotlib import pyplot as plt
import randomplt.figure(figsize=(20, 8))x = range(120)
y = [random.uniform(20, 35) for i in range(120)]plt.plot(x, y)# 设置x轴刻度字符串
x_ticks = ["10:{}".format(i) for i in x if i < 60]
x_ticks += ["11:{}".format(i - 60) for i in x if i>60]# 必须同时传入列表x中的数据和x_ticks的数据, 最终会在x轴上一一对应显示
# 两组数据的长度必须一样, 否则不能完全覆盖整个坐标轴
# 使用列表切片每隔5个数据展示一次
# 为了让字符串不会覆盖, 让字符串旋转90度显示
plt.xticks(x[::5], x_ticks[::5], rotation=90)plt.show()

output_7_0.png

plt.figure(figsize=(20, 8))
plt.plot(x, y)
plt.xticks(x[::5], x_ticks[::5], rotation=90)# 添加x轴, y轴标签以及图形标题
plt.xlabel("time")
plt.ylabel("temperature")
plt.title("Temperature changes per minute")plt.show()

output_8_0.png

假设大家在30岁的时候, 根据自己的实际情况, 统计出来了从11岁到30岁每年交的女(男)朋友的数量如列表a, 请绘制出该数据的折线图, 以便分析自己每年交女(男)朋友的数量走势

from matplotlib import pyplot as pltx = range(11, 31)
y = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]plt.plot(x, y)
plt.xticks(x)
plt.yticks(y)# 绘制网格, 并设置透明度
plt.grid(alpha=0.4)plt.show()

output_10_0.png

# 找出最高点和最低点的坐标
max_y = max(y)
min_y = min(y)
max_idx = y.index(max_y)
min_idx = y.index(min_y)
max_x = x[max_idx]
min_x = x[min_idx]plt.plot(x, y)
plt.xticks(x)
plt.yticks(y)
plt.grid(alpha=0.4)# 标记出最高的点和最低的点
plt.scatter(max_x, max_y, color='red', label='Max points')
plt.scatter(min_x, min_y, color='green', label='Min points')
# 指定图例位置
plt.legend(loc="best")plt.show()

output_11_0.png

假设大家在30岁的时候, 根据自己的实际情况, 统计出来了你和你同桌各自从11岁到30岁每年交的女(男)朋友的数量如列表a和b, 请在一个图中绘制出该数据的折线图, 以便比较自己和同桌20年间的差异, 同时分析每年交女(男)朋友的数量走势

x = range(11, 31)
y1 = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y2 = [1,0,3,1,2,2,3,3,2,1 ,2,1,1,1,1,1,1,1,1,1]'''
自定义绘制图形风格
plt.plot(x, y,label=""        添加图例color='r'       线条颜色    r红色    g绿色    b蓝色    w白色    c青色   m洋红   y黄色   还可以用16进制RGB linestyle='--'  线条风格    -实线    --虚线    -.点划线    :点虚线linewidth=5     线条粗细alpha=0.5       透明度
)
'''# 绘制多个图形plot多次即可
plt.plot(x, y1, label="self", linestyle='--', color='r', alpha=0.5)
plt.plot(x, y2, label="calssmate", linestyle='-', color='b', alpha=0.5)plt.xticks(x)
plt.grid(alpha=0.5)
# 通过legend(loc)指定图例的位置, 默认右上角
# best, upper right, upper left, lower right, lower left, right, center left, center right, lower center, upper center, center
plt.legend(loc="best")
plt.show()

output_13_0.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/508382.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Vue中实现事件处理?

Vue是一种流行的JavaScript框架&#xff0c;广泛应用于前端开发。在Vue中&#xff0c;事件处理是一个非常关键的概念&#xff0c;可以帮助我们实现用户与页面的交互&#xff0c;今天我们就来探讨一下如何在Vue中实现事件处理。 首先&#xff0c;让我们先了解一下在Vue中如何绑…

CentOS下安装Kafka3

kafka是分布式消息队列&#xff0c;本文讲述其在centos&#xff08;centos 7.5&#xff09;下的安装。安装过程可以参考其官方文档https://kafka.apache.org/36/documentation.html 首先在官网 https://kafka.apache.org/downloads 下载Kafka二进制文件&#xff08;官网的压缩包…

2024-03-03 作业

作业要求&#xff1a; 1.使用fwrite、fread将一张随意的bmp图片&#xff0c;修改成德国的国旗 2.使用提供的getch函数&#xff0c;编写一个专门用来输入密码的函数&#xff0c;要求输入密码的时候&#xff0c;显示 * 号&#xff0c;输入回车的时候&#xff0c;密码输入结束 作业…

[Java 探索之路~大数据篇] 新时代大数据流处理入门指南

本文主要介绍大数据基础&#xff0c;以及 flink 流计算 文章目录 【基础知识】1. 批处理与流处理1.批处理2.流处理 2. 为什么需要一个优秀的流处理框架1. 股票交易的业务场景2.生产者——消费者模型3. 流处理框架要解决的诸多问题&#xff08;1&#xff09;可扩展性&#xff08…

数据分析-Pandas数据的画图设置

数据分析-Pandas数据的画图设置 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表&#x…

LSTM 长短期记忆递归神经网络

1、神经网络简介 1.1 神经网络起源 人工神经网络&#xff08;Aritificial Neural Networks, ANN&#xff09;是一种仿生的网络结构&#xff0c;起源于对人类大脑的研究。人工神经网络&#xff08;Aritificial Neural Networks&#xff09;也常被简称为神经网络&#xff08;Ne…

2024-03-03 c++

&#x1f338; MFC进度条控件 | Progress Control 1。新建MFC项目&#xff08;基于对话框、静态库&#xff09; 2。添加控件&#xff0c;删除初始的3个多余控件 加1个progress control&#xff0c;修改其marquee为true&#xff0c;添加变量&#xff1a;变量名为test_progress。…

如何开好一家汽车美容店,汽车美容保养与装饰教学

一、教程描述 本套教程共由17张VCD组合而成&#xff0c;教程内容主要包括&#xff1a;美容店的设立和管理&#xff0c;汽车系统与内部结构&#xff0c;汽车美容工具与美容设备&#xff0c;美容用品的选择与使用&#xff0c;车身打蜡镀膜与内外清洁&#xff0c;车身抛光与漆面处…

jmeter 命令行用法、文件解读、生成报告

当前版本&#xff1a; jmeter 5.6.3mysql 5.7.39 简介 本篇文章主要介绍如何配置jmeter使用内存&#xff0c;出现的一些异常如何处理&#xff0c;以及详细描述运行时的字段说明。最后在目录4介绍使用案例&#xff0c;包括&#xff1a;基本用法、测试完成后如何生成报告、测试结…

分布式执行引擎ray入门--(1)简介

官网地址&#xff1a;Overview — Ray 2.9.3 1.ray的概述&#xff1f; Ray 是一个高性能的分布式执行引擎&#xff0c;开源的人工智能框架。旨在帮助开发者在原有代码上添加几行代码就可以进行分布式训练。 它由如下几个部分构成&#xff1a; 1&#xff09;可扩展的库 用于常…

Intel FPGA IP之LVDS SerDes IP学习

FPGA 视频数据输入输出直通工程&#xff1a; 屏&#xff1a;13.2吋8bit色深&#xff0c;屏幕分辨率为1440*192060&#xff0c;具有两个Port&#xff0c;每个Port有4个差分数据对与1个差分时钟对&#xff0c;差分对均支持LVDS协议芯片&#xff1a;Cyclone V系列FPGA目的&#x…

Linux第68步_旧字符设备驱动的一般模板

file_operations结构体中的函数就是我们要实现的具体操作函数。 注意&#xff1a; register_chrdev()和 unregister_chrdev()这两个函数是老版本驱动使用的。现在新字符设备驱动已经不再使用这两个函数&#xff0c;而是使用Linux内核推荐的新字符设备驱动API函数。 1、创建C…