Matplotlib入门[07]——修改默认设置

news2024/11/18 3:23:44

Matplotlib入门[07]——修改默认设置

参考:

  • https://ailearning.apachecn.org/
  • Matplotlib官网

使用Jupyter进行练习

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt

生成三角函数:

x = np.linspace(-np.pi, np.pi)
c, s = np.cos(x), np.sin(x)

默认绘图

p = plt.plot(x,c)
p = plt.plot(x,s)

# 在脚本中需要加上这句才会显示图像
plt.show()

在这里插入图片描述

可以修改默认的属性来得到更漂亮的结果。

图像以 Figure # 为窗口标题,并且数字从 1 开始,figure() 函数的主要参数如下:

参数默认值描述
num1图号
figsizefigure.figsize图大小(宽,高)(单位英寸)
dpifigure.dpi分辨率(每英寸所打印的点数)
facecolorfigure.facecolor背景颜色
edgecolorfigure.edgecolor边界颜色
frameonTrue是否显示图框架
# 设置图像大小
f = plt.figure(figsize=(10,6), dpi=80)

# 画图
p = plt.plot(x,c)
p = plt.plot(x,s)

# 在脚本中需要加上这句才会显示图像
plt.show()

在这里插入图片描述

设置线条颜色,粗细,类型

使用 color, linewidth, linestyle 参数,指定曲线的颜色,粗细,类型:

# 设置图像大小
f = plt.figure(figsize=(10,6), dpi=80)

# 画图,指定颜色,线宽,类型
p = plt.plot(x, c, color="blue", linewidth=2.5, linestyle="-")
p = plt.plot(x, s, color="red",  linewidth=2.5, linestyle="-")

# 在脚本中需要加上这句才会显示图像
plt.show()

在这里插入图片描述

也可以使用格式字符来修改参数:

# 设置图像大小
f = plt.figure(figsize=(10,6), dpi=80)

# 画图,指定颜色,线宽,类型
p = plt.plot(x, c, 'b-', 
         x, s, 'r-', linewidth=2.5)

# 在脚本中需要加上这句才会显示图像
plt.show()

在这里插入图片描述

设置横轴纵轴的显示区域

可以使用 plt 中的 xlimylim 来设置坐标轴的显示区域:

# 设置图像大小
p = plt.figure(figsize=(10,6), dpi=80)

# 画图,指定颜色,线宽,类型
p = plt.plot(x, c, 'b-', 
         x, s, 'r-', linewidth=2.5)

########################################################################

# 设置显示范围
p = plt.xlim(x.min() * 1.1, x.max() * 1.1)
p = plt.ylim(c.min() * 1.1, c.max() * 1.1)

########################################################################

# 在脚本中需要加上这句才会显示图像
plt.show()

在这里插入图片描述

设置刻度

x 轴的刻度设为与 \piπ 有关的点,可以使用 plt 中的 xticksyticks 函数,将需要的刻度传入。

# 设置图像大小
f = plt.figure(figsize=(10,6), dpi=80)

# 画图,指定颜色,线宽,类型
p = plt.plot(x, c, 'b-', 
         x, s, 'r-', linewidth=2.5)

# 设置显示范围
plt.xlim(x.min() * 1.1, x.max() * 1.1)
plt.ylim(c.min() * 1.1, c.max() * 1.1)

###########################################################################

# 设置刻度
p = plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi])
p = plt.yticks([-1, 0, 1])

###########################################################################

# 在脚本中需要加上这句才会显示图像
plt.show()

在这里插入图片描述

刻度显示数学公式

想让刻度的位置显示的是含有 π \pi π 的标识而不是浮点数,可以在 xticks 中传入第二组参数,这组参数代表对应刻度的显示标识。这里,使用 latex 的语法来显示特殊符号(使用 $$ 包围的部分)。

# 设置图像大小
f = plt.figure(figsize=(10,6), dpi=80)

