Python中如何在同一张图中为特定数据设置不同颜色绘图?
解决方法
你可以通过拆分数据组或者逐个判断绘制两种方式实现需求,以下是具体代码示例:
方法1:拆分数据组(高效简洁)
先把数据按布尔值分成两组,分别提取对应坐标后绘制:
import matplotlib.pyplot as plt # 示例数据 data = [[1, 2, True], [3, 4, False], [5, 6, True], [7, 8, False], [9, 1, False]] # 按布尔值拆分x、y坐标 true_x = [p[0] for p in data if p[2]] true_y = [p[1] for p in data if p[2]] false_x = [p[0] for p in data if not p[2]] false_y = [p[1] for p in data if not p[2]] # 分别绘制两组数据 plt.scatter(true_x, true_y, color='blue') # True数据用蓝色 plt.scatter(false_x, false_y, color='red') # False数据用红色 # 添加坐标轴标签(可选) plt.xlabel('X轴') plt.ylabel('Y轴') plt.show()
方法2:逐个判断绘制(直观易懂)
遍历每个数据点,根据布尔值动态指定颜色后绘制:
import matplotlib.pyplot as plt data = [[1, 2, True], [3, 4, False], [5, 6, True], [7, 8, False], [9, 1, False]] for point in data: x, y, is_true = point # 根据布尔值选择颜色 plot_color = 'blue' if is_true else 'red' plt.scatter(x, y, color=plot_color) plt.xlabel('X轴') plt.ylabel('Y轴') plt.show()
两种方法都能实现需求:方法1适合数据量较大的场景,执行效率更高;方法2逻辑更直观,适合调试或数据量较小的情况。
内容的提问来源于stack exchange,提问作者Vikih
相关产品推荐
相关产品推荐

