个人笔记--python画图(一维,二维,三维)

news2024/9/29 19:29:50

1. 一维

1. plot

import numpy as np
import matplotlib.pyplot as plt

# linspace(): 创建等间距的数值序列
x = np.linspace(0, 2 * np.pi, 100)

u = np.sin(x)

# 绘制一维图形
plt.figure()
plt.plot(x, u)
plt.title('Plot of sin(x)')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.show()

在这里插入图片描述

2. 二维

2.1 imshow

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2 * np.pi, 100)
y = np.linspace(0, 2 * np.pi, 100)
# 创建网格点
X, Y = np.meshgrid(x, y)

U = np.sin(X) * np.cos(Y)

# 使用imshow绘制热图
plt.figure()
plt.imshow(U, extent=(0, 2 * np.pi, 0, 2 * np.pi), origin='lower', cmap='viridis')
plt.colorbar()
plt.title('Heatmap of sin(x) * cos(y)')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

在这里插入图片描述

2.2 contour

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2 * np.pi, 100)
y = np.linspace(0, 2 * np.pi, 100)
X, Y = np.meshgrid(x, y)

U = np.sin(X) * np.cos(Y)

# 使用contour绘制等高线图
plt.figure()
plt.contour(X, Y, U, levels=20, cmap='viridis')
plt.colorbar()
plt.title('Contour of sin(x) * cos(y)')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

在这里插入图片描述

2.3 pcolor

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2 * np.pi, 100)
y = np.linspace(0, 2 * np.pi, 100)
X, Y = np.meshgrid(x, y)

U = np.sin(X) * np.cos(Y)

# 使用pcolor绘制伪彩色图
plt.figure()
plt.pcolor(X, Y, U, cmap='viridis')
plt.colorbar()
plt.title('Pcolor of sin(x) * cos(y)')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

在这里插入图片描述

2.4 scatter

import numpy as np
import matplotlib.pyplot as plt

# 生成数据
x = np.linspace(0, 2 * np.pi, 100)
y = np.linspace(0, 2 * np.pi, 100)
X, Y = np.meshgrid(x, y)
U = np.sin(X) * np.cos(Y)

# 绘制散点图
plt.scatter(X, Y, c=U, cmap='viridis')

# 添加标题和标签
plt.title('Scatter plot of U = sin(X) * cos(Y)')
plt.xlabel('X')
plt.ylabel('Y')

# 显示图表
plt.colorbar(label='U value')
plt.show()

# 上面的X,Y,U维度都是(100,100),
# 下面的x_star, y_star, v0_train维度是(100*100,1)即(10000,1)
# 只要维度一样就可以
# plt.scatter(x_star, y_star, c=v0_train, cmap='viridis')
# plt.colorbar()
# plt.xlabel('X')
# plt.ylabel('Y')
# plt.title('v_0_train')
# plt.show()


在这里插入图片描述

2.5 plot_surface

import numpy as np
import matplotlib.pyplot as plt
# from mpl_toolkits.mplot3d import Axes3D

# 生成x和y
x = np.linspace(0, 2 * np.pi, 100)
y = np.linspace(0, 2 * np.pi, 100)
X, Y = np.meshgrid(x, y)

# 计算u
U = np.sin(X) * np.cos(Y)

# 使用plot_surface绘制三维表面图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, U, cmap='viridis')
ax.set_title('Surface plot of sin(x) * cos(y)')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('u')
plt.show()

在这里插入图片描述

2.6 contour3D

import numpy as np
import matplotlib.pyplot as plt
# from mpl_toolkits.mplot3d import Axes3D

# 生成x和y
x = np.linspace(0, 2 * np.pi, 100)
y = np.linspace(0, 2 * np.pi, 100)
X, Y = np.meshgrid(x, y)

# 计算u
U = np.sin(X) * np.cos(Y)

# 使用contour3D绘制三维等高线图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.contour3D(X, Y, U, 50, cmap='viridis')
ax.set_title('3D Contour of sin(x) * cos(y)')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('u')
plt.show()

在这里插入图片描述

3. 三维

3.1 plot_surface

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 生成x, y, z
x = np.linspace(0, 2 * np.pi, 50)
y = np.linspace(0, 2 * np.pi, 50)
z = np.linspace(0, 2 * np.pi, 50)
X, Y, Z = np.meshgrid(x, y, z)

U = np.sin(X) * np.cos(Y) * np.sin(Z)

# 固定z,绘制三维表面图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X[:,:,25], Y[:,:,25], U[:,:,25], cmap='viridis')
ax.set_title('Surface plot of sin(x) * cos(y) * sin(z) at z=pi')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('u')
plt.show()

在这里插入图片描述

3.2 contour3D

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 生成x, y, z
x = np.linspace(0, 2 * np.pi, 50)
y = np.linspace(0, 2 * np.pi, 50)
z = np.linspace(0, 2 * np.pi, 50)
X, Y, Z = np.meshgrid(x, y, z)

