Python第三方扩展库Matplotlib
Python第三方扩展库Matplotlib
Matplotlib 是第三方库,不是Python安装程序自带的库,需要额外安装,它是Python的一个综合性的绘图库,提供了大量的绘图函数用于创建静态、动态、交互式的图形和数据可视化,可以帮助用户创建各种类型的图形,包括折线图、散点图、柱状图、饼图等。
Matplotlib 官网:https://matplotlib.org/
Matplotlib中文网 https://www.matplotlib.net
在Windows平台上安装matplotlib,可在cmd命令行中,输入如下命令
pip3 install matplotlib
回车,默认情况使用国外线路较慢,我们可以使用国内的镜像网站:
豆瓣:https://pypi.doubanio.com/simple/
清华:https://pypi.tuna.tsinghua.edu.cn/simple
例如使用清华的镜像
pip3 install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
电脑上安装了多个Python版本,你可以为特定版本的Python安装模块(库、包)。例如我的电脑中安装了多个Python版本,要在Python 3.10版本中安装,并使用清华的镜像,cmd命令行中,输入如下命令
py -3.10 -m pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
回车即可。
特别提示一种情况,使用matplotlib安装成功,但使用时提示:…… ImportError: DLL load failed while importing _cext: 拒绝访问。出现这个错误有可能遇到了权限问题。你可以尝试以管理员身份启动你的Python。
Matplotlib库的安装不需要预先安装其他依赖库。当你运行该命令时,pip会自动处理Matplotlib所需的所有依赖项,并将其安装到你的Python环境中。
Matplotlib 提供了一个称为 pyplot 的模块,它是一个类似于 MATLAB 的接口。pyplot 提供了一种简便的方式来创建图表,并且包含了大量的函数来控制线条风格、属性、轴、标签等。
下面是使用 pyplot 接口的一些基本概念和步骤:
1. 导入 pyplot
通常,我们会使用以下方式导入 pyplot:
import matplotlib.pyplot as plt
2. 准备数据
在绘图之前,你需要准备好数据。这些数据可以是列表、NumPy 数组等形式。
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
3. 绘制图形
使用 plot 函数绘制基本的线图。你也可以使用如 scatter、bar、hist 等函数来绘制散点图、条形图、直方图等。
plt.plot(x, y)
4. 自定义图形
你可以添加标题、轴标签、图例、网格等,以及调整其他的样式设置。
plt.title('Example of a Simple Line Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.grid(True)
5. 显示或保存图形
使用 show 函数在屏幕上显示图形,或者使用 savefig 函数将图形保存到文件。
plt.show() # 显示图形
# 或者
plt.savefig('plot.png') # 保存图形到文件
6. 清理
为了避免绘图命令之间的冲突,可以在绘制完一个图形后使用 clf 或 close 来清理。
plt.clf() # 清除当前图形的所有轴,但是窗口打开着,这样它可以被再次使用。
plt.close() # 关闭窗口,如果你指定了数字参数,它会关闭特定的窗口。
下面是示例代码:
import matplotlib.pyplot as plt# 准备数据
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]# 绘制图形
plt.plot(x, y, label='Linear Growth')# 自定义图形
plt.title('Simple Plot Example')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.legend()
plt.grid(True)# 显示图形
plt.show()
运行效果:
在这个例子中,使用 plt.plot() 函数创建了一个折线图,plt.title(), plt.xlabel(), 和 plt.ylabel() 函数分别用来添加图表的标题和轴标签。label 参数用于为线条添加图例。使用 legend 函数可以显示图例。通过 grid 函数可以添加网格线。最后,plt.show() 函数用来显示图形。
生成曼德博集合(Mandelbrot Set)
曼德博集合(Mandelbrot Set)是一种在复平面上组成分形的点的集合,以数学家本华·曼德博(Benoit B. Mandelbrot)的名字命名。这个集合的奇妙之处在于将曼德博集合无限放大都能够有精妙的细节在内,而这瑰丽的图案仅仅由一个简单的公式生成。因此有人认为曼德博集合是人类有史以来做出的最奇异、最瑰丽的几何图形”,曾被称为上帝的指纹”。
曼德博集合与朱利亚集合(Julia Set)有些相似的地方,例如使用相同的复二次多项式来进行迭代。但是,曼德博集合的关注点在于复平面的全局结构,而朱利亚集合则关注局域结构。曼德博集合的生成过程涉及复二次多项式的迭代,其基本形式为:
z = c
其中 z 和 c 都是复数参数。从 z 开始对 c 进行迭代:
c_n+1 = (z_n^2 + c_n)^(1/2)
每次迭代的值依序如以下序列所示:
c_0, c_1, c_2, ...
不同的参数 c 可能使序列的绝对值逐渐发散到无限大,也可能收敛在有限的区域内。曼德博集合就是所有可能收敛区域组成的集合。
曼德博集合在数学、物理学、金融学等领域具有广泛的应用,同时也吸引了无数艺术家、摄影师和设计师的关注。它以一种独特的方式展示了数学之美,并为人们提供了无穷的灵感来源。
源码如下:
import numpy as np
import matplotlib.pyplot as plt# 定义绘制Mandelbrot图形的函数
def mandelbrot(c, max_iter):z = cfor n in range(max_iter):if abs(z) > 2:return nz = z*z + creturn max_iter# 设置绘图参数
x_min, x_max = -2.5, 1.5
y_min, y_max = -2, 2
width, height = 1000, 1000
max_iter = 100# 生成坐标网格
x = np.linspace(x_min, x_max, width)
y = np.linspace(y_min, y_max, height)
X, Y = np.meshgrid(x, y)
Z = X + 1j * Y# 计算Mandelbrot图形
M = np.zeros((height, width))
for i in range(height):for j in range(width):M[i, j] = mandelbrot(Z[i, j], max_iter)# 绘制Mandelbrot图形
plt.figure(figsize=(10, 10))
plt.imshow(M, extent=(x_min, x_max, y_min, y_max), cmap='hot', interpolation='bilinear')
plt.colorbar()
plt.show()
运行效果:
相关文章:

