【深度学习】 Python 和 NumPy 系列教程(十七):Matplotlib详解:2、3d绘图类型(3)3D条形图(3D Bar Plot)

2023-09-14 21:46:48

目录

 一、前言

二、实验环境

三、Matplotlib详解

 1、2d绘图类型

2、3d绘图类型

0. 设置中文字体

1. 线框图

2. 3D散点图

3. 3D条形图(3D Bar Plot)


 一、前言

        Python是一种高级编程语言,由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名,并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库,可以用于开发各种类型的应用程序,包括Web开发、数据分析、人工智能、科学计算、自动化脚本等。

        Python本身是一种伟大的通用编程语言,在一些流行的库(numpy,scipy,matplotlib)的帮助下,成为了科学计算的强大环境。本系列将介绍Python编程语言和使用Python进行科学计算的方法,主要包含以下内容:

  • Python:基本数据类型、容器(列表、元组、集合、字典)、函数、类
  • Numpy:数组创建、数组操作、数组数学、广播
  • Matplotlib:2d绘图、3d绘图、图表自定义、多子图和布局、图表自定义、多子图和布局
  • IPython:创建笔记本、典型工作流程

二、实验环境

matplotlib3.5.3
numpy1.21.6
python3.7.16
  • 运行下述命令检查Python版本
 python --version 
  • 运行下述代码检查Python、NumPy、Matplotlib版本
import sys
import numpy as np
import matplotlib

print("Python 版本:", sys.version)
print("NumPy 版本:", np.__version__)
print("matplotlib 版本:", matplotlib.__version__)

三、Matplotlib详解

        Matplotlib是一个用于创建数据可视化的Python库。它提供了广泛的绘图选项,能够生成各种类型的图表、图形和可视化效果。下面是Matplotlib的一些主要功能:

  1. 绘图风格和类型:Matplotlib支持各种绘图风格和类型,包括线图、散点图、柱状图、饼图、等高线图、3D图等,可以根据需要选择适合的图表类型来展示和分析数据。

  2. 数据可视化:Matplotlib使得将数据转化为可视化表示变得简单,可以使用Matplotlib绘制图表来展示数据的分布、趋势、关系等,这有助于更好地理解数据和发现潜在的模式和关联。

  3. 图表自定义:Matplotlib提供了丰富的图表自定义选项,可以调整图表的标题、标签、坐标轴、线条样式、颜色等。这使得您能够创建符合特定需求和品味的高质量图表。

  4. 多子图和布局:Matplotlib允许您在单个图像中创建多个子图,以便同时展示多个相关的图表或数据视图。您可以自定义子图的布局和排列,以满足特定的展示需求。

  5. 导出图像:Matplotlib支持将图像导出为多种格式,包括PNG、JPEG、PDF、SVG等。这使得您可以方便地将生成的图表保存为文件,或嵌入到文档、报告和演示文稿中。

        无论是进行科学研究、数据分析、报告撰写还是可视化展示,Matplotlib都是一个强大而灵活的工具。它广泛应用于各个领域,如数据科学、机器学习、金融分析、工程可视化等。

 1、2d绘图类型

2d绘图(上):折线图、散点图、柱状图、直方图、饼图_QomolangmaH的博客-CSDN博客https://blog.csdn.net/m0_63834988/article/details/132872575?spm=1001.2014.3001.5501icon-default.png?t=N7T8https://blog.csdn.net/m0_63834988/article/details/132872575?spm=1001.2014.3001.5501

2d绘图(下):箱线图、热力图、面积图、等高线图、极坐标图_QomolangmaH的博客-CSDN博客https://blog.csdn.net/m0_63834988/article/details/132890656?spm=1001.2014.3001.5501icon-default.png?t=N7T8https://blog.csdn.net/m0_63834988/article/details/132890656?spm=1001.2014.3001.5501

2、3d绘图类型

0. 设置中文字体

import matplotlib

matplotlib.rcParams['font.family'] = 'Microsoft YaHei'  # 设置为微软雅黑字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']     # 设置中文字体为黑体

        若不进行该设置,会报错字体缺失

1. 线框图

3d绘图类型(1):线框图(Wireframe Plot)_QomolangmaH的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_63834988/article/details/132890293?spm=1001.2014.3001.5502

2. 3D散点图

3d绘图类型(2)3D散点图(3D Scatter Plot)_QomolangmaH的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_63834988/article/details/132891434?spm=1001.2014.3001.5502

3. 3D条形图(3D Bar Plot)

import matplotlib.pyplot as plt
import numpy as np

# 数据准备
x = np.arange(3)  # x轴位置
y = np.arange(3)  # y轴位置
x_mesh, y_mesh = np.meshgrid(x, y)  # 创建网格
z = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])  # 条形的高度

# 创建3D图形对象
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 绘制3D条形图
ax.bar3d(x_mesh.flatten(), y_mesh.flatten(), np.zeros_like(z).flatten(), 0.5, 0.5, z.flatten())

# 设置坐标轴标签
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

