【matplotlib】20.其他图

news2024/10/5 15:32:29

#【matplotlib】20.其他图

2023.1.20

polt为点线图,后面我们看看plt里面的其他图

20.1 Scatter 散点图

  • plt.scatter()
import matplotlib.pyplot as plt
import numpy as np

n =1024

x = np.random.normal(0,1,n)
y = np.random.normal(0,1,n)

# 颜色 这个应该是个tan值?范围是R
T = np.arctan2(y,x)

#Scatter
plt.scatter(x,y, s=75, c=T, alpha=0.5)

# 设置幕布,上一节有讲

plt.xlim(-1.5,1.5)
plt.xticks(()) # 没有刻度

plt.ylim(-1.5,1.5)
plt.yticks(())

plt.show()

在这里插入图片描述

  • 我认为某个区域 坐标是类似的 所以tan就是类似的 所以颜色是类似的,才会有这种过度颜色 并且颜色一块块的
  • c是color

20.2 Bar柱状图

  • plt.bar()
import matplotlib.pyplot as plt
import numpy as np

n = 12

# 数据准备
X = np.arange(n)
Y1 = np.random.uniform(0.5, 1.0, n)
Y2 = np.random.uniform(0.5, 1.0, n)

# 柱状图
plt.bar(X, +Y1, facecolor='#9999ff', edgecolor='white')
plt.bar(X, -Y2, facecolor='#ff9999', edgecolor='white')


# 柱状图上的文字
for x, y in zip(X, Y1):
    # ha: horizontal alignment
    # va: vertical alignment
    plt.text(x + 0.4, y + 0.05, '%.2f' % y, ha='center', va='bottom')


for x, y in zip(X, Y2):
    # ha: horizontal alignment
    # va: vertical alignment
    plt.text(x + 0.4, -y - 0.05, '%.2f' % y, ha='center', va='top')
    
# 窗口设置
plt.xlim(-.5, n)
plt.xticks(())
plt.ylim(-1.25, 1.25)
plt.yticks(())

plt.show()

在这里插入图片描述

  • np.random.uniform(0.5, 1.0, n):均匀分布:https://blog.csdn.net/lemonxiaoxiao/article/details/109244755

    • 数值上下限就是0.5-1;一共n个柱
  • edgecolor:图形边界

  • plt.text():图表上的数字,

20.3 Contours 等高线图

  • plt.contourf():画等高图
  • plt.contour():画等高线
  • plt.clabel添加高度数字
  1. 数据准备

高: f ( x , y ) = ( 1 − x / 2 + x 5 + y 3 ) ∗ e ( − x 2 − y 2 ) f(x,y) = (1 - x / 2 + x^5 + y^3) * e^{(-x^2 -y^2)} f(x,y)=(1x/2+x5+y3)e(x2y2)

import matplotlib.pyplot as plt
import numpy as np

def f(x,y):
    # the height function
    return (1 - x / 2 + x**5 + y**3) * np.exp(-x**2 -y**2)

# 数据准备
n = 256
x = np.linspace(-3, 3, n)
y = np.linspace(-3, 3, n)
X,Y = np.meshgrid(x, y)

这是个3D图,x,y和高度

  • 高度值使用一个 height function f(x,y)生成
  • x,y分布生成n=256个,用meshgrid在二维平面中将每一个x和每一个y分别对应起来,编织成栅格:

x,y和高度准备就绪

  1. 根据高度画图
  • plt.contourf()
# 根据高度画图
plt.contourf(X, Y, f(X, Y), 8, alpha=.75, cmap=plt.cm.hot)
<matplotlib.contour.QuadContourSet at 0x140d6f4e6d0>

在这里插入图片描述

  • 分成了八个颜色
  • f(X,Y) 的值对应到color map的暖色组中寻找对应颜色
  1. 绘制等高线
  • plt.contour函数划线
plt.contourf(X, Y, f(X, Y), 8, alpha=.75, cmap=plt.cm.hot)


