探索数据可视化:Matplotlib 基础指南

news2024/11/15 21:31:31

图形绘制

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

x = np.linspace(0,2 * np.pi,100)

# 说明:正弦波。x:NumPy数组
# 所有的数据,进行正弦计算
y = np.sin(x)


plt.plot(x,y)

# 指定x轴范围
plt.xlim(-1,10)
# 指定y轴范围
plt.ylim(-1.5,1.5)

# color = 'green' 指定网格颜色;
# alpha = 0.5 指定网格线的透明度
# linestyle = '--' 指定网格线的线型
# linewidth = 1 指定网格线的线宽
plt.grid(color = 'green',alpha = 0.5,linestyle = '--',linewidth = 1)

在这里插入图片描述

设置字体、坐标轴刻度、标签、标题

# 查看字体
from matplotlib import font_manager
fm = font_manager.FontManager()
[font.name for font in fm.ttflist][:10] # 列表生成式,只拿前10个字体
"""
['cmb10',
 'cmex10',
 'DejaVu Sans Mono',
 'DejaVu Serif',
 'STIXSizeOneSym',
 'DejaVu Serif',
 'STIXSizeThreeSym',
 'DejaVu Serif',
 'cmtt10',
 'STIXGeneral']
"""

# figsize=(9,6) 指定图形窗口的大小;图形窗口宽度为 9 英寸,高度为 6 英寸。
plt.figure(figsize=(9,6))
plt.plot(x,y)

# 设置字体
# STKaiti 常用于显示中文文本
plt.rcParams['font.family'] =  'STKaiti'
# 设置字体大小
plt.rcParams['font.size'] = 28
# 设置数字负号
plt.rcParams['axes.unicode_minus'] = False

# 设置标题
plt.title('正弦波',fontsize = 18, color = 'red',pad = 20)

# 设置x与y轴标签
plt.xlabel('X')
plt.ylabel('f(x) = sin(x)',rotation = 0,horizontalalignment = 'right')

# yticks 用于设置 y 轴的刻度位置和标签
#[-1, 0, 1] 指定 y 轴三个刻度位置分别为 -1、0 和 1。
a = plt.yticks([-1,0,1])

# 设置x轴刻度
# [0, np.pi/2, np.pi, 1.5*np.pi, 2*np.pi] 指定x 轴上显示的刻度位置
# [0, r'$\frac{\pi}{2}$', r'$\pi$', r'$\frac{3\pi}{2}$', r'$2\pi'] 是与刻度位置对应的标签列表。
# 这里使用了 LaTeX 格式来显示数学符号
_ = plt.xticks([0,np.pi/2,np.pi,1.5*np.pi,2*np.pi],
               [0,r'$\frac{\pi}{2}$',r'$\pi$',r'$\frac{3\pi}{2}$',r'$2\pi$'],color = 'red')# 字符串前面+r表示转义

在这里插入图片描述

图例

# 1、图形绘制

x = np.linspace(0,2*np.pi) # x轴

y = np.sin(x) # y轴 正弦

# 绘制线形图
plt.figure(figsize=(9,6)) # 调整尺寸
plt.plot(x,y)
plt.plot(x,np.cos(x)) # 余弦波
plt.plot(x,np.sin(x) + np.cos(x))


# 2、图例
plt.legend(['Sin','Cos','Sin + Cos'],fontsize = 18,
           loc = 'center',
           ncol = 3,
           bbox_to_anchor = (0,1,1,0.2)) # x,y,widht,height
<matplotlib.legend.Legend at 0x2761cc3e208>

在这里插入图片描述

脊柱移动(坐标轴)

“脊柱”(Spines)是图形的四个边框线,它们分别位于图形的顶部、底部、左侧和右侧。你可以通过调整脊柱的位置来实现脊柱移动

x = np.linspace(-np.pi,np.pi,50)
# 设置数字负号
plt.rcParams['axes.unicode_minus'] = False
# facecolor ='lightblue' 设置图形对象的背景颜色为浅蓝色
plt.figure(figsize=(9,6),facecolor='lightblue')

