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…

【课程】Java构架师42套阶段课程

01.第一阶段、Svn版本管理与代码上线架构方案 02.第二阶段、实战Java高并发程序设计模式视频 03.第三阶段、深入JVM内核一原理、诊断与优化 04.第四阶段、基于Netty的RPC架构实战演练 05.第五阶段、Git分布式版本控制系统权威指南 06.第六阶段、Redis从入门到精通、集群与应用 …

Unity学习笔记 6.2D换帧动画

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

【tips】Git使用指南

文章目录 一、Git介绍1. 什么是Git2.Git对比SVN3.Git安装 二.Git常用命令1. git config2. 初始化本地库3. 工作区、暂存区和版本库4. git add5. git commit6. git reset 与 git revertgit resetgit revert 三. Git 分支1.初识分支2.创建分支3.切换分支4.合并分支5.删除分支 四.…

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库函数&…

在mysql中索引字段类型是设置为bigint?还是varchar好?

在数据库设计中&#xff0c;选择索引字段的数据类型时&#xff0c;bigint和varchar各有优缺点&#xff0c;具体选择哪种类型取决于字段的用途、数据特性和查询需求。以下是对两者特点的对比&#xff1a; bigint: •优点&#xff1a; •大整数类型&#xff0c;适合存储整数或长整…

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

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

Selenium 驱动配置 和 元素定位

目录 驱动配置 元素定位 By类普通参数方法 CSS选择器参数方法 By类xpath参数方法 驱动配置 //新建chrome浏览器驱动配置 ChromeOptions options new ChromeOptions();//添加参数&#xff0c;允许远程访问 options.addArguments("--remote-allow-origins*");//新…

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;谁就辅助…

Autosar MCAL配置——Fls

文章目录 一、FLS基础知识二、达芬奇配置2.1 创建Fls模块2.2 FlsGeneralFlsDataFlash2.3 FlsConfigSet0FlsSector2.4 FlsPublishInfomation一、FLS基础知识 主要提供对Flash的读,写,擦相关操作服务;如果底层硬件支持的话,也提供一些配置接口来设置擦/写保护功能。 flash操…

低成本养号降低封号风险,这种方式你试过了吗?

众所周知&#xff0c;对于那些主要依赖海外社交媒体平台&#xff08;如Facebook脸书、推特X、Instagram等&#xff09;进行引流和投广、谷歌上架应用等拓展海外业务、主要赚海外money的朋友们而言&#xff0c;账号一旦被封&#xff0c;就会严重影响业务进程&#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下载地址 …