# 绘制等高线
C = plt.contour(X, Y, f(X, Y), 8, colors='black', linewidth=.5)
C:\Users\YANG\AppData\Local\Temp\ipykernel_10368\4128262880.py:3: UserWarning: The following kwargs were not used by contour: 'linewidth'
  C = plt.contour(X, Y, f(X, Y), 8, colors='black', linewidth=.5)

在这里插入图片描述

  1. 添加高度数字
  • plt.clabel添加高度数字
plt.contourf(X, Y, f(X, Y), 8, alpha=.75, cmap=plt.cm.hot)


# 绘制等高线
C = plt.contour(X, Y, f(X, Y), 8, colors='black', linewidth=.5)

plt.clabel(C, inline=True, fontsize=10)
plt.xticks(())
plt.yticks(())
C:\Users\YANG\AppData\Local\Temp\ipykernel_10368\4170655076.py:5: UserWarning: The following kwargs were not used by contour: 'linewidth'
  C = plt.contour(X, Y, f(X, Y), 8, colors='black', linewidth=.5)





([], [])

在这里插入图片描述

  • inline控制是否将Label画在线里面

20.4 Image图片

Image图片 纯数字矩阵图

import matplotlib.pyplot as plt
import numpy as np

# 数据准备
a = np.array([0.313660827978, 0.365348418405, 0.423733120134,
              0.365348418405, 0.439599930621, 0.525083754405,
              0.423733120134, 0.525083754405, 0.651536351379]).reshape(3,3)

# 主图图像
plt.imshow(a, interpolation='nearest', cmap='bone')

#侧面色彩卡
plt.colorbar(shrink=.92)

plt.xticks(())
plt.yticks(())
plt.show()

在这里插入图片描述

  • 三行三列的格子,a代表每一个值,图像右边有一个注释,白色代表值最大的地方,颜色越深值越小。

  • cmap=plt.cmap.bone:cmap的参数,具有较高的黑-白成分的灰度色图,用于对灰度图添加电子的视图

  • origin='lower':代表的就是选择的原点的位置。

  • 添加一个shrink参数,使colorbar的长度变短为原来的92%:

参考:https://blog.csdn.net/a892573486/article/details/107542839

20.5 3D数据

  1. 进行 3D Plot 时除了导入 matplotlib ,还要额外添加一个模块,即 Axes3D 3D 坐标轴显示
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
  1. 打开一个窗口 看看形状
fig = plt.figure()
ax = Axes3D(fig)
C:\Users\YANG\AppData\Local\Temp\ipykernel_12732\2957860354.py:2: MatplotlibDeprecationWarning: Axes3D(fig) adding itself to the figure is deprecated since 3.4. Pass the keyword argument auto_add_to_figure=False and use fig.add_axes(ax) to suppress this warning. The default value of auto_add_to_figure will change to False in mpl3.5 and True values will no longer work in 3.6.  This is consistent with other Axes classes.
  ax = Axes3D(fig)

在这里插入图片描述

  1. 往3D图像里面添加数据
fig = plt.figure(figsize=(8,8))
ax = Axes3D(fig)
# X, Y value
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X, Y = np.meshgrid(X, Y)    # x-y 平面的网格,前面有介绍,也就是x,y对应起来

# 准备Z
R = np.sqrt(X ** 2 + Y ** 2)
# height value
Z = np.sin(R)

# 图像控制
ax.plot_surface(X, Y, Z, rstride=2, cstride=2, cmap=plt.get_cmap('rainbow'))

# 投影控制
ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.get_cmap('rainbow'))
C:\Users\YANG\AppData\Local\Temp\ipykernel_12732\1111420424.py:2: MatplotlibDeprecationWarning: Axes3D(fig) adding itself to the figure is deprecated since 3.4. Pass the keyword argument auto_add_to_figure=False and use fig.add_axes(ax) to suppress this warning. The default value of auto_add_to_figure will change to False in mpl3.5 and True values will no longer work in 3.6.  This is consistent with other Axes classes.
  ax = Axes3D(fig)





<matplotlib.contour.QuadContourSet at 0x24b912f4a60>