# plot绘制了两个图形,x-y成对出现
plt.plot(x,np.sin(x),x,np.cos(x),color = 'cyan')

# 获取当前子视图
ax = plt.gca() # 获取当前视图

# 将图形对象 ax 的背景颜色设置为一个随机生成的颜色
ax.set_facecolor(np.random.rand(3))

# 右边和上面脊柱消失
# ax.spines['right'].set_color('white') # 右边脊柱设置为白色
ax.spines['right'].set_alpha(0)
ax.spines['top'].set_alpha(0)

# 设置下面左边脊柱位置,data表示数据,axes表示相对位置0~1
ax.spines['bottom'].set_position(('data',0)) # 底部脊柱定位在 y 轴的 0 点上(竖直中间)
ax.spines['left'].set_position(('data',0)) # 水平中间

# 设置刻度及刻度标签
plt.yticks([-1,0,1],labels=['-1','0','1'],fontsize = 18)
_ = plt.xticks([-np.pi,-np.pi/2,np.pi/2,np.pi],
           labels=[r'$-\pi$',r'$-\frac{\pi}{2}$',r'$\frac{\pi}{2}$',r'$\pi$'],
           fontsize = 18)

# 显示网格线
plt.grid()

# 将图形以 300 DPI 的分辨率保存为一个 PDF 文件,文件名为 2.pdf,保存在当前工作目录中
plt.savefig('./2.pdf',dpi = 300)

在这里插入图片描述

风格样式

颜色、线形、点形、线宽、透明度
x = np.linspace(0,2*np.pi,20) # 等差数列,20个
y1 = np.sin(x)
y2 = np.cos(x)

# color = indigo:颜色为靛蓝色,线型,点型
# ls='-.': 设置线条的线型为点划线
# marker='p': 设置数据点的标记为五边形(pentagon)
plt.plot(x, y1, color = 'indigo', ls = '-.', marker = 'p')

# rgb颜色表示 256 0 ~ 255 
# 0 、1、2……A、B、C、D、E、F
# marker='o'数据点标记为圆形
plt.plot(x, y2, color = '#FF00EE', ls = '--', marker = 'o')

# 0 ~ 1之间
plt.plot(x, y1 + y2, color = (0.2,0.7,0.2), ls = ':', marker = '*')

# 线宽设置为5
# 透明度为0.3
plt.plot(x,y1 + 2*y2,linewidth = 5,alpha = 0.3,color = 'orange') 

# 参数连用:参数含义:b --- blue; o marker圆圈; --虚线
plt.plot(x, 2*y1 - y2, 'bo--') 
[<matplotlib.lines.Line2D at 0x2761c671308>]

在这里插入图片描述

def f(x):
    return np.exp(-x) * np.cos(2*np.pi*x)

x = np.linspace(0,5,50)
plt.figure(figsize=(9,6))


# plot 参数
plt.plot(x,f(x),color = 'purple',
         ls = '--', # 折线样式
         lw = 2, # 线宽
         alpha = 0.6, # 折线的透明度
         marker = 'o', #  数据点为圆形
         markerfacecolor = 'red',# 点颜色
         markersize = 10,# 点大小
         markeredgecolor = 'green',#点边缘颜色
         markeredgewidth = 3)#点边缘宽度


plt.xticks(size = 18) # 设置刻度标签的字体大小为 18 磅
_ = plt.yticks(size = 18)

在这里插入图片描述

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

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

相关文章

99%的商业模式都是可借鉴,解读法国葡萄酒庄长盛不衰的经营模式?

99%的商业模式都是可借鉴&#xff0c;解读法国葡萄酒庄长盛不衰的经营模式&#xff1f; 文丨微三云营销总监胡佳东&#xff0c;点击上方“关注”&#xff0c;为你分享市场商业模式电商干货。 - 引言&#xff1a;很多朋友说到葡萄酒&#xff0c;有的第一印象就是“法国葡萄酒”…

