Python中为布尔值散点图按0/1设置不同颜色的实现方法
实现按布尔值区分散点颜色的时间序列散点图
这很好解决!你只需要根据boolvalue列的数值为每个点分配对应颜色即可,下面给你两种实用的实现方法:
方法1:直接生成颜色列表
这种方式最直观,我们遍历boolvalue的每个值,为1指定蓝色(blue),为0指定红色(red),再把这个颜色列表传给scatter的c参数:
import matplotlib.pyplot as plt import pandas as pd # 假设你的DataFrame已准备完成 # 生成与数据对应的颜色列表 point_colors = ['blue' if val == 1 else 'red' for val in df['boolvalue']] # 绘制散点图 plt.scatter(df.index, df['boolvalue'], s=5, c=point_colors) plt.ylim([-2, 2]) plt.show()
方法2:使用颜色映射(Colormap)
如果你想附带颜色条来清晰区分0和1的对应颜色,可以用matplotlib的内置颜色映射(比如bwr蓝-白-红),同时设置颜色值的范围vmin=0和vmax=1:
import matplotlib.pyplot as plt import pandas as pd plt.scatter(df.index, df['boolvalue'], s=5, c=df['boolvalue'], cmap='bwr', vmin=0, vmax=1) plt.ylim([-2, 2]) # 添加颜色条并标注刻度说明 plt.colorbar(ticks=[0, 1], label='Bool Value') plt.show()
两种方法都能完美适配你的时间序列索引,matplotlib会自动处理时间轴的显示逻辑~
内容的提问来源于stack exchange,提问作者Chi
相关产品推荐
相关产品推荐

