文章目录
- 专栏导读
- 1、Matplotlib散点图语法
- 2、Matplotlib散点图设置图标大小
- 3、Matplotlib散点图自定义点颜色
- 4、Matplotlib散点图设置两组散点图
- 5、Matplotlib散点图使用随机数来设置散点图
- 6、Matplotlib散点图显示颜色条 Colormap
✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。
✍ 本文录入于《数据分析之道》,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。
✍ 订阅后,可以阅读《数据分析之道》中全部文章内容,包含python基础语法、数据结构和文件操作,科学计算,实现文件内容操作,实现数据可视化等等。
✍ 其他专栏:《数据分析案例》 ,《机器学习案例》😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍
📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪
散点图是一种常用的数据可视化方式,用于展示两个变量之间的关系。在Matplotlib中,可以使用scatter()函数来绘制散点图。
scatter()函数的基本语法如下:
plt.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
参数说明:
-
x:表示散点图中各个点的横坐标,可以是一个数组或者列表。
-
y:表示散点图中各个点的纵坐标,可以是一个数组或者列表。
-
s:点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小。
-
c:点的颜色,默认蓝色 ‘b’,也可以是个 RGB 或 RGBA 二维行数组。
-
marker:点的样式,默认小圆圈 ‘o’。
-
cmap:Colormap,默认 None,标量或者是一个 colormap 的名字,只有 c 是一个浮点数数组的时才使用。如果没有申明就是 image.cmap。
-
norm:Normalize,默认 None,数据亮度在 0-1 之间,只有 c 是一个浮点数的数组的时才使用。
-
vmin,vmax::亮度设置,在 norm 参数存在时会忽略。
-
alpha::透明度设置,0-1 之间,默认 None,即不透明。
-
linewidths::标记点的长度。
-
edgecolors::颜色或颜色序列,默认为 ‘face’,可选值有 ‘face’, ‘none’, None。
-
plotnonfinite::布尔值,设置是否使用非限定的 c ( inf, -inf 或 nan) 绘制点。
-
**kwargs::其他参数。
以下散点图演示了如何使用 Matplotlib 创建一个基本的散点图:
import matplotlib.pyplot as pltimport numpy as np# 生成随机数据np.random.seed(0)x = np.random.rand(50)y = np.random.rand(50)# 绘制散点图plt.scatter(x, y)# 设置和坐标轴标签plt.title('Simple Scatter Plot')plt.xlabel('X')plt.ylabel('Y')# 显示图形plt.show()
使用随机数生成了50个横坐标 x 和纵坐标 y。然后,使用 scatter() 函数绘制了散点图,其中 x 和 y 分别表示散点图中各个点的横坐标和纵坐标。
我们还设置了和坐标轴标签,分别使用 title() 和 xlabel()、ylabel() 函数。
最后,通过 show() 函数显示图形。
设置散点图的大小,可以使用scatter()函数的s参数来指定点的大小。该参数可以接受一个标量值或一个数组,用于指定每个点的大小。
以下是设置散点图大小的示例代码:
import matplotlib.pyplot as pltimport numpy as np# 生成随机数据np.random.seed(0)x = np.random.rand(50)y = np.random.rand(50)sizes = np.random.randint(10, 100, 50)# 设置散点图大小plt.scatter(x, y, s=sizes)# 设置和坐标轴标签plt.title('Scatter Plot')plt.xlabel('X')plt.ylabel('Y')# 显示图形plt.show()
使用sizes数组来指定每个点的大小。sizes数组的长度与数据点的个数相同,对应每个数据点的大小。
自定义散点图中点的颜色,可以使用scatter()函数的c参数来指定颜色。该参数可以接受一个标量值或一个数组,用于指定每个点的颜色。
以下是自定义散点图点的颜色的示例代码:
import matplotlib.pyplot as pltimport numpy as np# 生成随机数据np.random.seed(0)x = np.random.rand(50)y = np.random.rand(50)colors = np.random.rand(50)# 自定义散点图颜色plt.scatter(x, y, c=colors)# 设置和坐标轴标签plt.title('Scatter Plot')plt.xlabel('X')plt.ylabel('Y')# 显示图形plt.show()
使用colors数组来指定每个点的颜色。colors数组的长度与数据点的个数相同,对应每个数据点的颜色。
可以使用不同的方式来指定颜色,例如:
- 使用预定义的颜色名称,如’red’、‘blue’、'green’等。
- 使用RGB元组指定颜色,如(0.1, 0.2, 0.3),表示红色、绿色和蓝色的强度。
- 使用16进制字符串指定颜色,如’#FF0000’表示纯红色。
plt.scatter(x, y, c='red')
要设置两组散点图,可以使用两次scatter()函数来绘制不同的数据点,并可以分别指定它们的颜色、大小等属性。
以下是设置两组散点图的示例代码:
import matplotlib.pyplot as pltimport numpy as np# 生成随机数据np.random.seed(0)x1 = np.random.rand(50)y1 = np.random.rand(50)x2 = np.random.rand(50)y2 = np.random.rand(50)# 设置散点图1的属性plt.scatter(x1, y1, c='red', label='Group 1', alpha=0.5)# 设置散点图2的属性plt.scatter(x2, y2, c='blue', label='Group 2', alpha=0.5)# 设置和坐标轴标签plt.title('Scatter Plot')plt.xlabel('X')plt.ylabel('Y')# 显示图例plt.legend()# 显示图形plt.show()
在上面的代码中,我们生成了两组随机的横坐标和纵坐标数据,分别用x1、y1和x2、y2表示。然后使用两次scatter()函数分别绘制了两组散点图。第一组使用红色(c=‘red’)表示,第二组使用蓝色(c=‘blue’)表示。我们还通过label参数为每组散点图指定了标签,以便在图例中显示。通过设置alpha参数来调整散点的透明度,增强可视效果。
最后,我们设置了和坐标轴标签,并通过legend()函数显示图例,以区分两组散点图。
import matplotlib.pyplot as pltimport numpy as np# 生成随机数据np.random.seed(0)x = np.random.rand(100)y = np.random.rand(100)colors = np.random.rand(100)sizes = np.random.randint(10, 100, 100)# 绘制散点图plt.scatter(x, y, c=colors, s=sizes, alpha=0.7)# 设置和坐标轴标签plt.title('Scatter Plot with Random Data')plt.xlabel('X')plt.ylabel('Y')# 显示图形plt.show()
我们使用随机数生成了100个横坐标 x 和纵坐标 y,以及每个点的颜色 colors 和大小 sizes。其中,colors 是一个由随机数生成的数组,用于指定每个点的颜色,而 sizes 是一个由随机数生成的整数数组,用于指定每个点的大小。
然后,我们使用 scatter() 函数绘制散点图,其中 c 参数用于指定颜色,s 参数用于指定大小。通过设置 alpha 参数,可以调整点的透明度。
如果要显示颜色条,需要使用 plt.colorbar() 方法:
import matplotlib.pyplot as pltimport numpy as np# 生成随机数据np.random.seed(0)x = np.random.rand(100)y = np.random.rand(100)colors = np.random.rand(100)sizes = np.random.randint(10, 100, 100)# 绘制散点图plt.scatter(x, y, c=colors, s=sizes, alpha=0.7)# 设置和坐标轴标签plt.title('Scatter Plot with Random Data')plt.xlabel('X')plt.ylabel('Y')# 显示颜色条plt.colorbar()# 显示图形plt.show()
换个颜色条参数, 设置为 cmap=‘plasma’:
import matplotlib.pyplot as pltimport numpy as np# 生成随机数据np.random.seed(0)x = np.random.rand(100)y = np.random.rand(100)colors = np.random.rand(100)sizes = np.random.randint(10, 100, 100)# 绘制散点图plt.scatter(x, y, c=colors,cmap='plasma', s=sizes, alpha=0.7)# 设置和坐标轴标签plt.title('Scatter Plot with Random Data')plt.xlabel('X')plt.ylabel('Y')# 显示颜色条plt.colorbar()# 显示图形plt.show()
除了’plasma’颜色条之外,Matplotlib还提供了许多其他的内置颜色条供选择。以下是一些常用的内置颜色条:
‘viridis’ | ‘afmhot_r’ |
‘inferno’ | ‘magma’ |
‘jet’ | ‘hot’ |
‘cool’ | ‘spring’ |
‘summer’ | ‘autumn’ |
‘winter’ | ‘gray’ |
‘bone’ | ‘copper’ |
‘pink’ | ‘YlOrRd’ |
‘BuPu’ | ‘GnBu’ |
‘OrRd’ |
你可以在Matplotlib的官方文档中查看完整的颜色条列表:https://matplotlib.org/stable/tutorials/colors/colormaps.html
📢文章下方有交流学习区!一起学习进步!💪💪💪
📢首发CSDN博客,创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒
📢你的支持和鼓励是我创作的动力❗❗❗