全面对比Amazon DocumentDB 与 MongoDB

在云中部署 MongoDB 似乎有多种选择。例如&#xff0c;Amazon DocumentDB自称是完全支持 MongoDB API 的 AWS 原生数据库。虽然它支持一些 MongoDB 功能&#xff0c;但需要注意的是 DocumentDB 并不完全兼容 MongoDB。要在 AWS 上访问功能齐全的“MongoDB 即服务”&#xff0c;…

CCProxy代理服务器地址的设置步骤

目录 前言 一、下载和安装CCProxy 二、启动CCProxy并设置代理服务器地址 三、验证代理服务器设置是否生效 四、使用CCProxy进行代理设置的代码示例 总结 前言 CCProxy是一款常用的代理服务器软件&#xff0c;可以帮助用户实现网络共享和上网代理。本文将详细介绍CCProxy…

用Python实现一个简单的——人脸相似度对比

近几年来&#xff0c;兴起了一股人工智能热潮&#xff0c;让人们见到了AI的能力和强大&#xff0c;比如图像识别&#xff0c;语音识别&#xff0c;机器翻译&#xff0c;无人驾驶等等。总体来说&#xff0c;AI的门槛还是比较高&#xff0c;不仅要学会使用框架实现&#xff0c;更…

Windows上websocket客户端连接定时存储消息到文件并加载文件定时发送服务端工具实现

场景 在业务开发中&#xff0c;需要对接三方websocket协议数据或者连接并存储线上websocket协议数据&#xff0c;需要使用websocket客户端 连接线上的websocket服务端获取并存储数据&#xff0c;然后将数据存储成文件格式可移植&#xff0c;并将数据复制 到本地&#xff0c;…

15. C++泛型与符号重载

【泛型编程】 若多组类型不同的数据需要使用相同的代码处理&#xff0c;在C语言中需要编写多组代码分别处理&#xff0c;这样做显然太过繁琐&#xff0c;C增加了虚拟类型&#xff0c;使用虚拟类型可以实现一组代码处理多种类型的数据。 虚拟类型是暂时不确定的数据类型&#…

免费的文案二次创作软件,打造高质量原创文案

在当今数字化时代&#xff0c;内容创作已经成为企业和个人推广自身品牌、产品和服务的重要手段。然而&#xff0c;对于许多人来说&#xff0c;撰写高质量的原创文案并非易事。幸运的是&#xff0c;随着技术的发展&#xff0c;出现了许多文案二次创作免费软件&#xff0c;为那些…

怎么做不限扫码次数的文件活码?文件可长期扫描展现下载

如何制作不限扫码次数的文件二维码呢&#xff1f;将文件转二维码后分享给其他人&#xff0c;是现在非常方便的一种文件传输方式。很多小伙伴在制作文件二维码的时候&#xff0c;比较担心的一个问题&#xff0c;就是二维码可以扫码的次数&#xff0c;担心达不到自己预期的效果&a…

保姆级讲解 Stable Diffusion

目录 本文讲解思路介绍 一、引入 二、Diffusion Model 三、原文的摘要和简介 四、Stable Diffusion 4.1、组成模块 4.2、感知压缩 4.3、条件控制 五、图解 Stable Diffusion 5.1、潜在空间的扩散 5.2、条件控制 5.3、采样 5.4、Diffusion Model 与 Stable Diffusion …

win11+wsl+ubuntu20.04+ros+x11+mobaxterm实现win11中ROS使用(含可视化)

前言 为实现在win11中使用ros… 一、win11中wsl(ubuntu20.04)安装 参考&#xff1a;Windows 11 安装 WSL2 主要步骤&#xff1a;开启虚拟化–>安装ubuntu20.04 安装后可能还是WSL1&#xff0c;可参考WSL1升级为WSL2进行升级。 二、使用鱼香ROS换源并更新 wget http://fishro…

