Python数据可视化利器:Matplotlib库的用法

Python数据可视化利器:Matplotlib库的用法数据可视化已经成为了现代数据科学家和工程师的重要工作之一。Matplotlib是一个优秀的数据可视化库,它支持众多的绘图类型,包括线图,散点图,柱状图,等高线图,和复杂的3D图形。Matplotlib库的设计目标是兼容MATLAB语法,这使得它成为科学计算中最受欢迎的绘图库之一。

数据可视化已经成为了现代数据科学家和工程师的重要工作之一。Matplotlib是一个优秀的数据可视化库,它支持众多的绘图类型,包括线图,散点图,柱状图,等高线图,和复杂的3D图形。Matplotlib库的设计目标是兼容MATLAB语法,这使得它成为科学计算中最受欢迎的绘图库之一。

一、基础绘图

Matplotlib最基础的绘图是线图。下面的代码演示如何使用Matplotlib绘制线图。


import numpy as np
import matplotlib.pyplot as plt

# 生成数据
x = np.linspace(0, 10, 1000)
y = np.sin(x)

# 绘图
plt.plot(x, y, label='sin(x)')

# 显示标签
plt.legend()

# 显示图形
plt.show()

下面是代码的说明:

首先,我们从numpy库导入linspace函数和sin函数,用来生成X轴和Y轴的数据。然后,我们从matplotlib.pyplot库导入pyplot模块,用来绘制图形。接下来,使用plot函数绘制线图。plot函数的第一个参数是X轴数据,第二个参数是Y轴数据。label='sin(x)'表示为图像标注注释。如果有多个曲线需要绘画,则使用subplot函数,其中第一个参数为nrows,第二个参数为ncols,第三个参数为plot_number,表示在其中的哪一个窗口中进行绘图。

此外,使用legend函数可以显示图例。最后,使用show函数显示图形。运行这个程序,就会看到一幅含有一个正弦函数的线图。

二、2D图形和子图

除了线图,Matplotlib还支持各种2D图形。在Matplotlib中,使用subplot函数可以绘制多个子图。


x = np.linspace(-10, 10, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)

# 在一张图中绘制三个子图
plt.subplot(3, 1, 1)
plt.plot(x, y1)
plt.title('sin(x)')

plt.subplot(3, 1, 2)
plt.plot(x, y2)
plt.title('cos(x)')

plt.subplot(3, 1, 3)
plt.plot(x, y3)
plt.title('tan(x)')

plt.show()

上面的代码中,我们生成三个不同的曲线,并使用subplot函数生成了一个显示三个子图的绘图窗口。subplot函数的第一个参数是行数,第二个参数是列数,第三个参数是子图的位置。运行此代码,可以得到如下图像:

