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笔记-用单表接近一千万数据(四列:int,两个varchar,日期时间)测,发现几个效率几乎一致 count(0)=count(1)=count(数字)=count(*)>count(primary

    2023-02-15
    144
  • Python应用之字符串替换功能

    Python应用之字符串替换功能在日常工作中,我们常常需要对文本进行一定的处理。经常会遇到需要用指定的字符串替换文本中的一些特定字符串的情况。比如,我们需要修改文章中某些单词或者短语的拼写错误,或者将一串字符转换为另一串字符。

    2023-12-19
    116
  • Python Semaphore实现多线程同步

    Python Semaphore实现多线程同步Python是一门强大的编程语言,而且它支持多线程编程,这意味着可以利用计算机资源,提高代码的执行效率。在多线程编程中,如何解决线程安全问题是非常关键的。在本文中,我们将介绍Python Semaphore库如何实现多线程同步。

    2024-05-23
    67
  • Python实战:decoded和编码基础知识展示

    Python实战:decoded和编码基础知识展示在Python编程中,解码和编码是非常重要的基础知识。解码是将字节转换为字符串,而编码是将字符串转换为字节。在本文中,我们将讨论Python中的解码和编码技术,并通过示例代码进行解释。

    2024-02-01
    107
  • 【2019年8月】OCP 071认证考试最新版本的考试原题-第20题[通俗易懂]

    【2019年8月】OCP 071认证考试最新版本的考试原题-第20题[通俗易懂]Choose two The PRODUCT_INFORMATION table has a UNIT_PRICE column of data type NUMBER(8, 2). Evaluat…

    2022-12-15
    144
  • chatgpt github_SQL性能优化

    chatgpt github_SQL性能优化前言 开心一刻 某人养了一头猪,烦了想放生,可是猪认识回家的路,放生几次它都自己回来了。一日,这个人想了个狠办法,开车带着猪转了好多路进山区放生,放生后又各种打转,然后掏出电话给家里人打了个电话,问道

    2022-12-21
    155
  • Python Wallclock Time:测量程序中代码执行的实际时间

    Python Wallclock Time:测量程序中代码执行的实际时间bWallclock time/b(也称为Wall time)是指从程序开始运行到程序结束的实际时间,它包括了CPU执行时间以及其他因素(如I/O操作和等待时间)所消耗的时间。在Python中,我们可以使用多种方式来测量代码执行的Wall time,以此来评估程序的性能和效率。本文将介绍Python中测量Wall time的方法,以及如何使用它们来优化代码。

    2023-12-31
    117
  • Python字典删除键操作示例

    Python字典删除键操作示例Python语言是一种广泛使用的高级编程语言,其重要的数据结构之一就是字典。字典类型提供了一种灵活且高效的方式来存储和处理数据。在Python中,字典类型使用“{key:value}”的形式表示。其中的key表示唯一的指定值,而value则为存储的数据。它们的结合组成了键值对(key-value pairs)。与许多其它编程语言不同的是,Python允许删除字典中的键。Python字典删除键操作示例成为编程中很重要的一个部分。

    2024-07-04
    59

发表回复

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