基于pandas DataFrame按flag列设置散点图点颜色的实现方法
按flag列设置散点图颜色的简便方法
完全不用逐行检查哦!这里有两种超直观的简便方案,看你习惯用哪种工具:
方案1:Matplotlib + Pandas原生操作
直接把flag列映射成对应的颜色,然后传给散点图的c参数就行,全程不用循环遍历:
import pandas as pd import matplotlib.pyplot as plt # 构造你的DataFrame df = pd.DataFrame({ 'col1': [1, 2, 3], 'value': [0, 0.03915, 0.13], 'flag': [0, 0, 1] }) # 把flag值映射为对应颜色 color_map = {0: 'blue', 1: 'red'} point_colors = df['flag'].map(color_map) # 绘制散点图 plt.scatter(df['col1'], df['value'], c=point_colors) plt.xlabel('col1') plt.ylabel('value') plt.show()
方案2:用Seaborn(更简洁省心)
Seaborn的散点图直接支持按列分组设置颜色,一行核心代码就能搞定,还能自动生成对应图例:
import pandas as pd import seaborn as sns df = pd.DataFrame({ 'col1': [1, 2, 3], 'value': [0, 0.03915, 0.13], 'flag': [0, 0, 1] }) # 用hue参数指定按flag列区分颜色,palette自定义颜色映射 sns.scatterplot(data=df, x='col1', y='value', hue='flag', palette={0:'blue', 1:'red'}) plt.show()
这两种方法都利用了数据映射的特性,既简洁又高效,完全不用手动逐行判断flag值~
内容的提问来源于stack exchange,提问作者Teodorico Levoff
相关产品推荐
相关产品推荐