在这里插入图片描述

  • rstride 和 cstride 分别代表 row 和 column 的跨度,数值越大,那个一片颜色的面积越大

  • ax.plot_surface:图像控制

  • ax.contourf:投影控制

    • zdir='z':控制往哪里投,这事在XY平面上投
    • offset=-2:控制投影平面在投影面的高度,这里放到z=-2平面上了

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

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

相关文章

Java多线程02(生命周期,线程安全synchronized(),锁Lock )

目录1.线程的生命周期2.线程安全和同步代码块synchronized()3.Lock锁1.线程的生命周期 2.线程安全和同步代码块synchronized() synchronized(锁){ 操作共享数据的代码 }//保证线程安全 锁默认打开&#xff0c;有一个线程进去了&#xff0c;锁自动关闭。里面的代码全部执行完毕…

DFS(一)深度优先搜索(Depth First Search)一条道走到黑

目录 一、盒子与扑克牌 二、员工的重要性 三、图像渲染 一、盒子与扑克牌 假如有编号为1~3的3张扑克牌和编号为1~3的3个盒子&#xff0c;现在需要将3张牌分别放到3个盒子中去&#xff0c;且每个盒子只能放 一张牌&#xff0c;一共有多少种不同的放法。 当走到一个盒子面前的…

【Python-Django】医疗辅助平台-数据库设计-day2.1

操作需知&#xff1a; MySQL存储很长500的汉字选用字符类型_mysql字符串太长用什么存_信息时代弄潮儿的博客-CSDN博客 mysql中的Varchar(255)可以放多少个汉字_Ecloss的博客-CSDN博客_varchar255能存多少汉字 MySQL中的Text类型_SlowIsFastLemon的博客-CSDN博客_text类型 …

自制win10 PE usb启动盘教程

拿出祖传的U盘&#xff08;16GB&#xff09;安装老白菜根据教程制作U盘然后在U盘ios文件夹里面放入从系统之家下载的win10 ios文件包然后把U盘插入需要安装的电脑上面重启电脑按住F10打开BIOS设置界面USB启动设置为<启用>将UEFI和传统模式下的&#xff1a;U盘/USB硬盘USB…

【数据结构前言】

前言&#xff1a; 在之前我们已经有了C语言的基础&#xff0c;掌握了一些基本知识过后我们就可以进行其他方面的学习了&#xff0c;继我们学完C语言之后我们将会学习数据结构的相关知识&#xff0c;今天先让大家对其进行初步的认识&#xff01; 目录1. 什么是数据结构&#xff…

SpringCloud(13):分布式配置中心

1 为什么需要分布式配置中心&#xff1f; 在分布式系统中&#xff0c;由于服务数量巨多&#xff0c;为了方便服务配置文件统一管理&#xff0c;所以需要分布式配置中心组件。在Spring Cloud中&#xff0c;有分布式配置中心组件spring cloud confifig &#xff0c;它支持配置服…

增量式PID控制算法及仿真

当执行机构需要的是控制量的增量&#xff08;例如驱动步进电机&#xff09;时&#xff0c;应采用增量式PID控制。根据递推原理可得&#xff1a;增量式PID控制算法:根据增量式PID控制算法&#xff0c;设计了仿真程序&#xff0c;被控对象如下:PID控制参数:kp8&#xff0c;ki 0.1…

普中科技MicroPython基于esp32的基础教程-02

容器类型数据 序列 存放多值的连续内存空间&#xff0c;并且通过编号访问&#xff0c;其实就是类似于C语言的数组&#xff0c;相同数据类型、连续内存空间、使用下标访问 序列索引 支持正负操作&#xff0c;0到N&#xff0c;-N到-1 &#xff0c;但是C语言不支持负操作 个人觉…

温度、压力、物位仪表工作原理

温度、压力、物位仪表工作原理 一、温度仪表 1、温度仪表通常分一次仪表与二次仪表&#xff0c;一次仪表通常为&#xff1a;热电偶、热电阻、双金属温度计、就地温度显示仪等。二次仪表通常为温度记录仪、温度巡检仪、温度显示仪、温度调节仪、温度变送器等。 2、温度测量仪表…

