matplotlib第五天:学习如何画散点图
大家好,今天我将分享如何使用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()
这是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()
将图像展现出来就好了。
下面我们来学习另外一种散点图:
就是这种,这种散点图比上面那种散点图更加常用。
下面是这种散点图的代码展示:
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 的随机数数组 x
、y
和 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) 范围内均匀分布的随机数,还可以生成不同的颜色。
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()
生成随机数,随机颜色,随机大小。
好了,今天就讲到这里了,希望与各位一起学习数据分析,有问题可以在评论区提问,我非常愿意与大家一同探讨!
转载自:https://juejin.cn/post/7325495635455705098