U = np.sin(X) * np.cos(Y) * np.sin(Z)

# 固定z,绘制三维等高线图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.contour3D(X[:,:,25], Y[:,:,25], U[:,:,25], 50, cmap='viridis')
ax.set_title('3D Contour of sin(x) * cos(y) * sin(z) at z=pi')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('u')
plt.show()

在这里插入图片描述

4. 存储图像

4.1 一般情况

import matplotlib.pyplot as plt
import numpy as np

# 创建一些示例数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 创建一个折线图
plt.plot(x, y)

# 使用plt.savefig()保存图像
plt.savefig('sine.png')

# 显示图像
plt.show()


4.2 一次存多个图

globals()[f"pic_{time_block}_{AM_count}"] = plt.figure(1, figsize=(15, 15))
predict_np_u = model.predict_U(x_test_current).cpu().detach().numpy()
predict_np_v = model.predict_V(x_test_current).cpu().detach().numpy()
predict_np_p = model.predict_P(x_test_current).cpu().detach().numpy()

u_pred = np.reshape(predict_np_u, (x.shape[0], y.shape[0], t_current.shape[0]), order='F')
v_pred = np.reshape(predict_np_v, (x.shape[0], y.shape[0], t_current.shape[0]), order='F')
p_pred = np.reshape(predict_np_p, (x.shape[0], y.shape[0], t_current.shape[0]), order='F')

# Adjust subplot parameters to avoid overlap
plt.subplots_adjust(wspace=0.4, hspace=0.4)  # Increase the width and height spaces

for i in range(len(t_1)):
    # Prediction
    plt.subplot(3, 3, 1 + 3 * i)
    plt.pcolor(x_1, y_1, u_pred[:, :, t_pos1[i]], cmap='jet')
    plt.colorbar()
    plt.xlabel(r'$x$', fontsize=18)
    plt.ylabel(r'$y$', fontsize=18)
    plt.title('Predicted $\hat u(x,y,t)$, t=' + str(t_1[i]), fontsize=15)

    plt.subplot(3, 3, 2 + 3 * i)
    plt.pcolor(x_1, y_1, v_pred[:, :, t_pos1[i]], cmap='jet')
    plt.colorbar()
    plt.xlabel(r'$x$', fontsize=18)
    plt.ylabel(r'$y$', fontsize=18)
    plt.title('Predicted $\hat u(x,y,t)$, t=' + str(t_1[i]), fontsize=15)

    plt.subplot(3, 3, 3 + 3 * i)
    plt.pcolor(x_1, y_1, p_pred[:, :, t_pos1[i]], cmap='jet')
    plt.colorbar()
    plt.xlabel(r'$x$', fontsize=18)
    plt.ylabel(r'$y$', fontsize=18)
    plt.title('Predicted $\hat u(x,y,t)$, t=' + str(t_1[i]), fontsize=15)

plt.close()
globals()[f"pic_{time_block}_{AM_count}"].savefig("figures_count/Sol_" + params_name + str(time_block) + "_" + str(AM_count) + ".png", dpi=500, bbox_inches='tight')

用上globals()去命名

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

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

相关文章

监控摄像头能看到电脑屏幕吗?公司监控摄像头拍员工电脑屏幕!

监控摄像头已经成为许多企业和公共场所不可或缺的安全管理工具。 它们不仅守护着物理空间的安全,也在一定程度上影响着企业的运营管理和员工的行为规范。 然而,当“公司监控摄像头拍员工电脑屏幕”这一话题被提出时,不禁引发了广泛的讨论与…

Sketch for mac(专业矢量绘图设计软件100.3版) 中文激活版 一键快速安装!

Sketch 是一款专为 macOS 设计的专业矢量图形编辑软件,自发布以来便成为 UI/UX 设计师首选的工具之一。其简洁高效的用户界面、强大的设计功能,以及与 macOS 系统的深度集成,使得 Sketch 在设计领域享有很高的声誉。无论是移动应用设计、网页…

PT:如何获取net的Delta delay信息

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 来自星球提问: crosstalk的Delta delay可以从三个渠道获取: report_timing

监控用户登录信息,执行事务码情况

CMOD->SUSR0001 *&---------------------------------------------------------------------* *& 包含 ZXUSRU01 *&---------------------------------------------------------------------*DATA:lv_sblm_obj TYPE sblm_obj.CALL FUNCTION ZFMB…

2-Git远程仓库

Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。 一、配置远程仓库 1.注册登录Gitee/Github GitHub 地址&am…

【ComfyUI Flux_dev_gguf】 AI绘画提示词,轻松实现AI仰角摄影技巧。秒出AI大片~

