使用Python绘制迷人的二维心形曲线和三维马鞍面
off999 2024-12-31 13:46 47 浏览 0 评论
Python是一个功能强大的编程语言,不仅可以处理数据分析和机器学习任务,还能够创建美观的图形和图像。在这篇博客中,我们将学习如何使用Python的matplotlib库和PyQt5框架来绘制二维心形曲线和三维马鞍面。
绘制二维心形曲线
首先,我们从一个简单而浪漫的图形开始:二维心形曲线。这个曲线不仅外观迷人,而且其数学表示也相对简单。
准备工作
确保你已经安装了matplotlib和PyQt5。如果没有,可以通过以下命令安装:
pip install matplotlib PyQt5直接安装anaconda也可以,自带matplotlib和PyQt5,传送门:一步步教你:在QT窗口中展示Matplotlib绘图
编写代码
接下来,让我们编写代码来创建一个QT应用程序,该应用程序会显示二维心形曲线:
import sys
import numpy as np
import matplotlib.pyplot as plt
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
class HeartShapePlot(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Heart Shape Plot in QT")
# 创建一个widget和布局
self.central_widget = QWidget()
self.layout = QVBoxLayout(self.central_widget)
# 创建matplotlib图形和导航栏
self.canvas = FigureCanvas(plt.figure())
self.toolbar = NavigationToolbar(self.canvas, self)
# 添加canvas和toolbar到布局
self.layout.addWidget(self.toolbar)
self.layout.addWidget(self.canvas)
self.setCentralWidget(self.central_widget)
# 绘制心形曲线
self.plot_heart_shape()
def plot_heart_shape(self):
ax = self.canvas.figure.add_subplot(111)
t = np.linspace(0, 2 * np.pi, 1000)
x = 16 * np.sin(t)**3
y = 13 * np.cos(t) - 5 * np.cos(2*t) - 2 * np.cos(3*t) - np.cos(4*t)
ax.plot(x, y, color='red')
ax.set_aspect('equal', 'box')
self.canvas.draw()
app = QApplication(sys.argv)
main_window = HeartShapePlot()
main_window.show()
sys.exit(app.exec_())
这个程序会创建一个窗口,里面显示了由数学公式生成的心形曲线。用户可以通过集成的工具栏来放大、缩小或平移视图。
绘制三维马鞍面
现在,让我们增加一点难度,绘制一个三维图形:马鞍面。这是一个经典的数学曲面,其形状类似于马鞍。
编写代码
下面是创建一个展示三维马鞍面的QT应用程序的代码:
import sys
import numpy as np
import matplotlib.pyplot as plt
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
from mpl_toolkits.mplot3d import Axes3D
class SaddleSurfacePlot(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("3D Saddle Surface Plot in QT")
# 创建一个widget和布局
self.central_widget = QWidget()
self.layout = QVBoxLayout(self.central_widget)
# 创建matplotlib图形和导航栏
self.canvas = FigureCanvas(plt.figure())
self.toolbar = NavigationToolbar(self.canvas, self)
# 添加canvas和toolbar到布局
self.layout.addWidget(self.toolbar)
self.layout.addWidget(self.canvas)
self.setCentralWidget(self.central_widget)
# 绘制三维马鞍面
self.plot_saddle_surface()
def plot_saddle_surface(self):
ax = self.canvas.figure.add_subplot(111, projection='3d')
# 定义x, y, z的数据点
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = x**2 - y**2
# 绘制曲面
ax.plot_surface(x, y, z, cmap='viridis')
self.canvas.draw()
app = QApplication(sys.argv)
main_window = SaddleSurfacePlot()
main_window.show()
sys.exit(app.exec_())
这段代码创建了一个展示三维马鞍面的窗口。用户可以通过工具栏来旋转、缩放和平移这个三维图形,以便从不同角度观察。
结语
通过这两个例子,我们可以看到Python和相关库在数据可视化方面的强大能力。无论是用于展示数据、教育目的,还是仅仅为了艺术和美学,Python都是一个绝佳的工具。希望你喜欢这篇博客,并且能够在你的项目中应用这些知识!
相关推荐
- 联想电脑设置u盘启动的步骤(联想电脑设置成u盘启动)
-
联想电脑设置U盘启动两种方法方法一:通过启动快捷键1、如果是UEFI启动盘,可以通过启动快捷键选择U盘启动,首先插入UEFIU盘启动盘,然后启动过程中按下F12或Fn+F12组合键。2、这时候会弹出...
- 电脑桌面图标不见了怎么设置
-
方法一:1、首先按下快捷键“ctrl+shift+esc”打开任务管理器。2、然后点击左上角的文件,选择“运行新任务”。3、输入“explorer.exe”点击确定等待重启即可。方法二:1...
- 惠普暗影精灵7(惠普暗影精灵7配置)
-
惠普暗影精灵7的开机步骤如下:1.确保电源已连接并正常工作。将电源适配器插入电源插座,并连接到电脑上。2.打开电脑上的盖子。通常情况下,你需要打开盖子才能看到电源按钮。3.查找电源按钮。在大多数...
- 笔记本电脑开不了机怎么办如何解决
-
1、如果笔记本无法开机首先尝试调亮电脑屏幕亮度。2、开机按F2键,进入BIOS界面查看是否正常显示。3、外接显示器,按组合键切换显示。4、移除所有外接装置,取出加装的内存或其它硬件后再开机确认。如果以...
- 如何禁止电脑自动更新(怎么禁止电脑自动更新)
-
建议将自动更新关闭,用软件更新,自己的时间自己做主。下载超级兔子,让她帮助你下载补丁。你选择快速检测后,按安装按钮,她会自动帮助你下载安装,并且不需要重启。到目前为止,使用超级兔子打补丁全部成功(对于...
- 如何重装系统win7视频教程(如何重装系统win7具体步骤)
-
不需要重装知识点延伸,更换CPU-BIOS设置1)未更改过bios设置,确认主板支持cpu型号直接插上即可,bios会自适应2)之前更改过bios设置,在更换cpu之前应需要将bios恢复出厂...
- 惠普售后维修官网电话(惠普官网维修中心电话)
-
要找到惠普的售后服务,你可以通过以下几种方式进行联系。首先,你可以访问惠普的官方网站,在网站上找到售后服务的相关信息,包括联系电话和在线支持。其次,你可以拨打惠普的客户服务热线,向客服人员咨询并安排售...
- 笔记本迈克菲怎么卸载(笔记本迈克菲怎么卸载不了)
-
戴尔笔记本电脑上的迈克菲中心可以卸载,迈克菲中心为一款杀毒软件,如果自身笔记本电脑不需要可以进行卸载。迈克菲中心卸载步骤:1、打开桌面“此电脑”。2、在“此电脑”界面中点击选择“卸载或更改程序”。3、...
- windows10怎么进入修复模式(win10如何进入修复系统)
-
1、 进入WindowsRE恢复模式。非正常启动三次,可进入WindowsRE恢复模式。具体操作方法如下:按住电源按钮10秒钟以关闭设备。再次按电源按钮以打开设备。看到Windo...
- 现在哪个浏览器好用(现在哪种浏览器好用)
-
一、谷歌浏览器谷歌浏览器是公认最好用的,这个可以从市场占有率看出端倪,超过三分之二的用户使用谷歌浏览器。Chrome浏览器以简洁快速著称,不管是普通用户还是开发人员,chrome浏览器都是首选。Chr...
- win10系统还是win7系统好(是win10好还是win7好)
-
就我个人觉得win7系统和win10系统都挺好用的,主要看个人习惯,win10系统也推出了3年了,相信很多用户也已经尝试过win10系统,操作上没有什么很大的区别,就是界面有些不同,这就看个人喜欢了。...
- 重装系统u盘制作教程(重装系统u盘怎么制作)
-
以下是重装电脑系统的一般步骤:在正常可用的电脑上下载并安装一个制作启动U盘的工具,例如Rufus、WinToUSB等。使用该工具将操作系统安装文件写入U盘,并设置U盘为启动盘。将U盘插入需要重装系统的...
- 从win8装回win7系统(win8.1怎么装回win7)
-
重装电脑,而且您的【电脑系统没有完全崩溃】,那么可以用【【【硬盘安装系统的方法】】】来装系统,无需借助光盘或者u盘,简单快速。电脑硬盘安装系统的方法如下:1.到WIN7旗舰版基地去http://ww...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