# 显示图形
plt.show()
  • xy数组分别表示条形的x和y轴位置。
  • 通过使用np.meshgrid函数创建了一个二维网格,将xy数组扩展为与z数组相同的维度。
  • 创建了一个3D图形对象,并将其添加到子图中。
  • 使用ax.bar3d函数绘制了3D条形图。
    • x_mesh.flatten()y_mesh.flatten()np.zeros_like(z).flatten()参数分别表示条形的x、y和z轴位置。
    • 0.5和0.5参数表示条形的宽度和深度。
    • z.flatten()参数表示条形的高度。
  • 使用ax.set_xlabelax.set_ylabelax.set_zlabel函数设置了坐标轴的标签。

   

更多推荐

云可观测性:提升云环境中应用程序可靠性

随着云计算的兴起和广泛应用,越来越多的企业将其应用程序和服务迁移到云环境中。在这个高度动态的环境中,确保应用程序的可靠性和可管理性成为了一个迫切的需求。云可观测性作为一种解决方案,针对这一需求提供了有效的方法和工具。本文将介绍云可观测性的概念、优势以及它如何提升云环境中应用程序的可靠性和可管理性。一、云可观测性概述掌动

ADB环境搭建和抓取Crash日志实践总结

一、adb下载1.1直接点击下载即可:http://adbshell.com/upload/adb.zip1.2网盘获取链接:https://pan.baidu.com/s/1P9nlRN0RQhPCPDaYg7Cgrg提取码:deng下载到本地解压,双击下图应用程序进行安装,其他文件不用动(与普通应用程序不同,adb

人工智能:ChatGPT与其他同类产品的优缺点对比

引言:自然语言处理技术的快速发展推动了聊天机器人的广泛应用。ChatGPT作为一种强大的语言模型,具有出色的生成能力和上下文理解能力。本文将对比ChatGPT与其他同类产品的优缺点,并展示使用ChatGPT进行对话生成的示例代码。ChatGPT简介ChatGPT是由OpenAI开发的语言模型,基于大规模的预训练数据和深

K8S pod资源、探针

目录一.pod资源限制1.pod资源限制方式2.pod资源限制指定时指定的参数(1)request资源(2)limit资源(3)两种资源匹配方式3.资源限制的示例(1)官网示例2)Pod和容器的资源请求和限制格式(3)CPU资源单位介绍(4)内存资源单位(5)资源限制示例1:(6)资源限制示例2:2.Probe支持三种

模式分类与“组件协作模式”

1.GOF-23模式分类从目的来看:创建型(Creational)模式:将对象的部分创建工作延迟到子类或者其他对象,从而应对需求变化为对象创建时具体类型实现引来的冲击。结构型(Structural)模式:通过类继承或者对象组合获得更灵活的结构,从而应对需求变化为对象的结构带来的冲击。行为型(Behavioral)模式:

Python+Requests+Pytest+YAML+Allure实现接口自动化

本项目实现接口自动化的技术选型:Python+Requests+Pytest+YAML+Allure,主要是针对之前开发的一个接口项目来进行学习,通过Python+Requests来发送和处理HTTP协议的请求接口,使用Pytest作为测试执行器,使用YAML来管理测试数据,使用Allure来生成测试报告一、项目说明本

手动开发-实现SpringMVC底层机制--小试牛刀

文章目录前端控制器Controller注解RequestMapping注解自定义容器LingWebApplicationContext设计handlerList完成分发请求Service注解和AutoWired注解RequestParam注解完整代码在这里说的底层机制的实现主要是指:前端控制器、Controller、S

Appium混合页面点击方法tap的使用

原生应用开发,是在Android、IOS等移动平台上利用官方提供的开发语言、开发类库、开发工具进行App开发;HTML5(h5)应用开发,是利用Web技术进行的App开发。目前,市面上很多app都是原生和h5混合开发,这样做的好处在于:1)开发效率高,节约时间同一套代码Android和IOS基本都可用。2)更新和部署比

北大王选实验室 | 摘要已死?

深度学习自然语言处理原创作者:Winnie最新一篇研究里探索了大型语言模型(LLMs)在文本摘要这一领域的表现。他们设计了新的数据集,通过一系列人类评估实验评估LLMs在不同摘要任务中的表现。惊人的是,大多数人类评估者实际更倾向于选择LLM生成的摘要,甚至超过了参考摘要(人工编写)的标准。这个结果意味着,LLMs的介入

《红警3》因计算机中丢失d3dx9_35.dll无法打开游戏怎么办?最新解决方法推荐

d3dx9_35.dll是DirectX9.0c的一部分,它是一个动态链接库(DLL),包含了许多用于支持DirectX9.0c功能的函数和类。DirectX是一种由微软开发的游戏和多媒体应用程序编程接口,它提供了许多功能,如3D图形、音频、输入等,以便开发人员能够更轻松地创建高质量的游戏和多媒体应用程序。1、d3dx

lambda

一个lambda表达式表示一个可调用的代码单元。可以将其理解为一个未命名的内联函数。与普通函数类似,一个lambda具有一个返回类型、一个参数列表和一个函数体。与普通函数不同的是,lambda可以定义在其他函数内部。一个lambda表达式具有如下形式:[capturelist](parameterlist)->retu

热文推荐