![subplot images](https://img-blog.csdn.net/20170214113744336?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZF9kaWdpdGFsbF9yZW1lZGlh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/90)

三、散点图与直方图

另一个流行的二维图形类型是散点图。散点图可以用于表示两个变量之间的相关性。Matplotlib的scatter函数可以用于绘制散点图。


# 构造数据
x = np.random.randn(1000)
y = np.random.randn(1000)

plt.scatter(x, y, c='r', alpha=0.5)
plt.show()

上面的代码使用了Matplotlib的scatter函数绘制散点图。其中x和y都是由随机值填充的向量。color参数设置点的颜色,alpha参数设置透明度。运行此代码,可以得到如下的散点图:

![Scatter plot](https://img-blog.csdn.net/20170214114220051?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZF9kaWdpdGFsbF9yZW1lZGlh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/90)

另外,直方图是最适合描述一组连续性数据的图形。Matplotlib的hist函数可以用于绘制直方图。


# 构造数据
x = np.random.randn(1000)

# 绘图
plt.hist(x, bins=50, color='g')

plt.show()

在上面的代码中,我们使用hist函数绘制直方图。其中,bins参数指定直方图的梯形数量,颜色是可以变化的。该代码将生成如下的直方图。

![Histogram](https://img-blog.csdn.net/20170214114348909?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZF9kaWdpdGFsbF9yZW1lZGlh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/90)

四、3D图形

除了2D图形,Matplotlib库还支持各种3D图形。我们可以使用Axes3D对象来绘制立体图形。下面的代码演示如何使用Matplotlib绘制3D散点图。


from mpl_toolkits.mplot3d import Axes3D

# 生成3D数据
x = np.random.randn(100)
y = np.random.randn(100)
z = np.random.randn(100)

# 绘图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z, c='b', marker='o')

plt.show()

在上面的代码中,我们使用Axes3D对象创建3D图形,scatter函数用于绘制散点。marker参数指定点的形状,颜色也可以变化。该代码将生成如下的3D散点图。

![3D scatter plot](https://img-blog.csdn.net/20170214114504781?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZF9kaWdpdGFsbF9yZW1lZGlh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/90)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/21419.html

(0)
上一篇 2024-04-12
下一篇 2024-04-12

相关推荐

  • mysql的事务_mysql事务回滚

    mysql的事务_mysql事务回滚事务的特性(Atomicity) 原子性 — 回滚日志 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(R…

    2023-03-30
    125
  • 性能调优从哪几个方面入手_MySQL调优

    性能调优从哪几个方面入手_MySQL调优上篇文章讲了MySQL架构体系,了解到MySQL Server端的优化器可以生成Explain执行计划,而执行计划可以帮助我们分析SQL语句性能瓶颈,优化SQL查询逻辑,今天就一块学习Explain执

    2023-05-28
    126
  • Python TypeVar: 构建可重用的通用函数和类

    Python TypeVar: 构建可重用的通用函数和类a href=”https://beian.miit.gov.cn/”苏ICP备2023018380号-1/a Copyright www.python100.com .Some Rights Reserved.

    2024-03-09
    64
  • 读MySQL5.7 官方文档11.3.2 The CHAR and VARCHAR Types章节的总结「建议收藏」

    读MySQL5.7 官方文档11.3.2 The CHAR and VARCHAR Types章节的总结「建议收藏」作者:魏新平,知数堂第5期MySQL实战班学员,第10期MySQL优化班学员,现任职助教。 varchar(n) 和char(n)的最大长度 相信作为dba,经常会被问到这个问题吧。那什么是最大长度…

    2023-02-05
    125
  • MySQL涉及锁的问题[亲测有效]

    MySQL涉及锁的问题[亲测有效]如何并发的访问数据库呢?答案就是加锁。 接下来说一下,数据库的锁机制,数据库中都有哪些锁? 首先呢,锁是一种并发控制技术,锁是用来在多个用户同时访问同一个数据的时候保护数据的。 有2种基本的锁类型:

    2023-02-10
    128
  • Linux装Windows系统,萌新必备攻略

    Linux装Windows系统,萌新必备攻略     现如今电脑越来越普及,几乎人手一台电脑,但依然有很多人不知道怎么为荣耀MagicBook电脑重装系统。电脑出现问题,还要去电脑店花钱找人帮忙重装系统。其实电脑重装系统非常简单,借助U盘就能…

    2022-12-20
    137
  • 使用Editplus运行Python代码

    使用Editplus运行Python代码Python是一门优秀的编程语言,可以用于各种不同的任务,包括物联网、Web应用程序、科学计算等等。而Editplus则是一款功能强大的文本编辑器,特别适合编写代码。本篇文章将向读者介绍如何使用Editplus运行Python代码。

    2024-07-22
    10
  • 关于在linux中安装neo4j的步骤

    关于在linux中安装neo4j的步骤依赖 Neo4j的安装对硬件、系统都有一些要求的。 硬件不必说,肯定是越高越好。Java必须安装OpenJDK 8 或 Oracle Java 8 Operation Sytem,版本至少为1.8….

    2023-02-20
    133

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注