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

news2024/9/29 11:42:19

函数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 pl

t = 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 plt

x = 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 plt

x = 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 plt

x1 = 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 plt

r = 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 plt

x = [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.coloradmin.cn/o/1541185.html

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

相关文章

大学教材《C语言程序设计》(浙大版)课后习题解析 | 第一、二章

概述 本文主要提供《C语言程序设计》(浙大版) 第一、二章课后习题解析&#xff0c;以方便同学们完成题目后作为参考对照。后续将写出三、四章节课后习题解析&#xff0c;如想了解更多&#xff0c;请持续关注该专栏。 专栏直达链接&#xff1a;《C语言程序设计》(浙大版)_孟俊宇…

《深入浅出LLM 》(二):大模型基石知识

&#x1f389;AI学习星球推荐&#xff1a; GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学习资料&#xff0c;配有全面而有深度的专栏内容&#xff0c;包括不限于 前沿论文解读、…

抖音IP属地怎么更改

抖音是一个非常受欢迎的短视频平台&#xff0c;吸引了无数用户在上面分享自己的生活和才艺。然而&#xff0c;随着快手的火爆&#xff0c;一些用户开始担心自己的IP地址会被他人获取&#xff0c;引起个人隐私风险。那么&#xff0c;抖音用户又该如何更改到别的地方呢&#xff1…

ArcGIS添加天地图底图服务

目录 一、注册天地图官网、申请Key 二、ArcGis配置和使用 1、配置 2、使用 三、其他方法 一、注册天地图官网、申请Key 进入官网&#xff0c;并注册账号。 地址&#xff1a;国家地理信息公共服务平台 天地图 (tianditu.gov.cn) 点击地图API&#xff0c;申请Key。 注意&am…

python闭包详解(实例)

“闭包”这个词语相信大多数学过编程的同学并不陌生&#xff0c;但是有时候理解起来还是有一定难度。 先看定义&#xff1a;闭包是由函数和与其相关的引用环境组合而成的实体。比如参考资源中就有这样的的定义&#xff1a;在实现深约束时&#xff0c;需要创建一个能显式表示引…

线段树(算法思想+模板+例题)

基础思想 : 介绍 线段树可以用来维护区间信息(区间和 &#xff0c; 区间最值 &#xff0c; 区间GCD等) &#xff0c;可以在log n的时间内执行区间修改 和 区间查询 ; 1 . 叶子结点的特点是左右结点相等 &#xff0c; 存储元素本身; 2 . 非叶子结点存储的是区间内的统计值 &…

力扣|两数相加|链表

给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都不会以 0 …

用户多部门切换部门,MySQL根据多个部门id递归获取所有上级(祖级)、获取部门的全路径(全结构名称)

背景 之前做过的项目&#xff0c;都是一个用户就一个部门的&#xff0c;现在碰到个一个用户在多个部门的需求&#xff0c;而且需要可以切换不同部门查看不同数据。 就比如说一个大公司下面有多个子公司&#xff0c;每个子公司有好多部门、子部门等等&#xff0c;然后有部分用…

JDK下载配置

一、JDK的作用 Java开发环境&#xff1a;JDK提供了完整的Java开发环境&#xff0c;包含编译器&#xff08;javac&#xff09;、解释器&#xff08;java&#xff09;、打包工具&#xff08;jar&#xff09;、文档生成工具&#xff08;javadoc&#xff09;等一系列工具&#xff0…

人工智能(Educoder)-- 搜索技术 -- 盲目式搜索

第1关&#xff1a;盲目搜索之宽度优先搜索算法 任务描述 本关任务&#xff1a;给定迷宫地图以及在迷宫中的起始位置&#xff0c;利用宽度优先搜索算法求解走出迷宫的最短路径长度&#xff0c;走出迷宫意味着达到迷宫地图的边界&#xff08;所有位置下标0开始&#xff09;。 …

基于python+vue超市在线销售系统的设计与实现flask-django-php-nodejs

根据此问题&#xff0c;研发一套超市在线销售系统&#xff0c;既能够大大提高信息的检索、变更与维护的工作效率&#xff0c;也能够方便信息系统的管理运用&#xff0c;从而减少信息管理成本&#xff0c;提高效率。 该超市在线销售系统采用B/S架构、并采用python语言以及django…

鸿蒙一次开发,多端部署(十二)资源使用

在页面开发过程中&#xff0c;经常需要用到颜色、字体、间距、图片等资源&#xff0c;在不同的设备或配置中&#xff0c;这些资源的值可能不同。有两种方式处理&#xff1a; 应用资源&#xff1a;借助资源文件能力&#xff0c;开发者在应用中自定义资源&#xff0c;自行管理这些…

I/O多路复用:select/poll/epoll

最基本的 Socket 模型 要想客户端和服务器能在网络中通信&#xff0c;那必须得使用 Socket 编程&#xff0c;它是进程间通信里比较特别的方式&#xff0c;特别之处在于它是可以跨主机间通信。 Socket 的中文名叫作插口&#xff0c;咋一看还挺迷惑的。事实上&#xff0c;双方要…

两直线交点算法 C

求两直线交点算法 有中间交点 则CD在AB异侧 A B A C A B A D \nobreak AB \times AC \newline AB \times AD ABACABAD 异号 叉乘后相乘小于零 等于零的几种情况 A B C与AB共线 D与AB共线 求交点&#xff0c;可由面积比例用叉乘计算 C E C D S A B C S A B C D . \frac…

解决前端跨域问题

前端跨域问题 该问题是由于前端的服务路径或端口和后台的不一致所导致的 Springboot跨域设置 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; …

「媒体邀约」选择媒体公关公司邀约媒体有哪些优势-51媒体网

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 选择媒体公关公司邀约媒体具有以下优势&#xff1a; 丰富的媒体资源&#xff1a;媒体公关公司通常与各大主流媒体、行业媒体、网络媒体等有着长期合作关系&#xff0c;拥有丰富的媒体资源…

ChatGPT论文指南|揭秘8大ChatGPT提示词研究技巧提升写作效率【建议收藏】

点击下方▼▼▼▼链接直达AIPaperPass &#xff01; AIPaperPass - AI论文写作指导平台 公众号原文▼▼▼▼&#xff1a; ChatGPT论文指南|揭秘8大ChatGPT提示词研究技巧提升写作效率【建议收藏】 目录 1.写作方法 2.方法设计 3.研究结果 4.讨论写作 5.总结结论 6.书…

Install Docker

Docker Desktop 直接安装 Docker Desktop Docker Desktop includes the Docker daemon (dockerd), the Docker client (docker), Docker Compose, Docker Content Trust, Kubernetes, and Credential Helper. Linux下安装Docker CE 参考官方文档 参见阿里云的文档 # step 1…

ClickHouse--11--物化视图

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.物化视图什么是物化视图? 1.1 普通视图1.2 物化视图1.3 优缺点1.4 基本语法1.5 在生产环境中创建物化视图1.6 AggregatingMergeTree 表引擎3.1 概念3.2 Aggregat…

WorkPlus一站式IM即时通讯解决方案,提升企业沟通效率与协作能力

在企业内部沟通与协作中&#xff0c;高效的即时通讯是实现团队协作与工作效率的重要保障。而WorkPlus以其稳定可靠的性能和全面的功能&#xff0c;为企业提供一站式的IM即时通讯解决方案&#xff0c;助力企业提升沟通效率与协作能力。IM即时通讯在企业中的重要性不言而喻。作为…