Python第三方扩展库Matplotlib
Python第三方扩展库Matplotlib Matplotlib 是第三方库,不是Python安装程序自带的库,需要额外安装,它是Python的一个综合性的绘图库,提供了大量的绘图函数用于创建静态、动态、交互式的图形和数据可视化,可以帮助用户创…...

单例模式有几种写法?请谈谈你的理解?
为什么有单例模式? 单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个全局对象,这样有利…...

帕鲁幻兽 一键开服 简单到爆 教你10秒实现 帕鲁幻兽私服联机服务器搭建
幻兽帕鲁是一款非常受欢迎的游戏,最近在社区中呈现了爆火的趋势,在线人数已经突破了百万级别。由于社区的热度不断上升,官方服务器开始出现了不稳定和卡人闪退的情况。搭建一个私人服务器可能是一个最稳定而舒适的解决方案。通过搭建私人服务…...
自动化报告pptx-python|如何将pandas的表格写入PPTX(二)
本篇延续:自动化报告的前奏|使用python-pptx操作PPT(一) 因为在pptx-python中使用table,需要单个cell逐一输入,于是在想有没有pandas可以直接读入的方式, 有两个开源项目有类似的功能: PandasToPowerpointmspandas其中mspandas写的比较复杂,PandasToPowerpoint比较易懂…...
Ruby详解及安装流程
文章目录 一、Ruby详解二、Ruby安装流程三、Ruby案例四、Ruby常见问题五、Ruby优缺点六、热门文章 一、Ruby详解 Ruby是一种高级编程语言,具有简单易学、灵活多变、优雅美丽的语法特点。它是一种面向对象的编程语言,具有动态类型和解释型语言的特性。在…...

免费的ChatGPT网站 ( 7个 )
ChatGPT的核心功能是基于用户在输入时的语言或文本生成相应的回复或继续内容。此外,它还能够完成多种任务,如撰写邮件、视频脚本、文案、翻译、代码编写以及撰写论文等。 博主归纳总结了7个国内非常好用,而且免费的chatGPT网站,AI…...
python异步编程(1)——理论篇
1.理解多线程 当启动一个Python程序时,它会作为一个单独的进程运行在操作系统中。进程是操作系统分配资源(如内存和处理器时间)的基本单位。每个Python程序启动时,都会创建一个主线程。如果没有在代码中明确创建其他线程…...

