Matplotlib数据可视化实战-2绘制折线图(1)

函数plot是matplotlib.pyplot模块中的一个重要函数,用于在图形中绘制折线图。其基本用法是plot(x, y, [fmt], **kwargs),其中xy分别代表X轴和Y轴上的数据点,通常是以列表、数组或一维序列的形式给出。通常用的参数有:

基本参数

  • x, y:数组(array-like)或可迭代对象,分别表示X轴和Y轴的数据点。

线条样式参数

  • linestyle 或 ls:线条样式。可选值有 -(实线)、--(虚线)、-.(点划线)、:(点线)、None(无线条)、' '(空白线)、''(默认)、'solid''dashed''dashdot''dotted'等。
  • linewidth 或 lw:线条宽度,以点为单位。
  • marker:数据点标记样式。可选值包括 'o'(圆圈)、'.'(点)、','(像素点)、's'(正方形)、'd'(菱形)、'p'(五边形)、'*'(星形)、'h'(六边形1)、'H'(六边形2)、'+'(加号)、'x'(x形状)、'D'(菱形双对角线)、'd'(窄菱形)、'|'(垂直线)、'_'(水平线)等。也可以是一个数字,表示自定义的标记。
  • markersize 或 ms:标记大小,以点为单位。
  • markerfacecolor 或 mfc:标记的填充颜色。
  • markeredgecolor 或 mec:标记的边缘颜色。
  • markeredgewidth 或 mew:标记边缘的宽度。

颜色参数

  • color 或 c:线条或标记的颜色。可以是字符串(如 'red''b' 等)、RGB元组(如 (0.1, 0.2, 0.5))、十六进制颜色代码(如 '#FF5733')等。

其他参数

  • label:线条的标签,用于图例。
  • alpha:透明度,0表示完全透明,1表示完全不透明。
  • visible:是否可见。
  • solid_capstyle:线条端点的样式。
  • dash_capstyle:线条虚线部分的端点样式。
  • solid_joinstyle:线条实线部分的连接样式。
  • dash_joinstyle:线条虚线部分的连接样式。

返回值

  • 一个或多个线条对象,取决于调用方式。

注意:以上只是plot函数的部分常用参数,matplotlib库提供了更多的参数和选项,可以根据需要进行更详细的定制。为了获取完整的参数列表和更多详细信息,可以查阅matplotlib的官方文档或使用Python的帮助功能(如 help(plt.plot))。

2.1绘制带有中文标题、坐标轴标签和图例的正弦、余弦图像