# 画图,指定颜色,线宽,类型
p = plt.plot(x, c, 'b-', 
         x, s, 'r-', linewidth=2.5)

# 设置显示范围
plt.xlim(x.min() * 1.1, x.max() * 1.1)
plt.ylim(c.min() * 1.1, c.max() * 1.1)

# 设置刻度及其标识
p = plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], 
               ['$-\pi$', '$-\pi/2$', '$0$', '$\pi/2$', '$\pi$'], fontsize ='xx-large')
p = plt.yticks([-1, 0, 1], 
               ['$-1$', '$0$', '$+1$'], fontsize ='xx-large')

# 在脚本中需要加上这句才会显示图像
plt.show()

在这里插入图片描述

移动坐标轴的位置

现在坐标轴的位置是在边界上,而且有上下左右四条,将下面和左边的两条移动到中间,并将右边和上面的两条去掉:

# 设置图像大小
f = plt.figure(figsize=(10,6), dpi=80)

# 画图,指定颜色,线宽,类型
plt.plot(x, c, 'b-', 
         x, s, 'r-', linewidth=2.5)

# 设置显示范围
plt.xlim(x.min() * 1.1, x.max() * 1.1)
plt.ylim(c.min() * 1.1, c.max() * 1.1)

# 得到轴的句柄
ax = plt.gca()
# ax.spines参数表示四个坐标轴线
# 将右边和上边的颜色设为透明
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

###################################################################################

# 将 x 轴的刻度设置在下面的坐标轴上
ax.xaxis.set_ticks_position('bottom')
# 设置位置
ax.spines['bottom'].set_position(('data',0))

# 将 y 轴的刻度设置在左边的坐标轴上
ax.yaxis.set_ticks_position('left')
# 设置位置
ax.spines['left'].set_position(('data',0))

###################################################################################

# 加入图例,frameon表示去掉图例周围的边框
l = plt.legend(['cosine', 'sine'], loc='upper left', frameon=False)

###################################################################################

# 设置刻度及其标识
p = plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], 
           ['$-\pi$', '$-\pi/2$', '$0$', '$\pi/2$', '$\pi$'], fontsize ='xx-large')
p = plt.yticks([-1, 0, 1], 
           ['$-1$', '$0$', '$+1$'], fontsize ='xx-large')

# 在脚本中需要加上这句才会显示图像
plt.show()

在这里插入图片描述

注释特殊点

可以使用 anotate 函数来注释特殊的点,假设我们要显示的点是 2 π / 3 2\pi/3 2π/3

# 设置图像大小
plt.figure(figsize=(10,6), dpi=80)

# 画图,指定颜色,线宽,类型
plt.plot(x, c, 'b-', 
         x, s, 'r-', linewidth=2.5)

# 设置显示范围
plt.xlim(x.min() * 1.1, x.max() * 1.1)
plt.ylim(c.min() * 1.1, c.max() * 1.1)

# 得到画图的句柄
ax = plt.gca()

# ax.spines参数表示四个坐标轴线
# 将右边和上边的颜色设为透明
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

# 将 x 轴的刻度设置在下面的坐标轴上
ax.xaxis.set_ticks_position('bottom')
# 设置位置
ax.spines['bottom'].set_position(('data',0))

# 将 y 轴的刻度设置在左边的坐标轴上
ax.yaxis.set_ticks_position('left')
# 设置位置
ax.spines['left'].set_position(('data',0))

# 设置刻度及其标识
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], 
           ['$-\pi$', '$-\pi/2$', '$0$', '$\pi/2$', '$\pi$'], fontsize ='xx-large')
plt.yticks([-1, 0, 1], 
           ['$-1$', '$0$', '$+1$'], fontsize ='xx-large')

# 加入图例,frameon表示图例周围是否需要边框
l = plt.legend(['cosine', 'sine'], loc='upper left', frameon=False)

####################################################################################

# 数据点
t = 2 * np.pi / 3