PyTorch复现网络模型VGG
VGG 原论文地址:https://arxiv.org/abs/1409.1556VGG是Visual Geometry Group(视觉几何组)的缩写,它是一个在计算机视觉领域中非常有影响力的研究团队,主要隶属于牛津大学的工程系和科学系。VGG以其对卷积神经网络&am…...

Springboot集成Javamelody
JavaMelody的目标是监视QA和生产环境中的Java或Java EE应用服务器。它不是模拟用户请求的工具,而是根据用户对应用程序的使用情况来衡量和计算应用程序实际操作的统计信息的工具。JavaMelody主要基于请求统计和演化图。 它允许改进QA和生产中的应用程序,…...

如何将 h5 页面快速转换成微信小程序
Hello各位朋友们大家新的一月好呀!我是咕噜铁蛋!我知道在小程序开发中,有时候需要将H5页面转换成微信小程序页面。这样可以将原本的网页内容适配到小程序中,让用户能够更方便地访问和使用。在本文中,我将分享如何快速将…...
在Vue的模块开发中使用GPT的体验及总结
我这一周都在忙着实现一个页面,这个页面是通过vue基于element-ui来实现的。在这个过程中,我把页面拆分成多个组件,而组件的生成是通过Chat-GPT3来实现的。 这又是一次使用AI来协同开发的体验,觉得有必要总结一下: 遵循…...
Java常见算法题解析面试题(中)
11.判断101-200之间有多少个素数,并输出所有素数。【重点】 程序分析:判断素数的方法,用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 public class lianxi { publi…...

提升网站性能的秘诀:为什么Nginx是高效服务器的代名词?
在这个信息爆炸的时代,每当你在浏览器中输入一个网址,背后都有一个强大的服务器在默默地工作。而在这些服务器中,有一个名字你可能听说过无数次——Nginx。今天,就让我们一起探索这个神奇的工具。 一、Nginx是什么 Nginx&#x…...

[Python图像处理] 使用OpenCV创建深度图
使用OpenCV创建深度图 双目视觉创建深度图相关链接双目视觉 在传统的立体视觉中,两个摄像机彼此水平移动,用于获得场景上的两个不同视图(作为立体图像),就像人类的双目视觉系统: 通过比较这两个图像,可以以视差的形式获得相对深度信息,该视差编码对应图像点的水平坐标的…...

vue+element 换肤功能
1.首先建深色和浅色两个主题样式变量样式表,样式表名和按钮中传入的值一样,本例中起名为default.scss和dark.scss 2.在data中定义主题变量名 zTheme:‘defalut’,默认引用defalut.scss, 在点击按钮时切换引用的样式表,达到换肤效果…...
python魔法函数[全面]
1、init 用于初始化对象的属性和状态 当创建一个对象时,Python会自动调用该对象的__init__方法。 这个方法用于初始化对象的属性和状态,是对象创建过程中的一个重要环节 2、new # 通常我们不需要重写__new__方法,除非我们正在进行一些非常…...

python实现贪吃蛇小游戏(附源码)
文章目录 导入所需的模块坐标主游戏循环模块得分 贪吃蛇小游戏,那个曾经陪伴着00后和90后度过无数欢笑时光的熟悉身影,仿佛是一把打开时光之门的钥匙。它不仅是游戏世界的经典之一,更是我们童年岁月中不可或缺的一部分,一个承载回…...

爬虫学习笔记-Cookie登录古诗文网
1.导包请求 import requests 2.获取古诗文网登录接口 url https://so.gushiwen.cn/user/login.aspxfromhttp%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx # 请求头 headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like …...

Linux网络状态查看与防火墙管理
网络状态查看 netstat [选项] Netstat是一款命令行工具,用于显示Linux系统中网络的状态信息,可以显示网络连接、路由表、连接的数据统计等信息。 使用 选项 -a:显示所有选项,包括监听和未监听的端口。 -t:仅显示tc…...

VxTerm:C++ MFC,在工具栏中增加Edit/ComboBox等组件,打造一个地址栏/搜索栏功能
VxTerm软件可以在本站链接下载:唯一国产化SSH工具下载,单文件纯绿色不需要安装,替代SecureCRT 在软件的主界面中,增加了一个地址栏功能。 本人的文章内容都是经本人亲自实现并验证成功的干货,关注我,互相交…...

wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...