如何用Numpy和Matplotlib在2D散点图中展示三组数据?
用Numpy和Matplotlib绘制多组数据的2D散点图
你遇到的两个核心问题
- 数组维度不匹配:第一段代码里
z数组的长度和x、y不一致,Matplotlib绘制散点图要求每组的x、y数据必须等长,否则会直接抛出维度错误。 - Numpy数组创建语法错误:第二段代码用
np.array[]是错误写法,正确语法应为np.array(),方括号会触发语法报错,导致代码无法运行。
正确实现代码
下面是可直接运行的代码,能画出三组数据的2D散点图,每组用不同颜色和标记区分,便于识别:
import numpy as np import matplotlib.pyplot as plt # 准备三组长度一致的样本数据 # 第一组数据 x1 = np.array([1, 2, 3, 4, 5]) y1 = np.array([2, 4, 6, 8, 10]) # 第二组数据 x2 = np.array([1, 2, 3, 4, 5]) y2 = np.array([1, 3, 5, 7, 9]) # 第三组数据 x3 = np.array([1, 2, 3, 4, 5]) y3 = np.array([3, 6, 9, 12, 15]) # 设置画布大小 plt.figure(figsize=(8, 6)) # 分别绘制三组散点,自定义样式 plt.scatter(x1, y1, color='#ff4444', marker='o', label='Group 1') plt.scatter(x2, y2, color='#33b5e5', marker='s', label='Group 2') plt.scatter(x3, y3, color='#99cc00', marker='^', label='Group 3') # 添加图表元素 plt.title('Three Groups Scatter Plot') plt.xlabel('X Values') plt.ylabel('Y Values') # 显示图例 plt.legend() # 展示图表 plt.show()
关键注意点
- 每组数据的
x和y必须长度相同,不管是手动定义还是用Numpy生成随机数,都要保证维度匹配。 - 创建Numpy数组时必须用
np.array(),内部元素用方括号包裹,比如np.array([1,2,3])是正确写法。 - 可通过
color、marker、label参数区分不同组数据,提升图表可读性。
内容的提问来源于stack exchange,提问作者KAVSHEKAA V CSBS
相关产品推荐
相关产品推荐