# 蓝色虚线
plt.plot([t,t],[0,np.cos(t)], color ='blue', linewidth=2.5, linestyle="--")

# 该点处的 cos 值
plt.scatter([t,],[np.cos(t),], 50, color ='blue')

# 在对应的点显示文本
plt.annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$', # 文本
             xy=(t, np.sin(t)), # 数据点坐标位置
             xycoords='data',   # 坐标相对于数据
             xytext=(+10, +30), # 文本位置坐标
             textcoords='offset points', # 坐标相对于数据点的坐标
             fontsize=16,       # 文本大小
             arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2")) # 箭头

# 红色虚线
p = plt.plot([t,t],[0,np.sin(t)], color ='red', linewidth=2.5, linestyle="--")

# 该点处的 sin 值
p = plt.scatter([t,],[np.sin(t),], 50, color ='red')

# 显示文本
p = plt.annotate(r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$',
             xy=(t, np.cos(t)), xycoords='data',
             xytext=(-90, -50), textcoords='offset points', fontsize=16,
             arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))

#####################################################################################

# 在脚本中需要加上这句才会显示图像
plt.show()

在这里插入图片描述

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

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

相关文章

P3 PyTorch 维度变换

前言 参考 课时21 维度变换-2_哔哩哔哩_bilibili 目录: view unsqueeze squeeze Expand repeat 转置 contiguous Permute 例子一 view 作用: 重新调整Tensor的形状,通过shape,或size属性可以看出来 …

Maven从入门到精通

文章目录1.Maven简介1.1 传统项目管理状态分析1.2 什么是maven1.3 Maven的作用2.maven的安装与配置(1)maven的下载与安装(2)Maven目录结构(3)配置settings.xml(4)maven整合idea&…

chapter8——消抖技术

目录1.简介2.开关行为3.开关种类4.消抖5.消抖指南1.简介 在电子设备内两个金属触点随着触点的断开闭合便产生了多个信号,这就是抖动。“消抖”是用以确保在每一次断开或闭合触点时只有一个信号起作用的硬件设备或软件。机械开关和继电器触点通常由弹性金属制造&…

【RobotFramework】FOR循环应用

自动化测试过程中,如果我们想多次运行某段语句,且每次使用的值都不一样,那么我们就要使用到循环。 在Robot FrameWork中,循环使用到的关键字是FOR,常用见应用如下。 应用一: FOR ${变量} IN 参数1 参数2…

知识图谱-KGE-语义匹配-双线性模型-2019:RotatE

【paper】 RotatE: Knowledge Graph Embedding by Relational Rotation in Complex Space【简介】 本文是北大和加拿大的研究团队发表在 ICLR 2019 上的文章,提出了 RotatE(Rotation Embedding),主要思想是将实体表示为复向量&…

Drupal9自定义module添加多个定时任务

drupal的自定义cron常见的就是hook_cron,具体做法参见: Drupal踩坑:在自定义module中添加cron job 这种方法只能一个module添加一个cron。如果想添加多个自定义的cron怎么办?使用hook_cronapi。 有两个模块提供 hook_cronapi&…

DeepLab V3学习笔记

DeepLab V3遇到的问题和解决方法相关工作DeepLab V3中的两种模型结构cascaded modelASPP model相对于DeepLab V2的优化Multi-grid MethodASPP的改进消融实验cascaded model消融实验ASPP model消融实验和其他网络的对比实验总结网络模型图遇到的问题和解决方法 对于DeepLab系列…

nginx使用配置(亲测自用)

