You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

散点图无归一化调整最大值及数值显示状态咨询

散点图数值显示说明

你的代码里:

  • X轴(r12_load_MW)和Y轴(dda201FrequencyHz)都是原始数值,完全对应数据框里的原始值,没有做归一化处理。
  • 控制散点颜色的dda201Amplitude会按vmin=0和vmax=1的规则映射:
    • 0到1之间的数值按比例对应rainbow色阶的中间颜色
    • ≤0的数值统一用色阶最左端的颜色(蓝色)
    • 所有>1的数值会被截断为1,统一用色阶最右端的颜色(红色)
  • 右侧的颜色条(colorbar)只显示0到1的区间,不会体现原始数据中>1的数值的实际大小

另外你原本需求是“把大于阈值1的数值设为红色”,当前代码已经实现了这个效果,但如果原始数据里有远大于1的振幅值,这些点的颜色无法区分差异,全是同一种红色。如果想要颜色条能提示有超出范围的值,同时保持超阈值点为红色,可以修改代码如下:

# 复制振幅数据用于颜色映射
color_vals = set1["dda201Amplitude"].copy()
# 把大于1的数值标记为1.1(只要大于vmax即可)
color_vals[color_vals > 1] = 1.1

points = plt.scatter(
    set1["r12_load_MW"],
    set1["dda201FrequencyHz"],
    c=color_vals,
    s=20,
    cmap="rainbow",
    alpha=1,
    vmin=0,
    vmax=1
)
# 设置颜色映射范围,超出vmax的部分用红色
points.set_clim(vmin=0, vmax=1)
points.cmap.set_over('red')

# 后续绘图代码不变
plt.rcParams["figure.figsize"] = [20.5, 10.5]
plt.title("Sensor: run2_dda2_201")
plt.xlim(-50, 420)
plt.ylim(0, 420)
plt.xlabel("r12_load_MW")
plt.ylabel("dda201FrequencyHz")
# 颜色条添加超出标记
cbar = plt.colorbar(points, extend='max')
cbar.set_label("dda201Amplitude")
plt.rcParams.update({"font.size": 20})

内容的提问来源于stack exchange,提问作者Paulina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 10:02:44