import matplotlib.pylab as plt = pl.arange(0.0, 2.0*pl.pi, 0.01)    # 自变量取值范围
s = pl.sin(t)                          # 计算正弦函数值
z = pl.cos(t)                          # 计算余弦函数值
pl.plot(t,                             # x轴坐标s,                             # y轴坐标label='正弦',                  # 标签color='red')                   # 颜色
pl.plot(t, z, label='余弦',lw=3, ls='--', color='blue')   # 3像素宽,虚线
pl.xlabel('x-变量',                    # 标签文本fontproperties='simhei',    # 字体fontsize=18)                 # 字号
pl.ylabel('y-正弦余弦函数值', fontproperties='simhei', fontsize=18)
pl.title('sin-cos函数图像',             # 标题文本fontproperties='simhei',      # 字体fontsize=24)                  # 字号
pl.legend(prop='SimSun')              # 创建、显示图例
pl.grid(alpha=0.7, ls='-.')            # 半透明网格线,点画线
pl.show()                              # 显示绘制的结果图像

2.2在绘制结果中添加水平线和垂直线 

import numpy as np
import matplotlib.pyplot as pltx = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
# 绘制正弦曲线
plt.plot(x, y, 'r-', lw=2, label='sin')
# 在纵坐标-0.5和0.5处绘制两条水平直线,蓝色虚线
plt.axhline(-0.5, color='blue', ls='--', label='axhline')
plt.axhline(0.5, color='blue', ls='--')
# 在横坐标绘制垂直直线,绿色点划线
plt.axvline(np.pi, color='green', ls='-.', label='axvline')
# 设置y轴刻度位置和文本
plt.yticks([-1, -0.5, 0, 0.5, 1],['-1', 'axhline', '0', 'axhline', '1'])
# 创建、显示图例
plt.legend()plt.show()

 

2.3绘制陀螺线,只绘制采样点

import numpy as np
import matplotlib.pyplot as plt# 4个圆周的角度,单位为弧度
theta = np.arange(0, 8*np.pi, 0.1)
r = np.arange(20, 20+len(theta))
# 在采样点位置处绘制红色圆圈
plt.plot(r*np.cos(theta), r*np.sin(theta), 'ro')plt.show()

 

2.4同时绘制多条折线 


import numpy as np
import matplotlib.pyplot as pltx = range(10)
# 10行3列随机数,每个都介于[20,50)区间内
y = np.random.randint(20, 50, (10,3))
# 绘制3条折线图,每列数据对应一条折线图
plt.plot(x, y, label=['a','b','c'])
plt.legend()plt.show()

 

2.5同时绘制多条曲线 

import numpy as np
import matplotlib.pyplot as pltx1 = np.arange(0, 2*np.pi, 0.01)
y1 = np.sin(x1)
x2 = np.arange(2*np.pi, 4*np.pi, 0.01)
y2 = np.cos(x2)
# 指定每条曲线的采样点位置和线条属性
lines = plt.plot(x1, y1, 'r-', x2, y2, 'b-.')
# 为两条曲线创建图例
plt.legend(lines, ['sin','cos'])plt.show()

2.6绘制龟兔赛跑中兔子和乌龟的行走轨迹

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm# 时间轴
t = np.arange(0, 120, 0.5)
# 兔子的运行轨迹,分段函数
rabbit = np.piecewise(t,[t<10, t>110],               # 兔子跑步的两个时间段[lambda x:15*x,              # 兔子第一段时间的路程lambda x:20*(x-110)+150,    # 第二个时间段的路程lambda x:150]               # 兔子中间睡觉时的路程)
tortoise = 3 * t                                   # 小乌龟一直在匀速前进
plt.plot(t, tortoise, label='乌龟', lw=3)
plt.plot(t, rabbit, label='兔子')
plt.title('龟兔赛跑', fontproperties='simhei', fontsize=24)
plt.xlabel('时间(秒)', fontproperties='simhei', fontsize=18)
plt.ylabel('与起点的距离(米)', fontproperties='simhei', fontsize=18)
myfont = fm.FontProperties(fname=r'C:\Windows\Fonts\simhei.ttf',size=12)                # 设置图例中的中文字体和字号
plt.legend(prop=myfont)
plt.show()

2.7一笔绘制红色五角星

方法一:

import numpy as np
import matplotlib.pyplot as plt# 外接圆半径
r = 6
angles = np.linspace(0, 2*np.pi, 5,endpoint=False)
x = r * np.cos(angles)
y = r * np.sin(angles)plt.plot([x[2],x[0],x[3],x[1],x[4],x[2]],[y[2],y[0],y[3],y[1],y[4],y[2]],'r')
# 设置坐标轴纵横比相等
plt.gca().set_aspect('equal')
plt.show()

 

方法2:

import numpy as np
import matplotlib.pyplot as plt# 外接圆半径
r = 6
angles = np.linspace(0, 4*np.pi, 6)
x = r * np.sin(angles)
y = r * np.cos(angles)plt.plot(x, y, 'r')
# 设置坐标轴纵横比相等
plt.gca().set_aspect('equal')
plt.show()

2.8使用三角函数绘制花瓣图案

import numpy as np
import matplotlib.pyplot as pltr = 6
angles = np.arange(0, np.pi*2, 0.01)
# 把4改成其他数字可以得到不同图案
x = r * np.cos(4*angles) * np.cos(angles)
y = r * np.cos(4*angles) * np.sin(angles)
plt.plot(x, y, 'r')# 设置坐标轴纵横比相等
plt.gca().set_aspect('equal')
# 显示图形
plt.show()

 

2.9某质点的初始速度和加速度已知,绘制该质点第5-20s的速度和位移的曲线

import numpy as np
import matplotlib.pyplot as plt# 初始速度和加速度
v0, a = 3, 1.8
# 时间轴,第5到20秒
t = np.arange(5, 21)
# 速度
v = v0 + a*t
# 位移
x = v0*t + 0.5*a*t*t
# 创建左右两个子图
fig, (ax1, ax2) = plt.subplots(1, 2)
# 设置子图之间的水平间距,wspace单位为子图宽度的比例
plt.subplots_adjust(wspace=0.5)
# 选择左边子图为当前子图
plt.sca(ax1)
# 在当前子图中绘制折线图
plt.plot(t, v, c='red')
plt.title('时间-速度', fontproperties='simhei', fontsize=24)
plt.xlabel('时间(s)', fontproperties='simhei', fontsize=18)
plt.ylabel('速度(m/s)', fontproperties='simhei', fontsize=18)
# 设置坐标轴刻度范围
plt.xlim(5, 21)
plt.ylim(0, 40)# 选择右边子图为当前子图
plt.sca(ax2)
# 在当前子图中绘制折线图
plt.plot(t, x, c='blue')
plt.title('时间-位移', fontproperties='simhei', fontsize=24)
plt.xlabel('时间(s)', fontproperties='simhei', fontsize=18)
plt.ylabel('位移(m)', fontproperties='simhei', fontsize=18)
plt.xlim(5, 21)
plt.ylim(0, 450)plt.show()

3.10绘制误差线图 

import numpy as np
import matplotlib.pyplot as pltx = [1, 3, 5, 8, 9]
y = [5, 9, 3, 5, 10]
plt.errorbar(x, y,    # 数据点位置xerr=1, yerr=[1,1,1,0.5,0.5],    # 两个方向的误差范围# 设置线条和端点符号# fmt='none'时表示不绘制数据点及连线,只绘制误差标记fmt='-.*',ecolor='orange',    # 误差线颜色errorevery=2,       # 每2个数据点绘制一个误差线lolims=True,        # 只绘制上侧的误差线xlolims=True,       # 只绘制右侧的误差线)plt.show()

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

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

相关文章

Programming Abstractions in C阅读笔记:p331-p337

《Programming Abstractions in C》学习第79天&#xff0c;p331-p337&#xff0c;总计7页。 一、技术总结 /** File: stack.h* -------------* This interface defines an abstraction for stacks. In any* single application that uses this interface, the values in* the…

IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS (T-ITS) 投稿记录,欢迎大家评论~

投稿整个流程时间点&#xff1a;Submitted: 17 October 2023 Awaiting Reviewer Assignment: From 18 October 2023 to 6 November 2023 Under review: From 6 November 2023 to 30 November 2023 Awaiting reviewer scores: From 1 December 2023 to 13 January 2024 Aw…

Unity学习笔记 6.2D换帧动画

下载源码 UnityPackage 目录 1.导入图片 1.1. 图片的叠放顺序 2.图片切片 3.用动画控制器让马&#x1f40e;动起来 1.导入图片 直接拖拽进场景 检查 Texture Type&#xff08;纹理类型&#xff09;是否为 Sprite 创建2D精灵对象&#xff0c;拖拽图片到Sprite&#xff08…

6.4 Dropout正则化

1、Dropout Dropout是一种正则化技术&#xff0c;通过防止特征的协同适应&#xff0c;可用于减少神经网络中的过拟合。 Dropout的效果非常好&#xff0c;实现简单且不会降低网络速度&#xff0c;被广泛使用。 特征的协同适应指的是在训练模型时&#xff0c;共同训练的神经元…

【算法篇】逐步理解动态规划1(斐波那契数列模型)

目录 斐波那契数列模型 1. 第N个泰波那契数 2.使用最小花费爬楼梯 3.解码方法 学过算法的应该知道&#xff0c;动态规划一直都是一个非常难的模块&#xff0c;无论是状态转移方程的定义还是dp表的填表&#xff0c;都非常难找到思路。在这个算法的支线专题中我会结合很多力…

stm32启动文件里面的__main和主函数main()

一、__main和main()之间的关系 先来对stm32启动过程简单学习 启动文件里面的Reset_Handler&#xff1a; 调用过程&#xff1a; stm32在启动后先进入重启中断函数Reset_Handler&#xff0c;其中会先后调用SystemInit和__main函数&#xff0c; __main函数属于c库函数&…

基于SpringBoot+Vue健身房管理系统(源码+部署说明+演示视频+源码介绍)

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。&#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精通…

Transformer的前世今生 day03(Word2Vec、如何使用在下游任务中)

前情回顾 由上一节&#xff0c;我们可以得到&#xff1a; 任何一个独热编码的词都可以通过Q矩阵得到一个词向量&#xff0c;而词向量有两个优点&#xff1a; 可以改变输入的维度&#xff08;原来是很大的独热编码&#xff0c;但是我们经过一个Q矩阵后&#xff0c;维度就可以控…

day29|leetcode|C++|491. 非递减子序列|46. 全排列|47. 全排列 II

Leetcode 491. 非递减子序列 链接&#xff1a;491. 非递减子序列 thought: 设 stack 中最后一个值的位置为 last。如果 stack 为空&#xff0c;则 last -1。 设当前正在处理的位置为 pos。如果在 nums 的子区间 [last1, pos) 中&#xff0c;存在和 nums[pos] 相同的值&…

Kafka broker

1. zk中存储的kafka信息 /kafka/brokers/ids存储了在线的broker id。 /kafka/brokers/topics/xxx/partitions/n/state存储了Leader是谁以及isr队列 /kafka/controller辅助Leader选举&#xff0c;每个broker都有一个controller&#xff0c;谁先在zk中注册上&#xff0c;谁就辅助…

腾讯云服务器多少钱一年?价格表新鲜出炉(2024)

腾讯云服务器多少钱一年&#xff1f;61元一年起。2024年最新腾讯云服务器优惠价格表&#xff0c;腾讯云轻量2核2G3M服务器61元一年、2核2G4M服务器99元一年可买三年、2核4G5M服务器165元一年、3年756元、轻量4核8M12M服务器646元15个月、4核16G10M配置32元1个月、312元一年、8核…

【研究僧总结】回顾第1095个创作日

目录 前言一. 机缘二. 日常三. 展望 前言 感觉刚过1024不久&#xff0c;现在又来个1095创作日 一. 机缘 研究僧一直在找平台做笔记&#xff0c;方便之后的回顾总结&#xff0c;也让各位网友见证你我的成长&#xff0c;相互学习 止不住的写文止不住的成长&#xff0c;大家共同…

Docker 之 数据卷

目录 1. 数据卷是什么 1.1 运行一个带有容器卷存储功能的容器实例 2.能干什么 3. 容器卷案例 3.1 宿主机vs容器之间映射添加容器卷 3.1.1 命令添加&#xff1a; 3.1.2 查看数据卷是否挂载成功 3.1.3 容器和宿主机之间数据共享 3.2 读写规则映射添加说明 3.2.1 读写&…

java系统部署到Linux

1、安装java 1.8JDK 卸载Open JDK 首先&#xff0c;我们先检查系统是否自带了 JDK。输入命令 java -verison批量删除 rpm -qa | grep java | xargs rpm -e --nodeps下载并安装JDK 我们在 user 目录下建立一个新的 java文件夹&#xff0c;用来存放 JDK文件。 jdk下载地址 …

快速上手 Elasticsearch:Docker Compose 部署详解

最近面试竞争日益激烈&#xff0c;Elasticsearch作为一款广泛应用的中间件&#xff0c;几乎成为面试中必考的知识点。最近&#xff0c;AIGC也备受关注&#xff0c;而好多的AI项目中也采用了Elasticsearch作为向量数据库&#xff0c;因此我们迫切希望学习Elasticsearch。对于学习…

Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别?

Docker简介 前言 前端有必要学习Docker吗&#xff1f;有&#xff01;&#xff01;不仅要学Docker&#xff0c;还要学习Kubernetes (K8s)&#xff0c;Jenkins 那问题来了&#xff0c;Docker,k8s,jenkins到底要先学习那个呢&#xff1f;当然是Docker 总结来说&#xff0c;先学习…

C++初阶:STL容器list的使用与初版自实现

目录 1. list的接口与使用1.1 默认成员函数1.2 迭代器与容量相关成员函数1.3 存储数据操作相关成员函数1.4 其他list操作成员函数 2. list的自实现2.1 list的自实现功能2.2 list的结点结构2.3 list的迭代器2.3 list的结构2.4 list迭代器的运算符重载2.5 list的成员函数 3. cons…

双指针(滑动窗口)-算法刷题

一.移动零&#xff08;. - 力扣&#xff08;LeetCode&#xff09;&#xff09; 算法思想 &#xff1a; 设置两个指针left,right&#xff0c;将数组分为三块[0,left]为不为0的元素&#xff0c;[left1,right-1]为0元素&#xff0c;[right,num.size()-1]为未扫描的区域&#xff0c…

第四百二十二回

文章目录 1. 概念介绍2. 思路与方法2.1 实现思路2.2 实现方法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"自定义标题栏"相关的内容&#xff0c;本章回中将介绍自定义Action菜单.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在这里提到的…

day3-QT

1>使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函。将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0c;密码是…