likes
comments
collection
share

matplotlib第五天:学习如何画散点图

作者站长头像
站长
· 阅读数 6

大家好,今天我将分享如何使用matplotlib绘制散点图

昨天回顾:

1.学习matplotlib画布分区的三种方法

2.了解了plt.subplot()与plt.subplots()的区别

好的,那么我们现在开始进入正题:

import matplotlib.pyplot as plt

import numpy as np

#画散点图

x=np.linspace(0,10,100)#生成0到10中100个等差数

plt.scatter(x,np.sin(x))

plt.show()

matplotlib第五天:学习如何画散点图

这是sinx图像的散点图。

接下来我会对代码进行一一解释:

import matplotlib.pyplot as plt

import numpy as np

导入了 matplotlib.pyplot 模块,并将其命名为 plt。同时,还导入了 numpy 模块,并将其命名为 np

x=np.linspace(0,10,100)

linspace(0, 10, 100) 会生成一个从 0 到 10 的一维数组,包含 100 个元素,这些元素之间的间隔是均匀的。这个数组将被赋值给变量 x

我们再复习一下这个函数:linspace 函数的参数为起始值、结束值和元素个数,它会生成一个等间距的数组。

plt.scatter(x,np.sin(x))

这行代码使用 matplotlib.pyplot 模块的 scatter 函数创建了一个散点图。散点图用于展示两个变量之间的关系。

通过使用plt.scatter(x, np.sin(x)) 创建了一个散点图,其中 x 是横坐标,np.sin(x) 是纵坐标。np.sin(x) 计算了数组 x 中每个元素的正弦值。因此,散点图的横坐标是 x,纵坐标是 x 对应的正弦值。

通过调用 plt.scatter 函数,将横坐标和纵坐标传递给函数,可以在当前的图形窗口中绘制散点图。

最后使用plt.show()将图像展现出来就好了。

下面我们来学习另外一种散点图:

matplotlib第五天:学习如何画散点图

就是这种,这种散点图比上面那种散点图更加常用。

下面是这种散点图的代码展示:

import matplotlib.pyplot as plt

import numpy as np

#画不同大小颜色的散点图

np.random.seed(0)#设置了随机数生成器的种子

x=np.random.rand(100)

y=np.random.rand(100)

colors=np.random.rand(100)

size=np.random.rand(100)*1000  #用于表示散点图中每个点的大小

plt.scatter(x,y,c=colors,s=size,alpha=0.7)#alpha参数指定了点的透明度

plt.show()

接下来我会对代码进行一一解释:

在这种散点图中我们能够学到很多的新知识。

import matplotlib.pyplot as plt

import numpy as np

首先我们还是先导入了 matplotlib.pyplot 模块,并将其命名为 plt。同时,还导入了 numpy 模块,并将其命名为 np

np.random.seed(0)

这行代码使用 numpy.random.seed 函数设置了随机数生成器的种子。

那么我们为什么要设置了随机数生成器的种子呢?接下来我会为你详细解释:

当我们使用计算机生成随机数时,实际上是使用一个叫做随机数生成器的程序来产生这些数。这个生成器的输出是看似随机的数字序列。

但是,这个随机数生成器实际上是通过一个初始状态来确定的。如果我们使用相同的初始状态,那么每次运行生成器时得到的随机数序列都会是一样的。

假设你写了一个程序,其中使用了随机数。在调试程序时,你希望每次运行程序时得到相同的随机数序列,这样可以更方便地追踪问题。这时,你可以设置一个固定的种子值,确保每次运行程序时都得到相同的随机数序列。

通过设置种子,你可以将随机性从程序中排除,使得结果可重复。这在调试、实验和测试时非常有用。

在这行代码中,np.random.seed(0) 就是设置了随机数生成器的种子为 0。这样,后续如果我们使用 numpy.random 模块生成的随机数序列都会是相同的。这样做的好处是,如果你再次运行相同的代码,你将得到完全相同的随机数序列,这样可以更方便地进行调试和结果验证。

x=np.random.rand(100)

y=np.random.rand(100)

colors=np.random.rand(100)

这三行代码可以放在一起讲,通过使用了 np.random.rand 函数生成了三个长度为 100 的随机数数组 xy 和 colors

  • x 数组包含了 100 个在 [0, 1) 范围内均匀分布的随机数。
  • y 数组也包含了 100 个在 [0, 1) 范围内均匀分布的随机数。
  • colors 数组包含了 100 个在 [0, 1) 范围内均匀分布的随机数。

这些随机数是通过使用 np.random.rand() 函数生成的。np.random.rand() 函数可以生成指定形状的数组,其中的元素是在 [0, 1) 范围内均匀分布的随机数。如图,我们可以生成x轴和y轴[0, 1) 范围内均匀分布的随机数,还可以生成不同的颜色。

matplotlib第五天:学习如何画散点图

size=np.random.rand(100)*1000 

这行代码和上面那三行代码有点相似,也是通过使用np.random.rand()生成了一个长度为 100 的随机数数组,其中的元素是在 [0, 1) 范围内均匀分布的随机数。

然后,通过将这个数组乘以 1000,每个随机数都会被放大 1000 倍。这样,最终得到的 size 数组包含了 100 个在 [0, 1000) 范围内均匀分布的随机数。总的来说就是让那些点大小随机。

plt.scatter(x,y,c=colors,s=size,alpha=0.7)

这段代码使用 matplotlib.pyplot.scatter 函数创建了一个散点图,并使用 x 和 y 数组作为散点的横纵坐标,colors 数组作为散点的颜色,size 数组作为散点的大小,并设置了透明度为 0.7。

我们来详细讲讲plt.scatter()这个函数: 它包含了x,y,c,s,alpha这几个参数。

  • x 是一个长度为 100 的数组,表示散点的横坐标。

  • y 是一个长度为 100 的数组,表示散点的纵坐标。

  • c 是一个长度为 100 的数组,表示散点的颜色。根据你之前生成的 colors 数组,每个散点的颜色将根据相应的元素值确定。

  • s 是一个长度为 100 的数组,表示散点的大小。根据你之前生成的 size 数组,每个散点的大小将根据相应的元素值确定。

  • alpha 是散点的透明度,设置为 0.7,表示散点的颜色会略微透明。

最后通过plt.show()将它展示出来就行了

好了,下面我们来对今天所学的知识进行小结:

1.我们学习了plt.scatter()这个函数的参数并且通过plt.scatter()绘制了散点图。

2.我们搞清楚了我们为什么要设置了随机数生成器的种子。

3.我们学会了如何通过np.random.rand()生成随机数,随机颜色,随机大小。

好了,今天就讲到这里了,希望与各位一起学习数据分析,有问题可以在评论区提问,我非常愿意与大家一同探讨!