前言 **hello,大家好,我是老徐,热爱AI,一路同行,与你相伴~喜欢的可以关注老徐,**在文章底部添加老徐微信,加入老徐AI绘画交流群 今天老徐简单和大家分享下基于ComfyUI Flux_dev_gguf 工作流&…

CX1020 N010处理器CX1020-N010模块面价

CX1020 N010处理器CX1020-N010模块面价 CX1020 N010处理器CX1020-N010模块面价 CX1020 N010处理器CX1020-N010模块面价 CX1020-N010处理器CX1020 N010模块引脚线 CX1020-N010处理器CX1020 N010模块接线图 CX1020-N010处理器CX1020 N010模块电路图 CX1020-N010中央处理器&…

R 2火灾温度预测

火灾温度预测 🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 使用LSTM进行时间序列预测 这周学习如何使用长短期记忆网络(LSTM)进行时间序列预测。使用PyTorch框架来构建和训练模型&…

【大数据算法】一文掌握大数据算法之:时间亚线性算法。

时间亚线性算算法 1、引言2、时间亚线性算法2.1 定义2.2 分类2.3 核心原理2.4 算法公式2.5 代码示例 3、总结 1、引言 小屌丝:鱼哥,大数据算法知识难不难啊? 小鱼:你在职场打拼这么多年,竟然还能问出来这个问题。 小屌…

婚恋交友系统该如何制作成品系统?

制作婚恋交友系统的成品系统是一个综合性的过程,涉及多个关键步骤和技术要点。以下是一个详细的制作流程: 1. 需求分析 市场调研:首先需要对婚恋交友市场进行深入调研,了解目标用户群体的需求、喜好、习惯以及市场痛点。用户画像…

C学习(数据结构)--> 实现顺序结构二叉树

目录 一、堆的概念与结构 性质 二叉树的性质 二、堆的实现 1、结构 2、初始化与销毁 3、入堆与出堆(小堆) 1)Swap 2)入堆 1 数据的向上调整 2 入堆 3)出堆 1 数据的向下调整 2 出堆 三、其他 1、入堆与出…

解决Github无法连接codespace情况

使用这个DNS即可 CN - 中国互联网络信息中心CNNIC SDNS1.2.4.8,,True 参见: GitHub 无法访问解决办法 - 哔哩哔哩

一些可以参考的文档集合17

应用运行主目录 之前的文章集合: 一些可以参考文章集合1_xuejianxinokok的博客-CSDN博客 一些可以参考文章集合2_xuejianxinokok的博客-CSDN博客 一些可以参考的文档集合3_xuejianxinokok的博客-CSDN博客 一些可以参考的文档集合4_xuejianxinokok的博客-CSDN博客 一些可以…

乱弹篇(42)处暑与吃秋

“太热了。8点收竿,匆忙回家降温。”刚才完笔者把这话发给了微信亲友。 书画家黄老弟回复:“又是保长吧?天热了,鱼不出来。下次努力。” 知友家乡兰回复:“是啊,自贡已达40度!” 在“电老虎”…

为什么录屏没有声音?教你三招,解决系统与麦克风声音录制技巧

电脑录屏声音同步技巧:系统与麦克风声音录制 在游戏录制和微课制作中,音画同步是保证观众体验的关键因素。无论是紧张刺激的游戏解说,还是知识传递的微课讲解,清晰同步的声音都能让内容更加生动,更能吸引观众的注意力…

【UE5.1】NPC人工智能——06 NPC攻击

目录 前言 效果 步骤 一、准备NPC狮子攻击的动画 二、NPC狮子攻击玩家造成伤害 前言 在上一篇中(【UE5.1】NPC人工智能——05 给NPC添加视觉感知)我们已经给NPC添加了感知功能,使其在感知到玩家后就跑向玩家。本篇要实现的功能是&#x…

赛力斯汽车改名问界汽车,字号随着商标改!

从国家企业信用网显示,近日赛力斯汽车企业名称变更为重庆问界汽车,以前余承东直播,谈到问界等商标品牌的转让,问界品牌价值至少100亿,赛力斯最终是25亿收购华为“问界”商标,估值102亿。 经常遇到有人问&am…

代码随想录Day 22| 回溯算法开篇,77.组合、216组合总和Ⅲ、17.电话号码的字母组合

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 回溯算法理论基础一、理论基础1.1 什么是回溯法1.2 回溯法的效率1.3 回溯法解决的问题1.4 如何理解回溯法1.5 回溯法模板 二、题目题目一:77.组合解题思路:回溯法三部曲组合…

碎碎念:关于小模型或者端侧大模型

今年有个有趣的现象,大厂分别推出能够在端侧运行的小模型 Microsoft:Phi-3 Vision 4.2b,支持 文本、图像输入,可以运行在 surface 上 Google:Gemini Nano 1.8b/3.2b,支持文本,可以运行在手机上…