文章目录一、作用二、案例1.动静分离将静态资源放入Nginx目录下2.负载均衡常见的几种负载均衡方式1) 轮询(默认)2)weight3)ip_hash4)fair(第三方)5)url_hash(第三方&…

Flutter - Button样式及参数

Material 组件库中提供了多种按钮组件如ElevatedButton、TextButton、OutlineButton等,它们都是集成于ButtonStyleButton,所以他们大多数属性都和ButtonStyleButton一样。在介绍各个按钮时我们先介绍其默认外观,而按钮的外观大都可以通过属性…

基于萤火虫算法优化的lssvm回归预测-附代码

基于萤火虫算法优化的lssvm回归预测 - 附代码 文章目录基于萤火虫算法优化的lssvm回归预测 - 附代码1.数据集2.lssvm模型3.基于萤火虫算法优化的LSSVM4.测试结果5.Matlab代码摘要:为了提高最小二乘支持向量机(lssvm)的回归预测准确率&#xf…

通信原理 | CRC循环冗余校验码

CRC循环冗余码 CRC校验的手算演示异或运算和多项式步骤一、展开多项式得到CRC除数步骤二、原数据串末端加0(多项式最高是几次就加几个0)步骤三、从左往右,按位异或(所得结果如果不够长,前面的0别忘了添加)CRC(Cyclic Redundancy Check )循环冗余校验码 CRC校验的手算演…

MQ高级(二)死信交换机

一、初识死信交换机(P159) 当一个队列中的消息满足下列情况之一时,可以成为死信(dead letter): (1)消费者使用basic.reject或 basic.nack声明消费失败,并且消息的requeue…

使用opencv截取旋转框目标

使用opencv截取旋转框目标1、第一种方法2、第二种方法3、两种方法的简单对比4、opencv 最小面积矩形返回角度的理解4.1、version4.2之前4.1、version4.2之后本文列举了两种方法,使用的数据如图,用的是改版rolabelimg标注的标注文件有四个点的坐标: 1、…

mybatis详述

文章目录一、引言1.1 什么是框架?1.2 什么是ORM框架?1.3使用JDBC完成ORM操作的缺点?二、MyBatis框架2.1概念2.2 MyBatis开发步骤2.3 如何编写mybatis映射文件(规范)三、mybatis-config.xml 配置补充四、mybatis接口与映射文件指令间 传递参数4.1 传递…

安卓APP源码和设计报告——北京旅游系统

目 录 一、概述11 1.1 课题描述11 1.2 需求分析22 1.3 开发环境33 二、系统分析与概要设计55 2.1 系统功能分析55 2.2 系统模块结构图66 2.3 数据库表的设计66 三、北京旅游系统的登录功能模块的详细设计88 3.1 登录模块的功能描述88 3.2 登录模块的界面布局的设计9…

185: vue+openlayers 引用hover插件,展示各种鼠标cursor样式

第185个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中使用hover效果,这里是引用了一个hover插件。鼠标对应到相应的feature中时候,获取其类型,并且设定不同的鼠标样式。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果Ope…

一篇知晓-内存竟被”无意“破坏,真相究竟如何?

内存是C/C程序员的好帮手,我们通常说C/C程序性能更高其原因之一就在于可以自己来管理内存,然而计算机科学中没有任何一项技术可以包治百病,内存问题也给C/C程序员带来无尽的烦恼。 野指针、数组越界、错误的内存分配或者释放、多线程读写导致…

kotlin之hello world

如果你想一个人写全栈的话,Kotlin Multiplatform (以下简称MPP)是目前这个星球上最好的选择,没有之一。 Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrain…

CTFSHOW web入门 java反序列化篇(更新中)

在做这部分题前,推荐大家先去学习下java反序列化,尤其是CC链 可以看下两个系列视频,收获颇多 https://space.bilibili.com/2142877265/channel/collectiondetail?sid29805&ctype0 https://www.bilibili.com/video/BV16h411z7o9/?spm_i…

手写Spring2(实现 Bean 的定义、注册、获取)

文章目录前言本章目标一、实现1、项目结构2、BeanFactory-bean工厂3、BeanDefinition -bean定义4、单例注册接口定义和实现-SingletonBeanRegistry 、DefaultSingletonBeanRegistry5、AbstractBeanFactory-抽象bean工厂类(定义模板方法)6、AbstractAutowireCapableBeanFactory-…