【刷题记录】详谈设计循环队列

下题目为个人的刷题记录&#xff0c;在本节博客中我将详细谈论设计循环队列的思路&#xff0c;并给出代码&#xff0c;有需要借鉴即可。 题目&#xff1a;LINK 循环队列是线性表吗&#xff1f;或者说循环队列是线性结构吗&#xff1f; 对于这个问题&#xff0c;我们来看一下线…

Awesome-Backbones-main——alexnet模型分析

AlexNet作为骨干网络相对较老&#xff0c;可能在复杂数据集上的表现不如一些最新的深度网络结构&#xff0c;如ResNet、EfficientNet等&#xff0c;学习率调整策略中采用了阶梯式学习率更新器&#xff0c;可能并不总是适合所有数据集和模型&#xff0c;需要根据具体情况调整学习…

有名信号量、网络协议模型、UDP编程发送端

我要成为嵌入式高手之3月5日Linux高编第十五天&#xff01;&#xff01; ______________________________________________________ 学习笔记 有名信号量 1、创建semget #include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> int semget(…

JVM 的垃圾回收机制以及垃圾回收算法的详解

目录 1、JVM 的垃圾回收机制 2、识别垃圾 2.1、引用计数 2.2、可达性分析 3、垃圾回收算法 3.1、标记-清除 3.2、复制算法 3.3、标记-整理 4、分代回收 1、JVM 的垃圾回收机制 对于&#xfeff;程序计数器&#xfeff;、&#xfeff;虚拟机栈&#xfeff;、&#xfe…

C if...else 语句

一个 if 语句 后可跟一个可选的 else 语句&#xff0c;else 语句在布尔表达式为 false 时执行。 语法 C 语言中 if…else 语句的语法&#xff1a; if(boolean_expression) {/* 如果布尔表达式为真将执行的语句 */ } else {/* 如果布尔表达式为假将执行的语句 */ }如果布尔表…

VMware Workstation17虚拟机安装

文章目录 一.下载安装软件二.安装过程选项三.序列化四.检查是否安装成功 一.下载安装软件 方式一&#xff1a;官网下载 方式二: 网盘下载(从官网里面下载的正版) 二.安装过程选项 双击下载的安装包&#xff0c;按以下图片选项进行安装 如果没有以下图片的"升级"选…

红队专题-开源漏扫-巡风xunfeng源码剖析与应用

开源漏扫-巡风xunfeng 介绍主体两部分:网络资产识别引擎,漏洞检测引擎。代码赏析插件编写JSON标示符Python脚本此外系统内嵌了辅助验证功能文件结构功能 模块添加IP三. 进行扫描在这里插入图片描述 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/de587a6f6f694…

SpringCloudGateway工作原理与链路图

SpringCloudGateway基本介绍 Spring Cloud Gateway 构建于Spring Boot 2.x、 Spring WebFlux和Project Reactor之上。因此,在使用 Spring Cloud Gateway 时,您可能不会应用许多熟悉的同步库(例如 Spring Data 和 Spring Security)和模式。 Spring Cloud Gateway 需要 Sprin…

超好用的一键生成原创文案方法

在现代社会中&#xff0c;原创文案不管是在营销中&#xff0c;还是在品牌推广中都起着至关重要的作用。然而&#xff0c;对于许多人来说&#xff0c;创作出令人印象深刻且引人注目的原创文案并不容易。但随着技术的发展&#xff0c;我们现在可以利用一键生成原创文案的方法来帮…

(3)应用与信息

文章目录 前言 3.1 FlightDeck FrSky发射器应用程序 3.2 MAVLink2数据包签名(安全) 3.3 MAVLink高延迟协议 3.4 无线地面站连接中继器 1 概述 2 组件 3 设置 3.5 遥测无线电区域条例 3.6 用于OpenTX的Yaapu遥测脚本 前言 FlightDeck FrSky Transmitter AppMAVLink2 …