Java基础进阶

Stream流 引例 需求&#xff1a;按照下面要求完成集合的创建和遍历 创建一个集合&#xff0c;存储多个字符串元素 1. 把所有以“曹”开头的元素存储到新集合中 2. 把曹开头&#xff0c;长度为3的元素存储到新集合中 List<String> list List.of("曹操", "…

【6s965-fall2022】剪枝✂pruningⅡ

剪枝比例 问题&#xff1a;我们应该如何找到每层的剪枝比率&#xff1f; 较浅的层&#xff0c;低层次的特征较深的层&#xff0c;抽象的特征 问题&#xff1a;哪些层的冗余度最高&#xff1f; 非统一剪枝&#xff08;每一层的稀疏度不一样&#xff09;比统一剪枝&#xff0…

python学习 --- 集合基础

目录 一、什么是集合&#xff1f; 二、集合的创建方式 1、直接使用{} 2、使用内置函数set() 三、集合的相关操作 1、集合元素的判断 2、集合元素的新增 3、集合元素的删除 四、集合间的关系 五、集合的数学操作 1、交集操作 2、并集操作 3、差集操作 4、对称差集…

基于微信小程序的校园商铺系统小程序

文末联系获取源码 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏览器…

2022大数据产业年度“国产化优秀代表厂商”榜单发布,亚信科技AntDB数据库位列其中

国产化/信创亚信科技 ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 亚信科技也做数据库&#xff1f;实际上亚信科技AntDB是我国最早的国产数据库产品之一&#xff0c;是在21世纪初国外品牌数据库无法满足我国暴涨的通信需求的情况下&#xff0c;为了帮助通信运用商更好…

普中科技手把手教你学ESP32--基于MicroPython-02

第四讲&#xff1a;LED灯实验 MicroPython函数使用 本来需要加入machine.的&#xff0c;但是我引入了form machine import Pin就可以直接省略了 machine是一个模块&#xff0c;Pin是machine中的一个功能 Micropython官网学习 点击DOCS文档 选择相应的芯片 查看对应的模块 …

LeetCode 1801. 积压订单中的订单总数(C++)

思路&#xff1a; 该题主要是对比销售、采购的价格来进行数组\队列的pop和push操作来实现&#xff1b;采用优先队列来实现排序&#xff0c;其中销售和采购对应小队列和大队列 对于 销售 操作&#xff1b;如果采购的积压订单中有出价格比自己的销售价格高&#xff0c;就出 对于 …

C++设计模式(7)——外观模式

外观模式 亦称&#xff1a; Facade 意图 外观模式是一种结构型设计模式&#xff0c; 能为程序库、 框架或其他复杂类提供一个简单的接口。 问题 假设你必须在代码中使用某个复杂的库或框架中的众多对象。 正常情况下&#xff0c; 你需要负责所有对象的初始化工作、 管理其…

29.Isaac教程--调整导航

调整导航 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 文章目录调整导航定位器全局规划器局部规划器控制器定位器 定位器是导航堆栈的关键部分&#xff0c;因为了解机器人的位置对于正确导航到目的地至关重要。 因此&#xff0c;快速准确的定…

2、threejs官网本地化部署启动和Parcel热加载:Web应用打包工具介绍及使用

一、Three.js 官网 背景&#xff1a; threejs 是国外的网站&#xff0c;访问有时候比较卡&#xff0c;所以建议本地化部署启动一下&#xff0c;方便随时访问学习。 部署方案&#xff1a; 1、访问Threejs官网 2、点击github 选择 dev版本下载 3、下载完之后&#xff0c;解压…

Java中的this关键字

介绍 this关键字用于引用当前实例&#xff0c;在Java语言中&#xff0c;当创建一个对象后&#xff0c;Java虚拟机就会为其分配一个指向对象本身的指针&#xff0c;这个指针就是“this”。 Java关键字this只能用于方法方法体内&#xff0c;在类中的非静态方法中使用&#xff0…