基于Python散点图可视化如何给特定区间变量自动打标签?
Python实现散点变量区间自动打标方案
核心思路为预先定义标签和数值区间的映射规则,批量匹配散点对应的变量值自动打标,无需手动逐个操作,既可以输出你需要的格式化表格,也可以直接绑定到散点图上自动添加标注。
- 基础实现代码(直接输出要求的格式)
# 1. 自定义标签区间规则,可根据实际业务需求调整阈值条件 def get_label(var1, var2): if var1 < 5 and var2 < 100: return "low" elif var1 > 6 and var2 > 150: return "high" elif var1 == 5 and var2 == 40: return "undervalued" # 可补充更多自定义规则 else: return "other" # 2. 替换为你实际的散点对应变量数据集 point_vars = [ (3,65), (3,40), (7,180), # 其余散点变量 (5,40) ] # 3. 格式化输出结果 print(f"{'var':<6}| label") print("-"*13) for v1, v2 in point_vars: label = get_label(v1, v2) print(f"{v1} {v2:<4}| {label}")
- 大数据量可选pandas批量处理方案
import pandas as pd # 替换为实际的散点变量数据 df = pd.DataFrame(point_vars, columns=["var1", "var2"]) # 批量生成标签 df["label"] = df.apply(lambda x: get_label(x["var1"], x["var2"]), axis=1) # 输出目标格式 print(f"{'var':<6}| label") print("-"*13) for _, row in df.iterrows(): print(f"{row['var1']} {row['var2']:<4}| {row['label']}")
- 若需要在散点图上自动添加标签,补充如下绘图代码即可
import matplotlib.pyplot as plt x = [v[0] for v in point_vars] y = [v[1] for v in point_vars] labels = [get_label(v[0], v[1]) for v in point_vars] # 绘制散点 plt.scatter(x, y) # 自动为每个点添加标签,无需手动设置 for xi, yi, label in zip(x, y, labels): plt.text(xi, yi, label, fontsize=9) plt.show()
内容的提问来源于stack exchange,提问作者talgamdy
相关产品推荐
相关产品推荐

