Укажите цвет в зависимости от значения домена, используя переменную цвета, которая затем отправляется команде plt.plot ():
if d["domain"][i] == 2:
color = "b"
elif d["domain"][i] == 3:
color = "r"
И окончательный код становится:
import matplotlib.pyplot as plt
d = {
"selected_peaks": [487, 537, 181, 139],
"timeStep": [24250000.0, 26750000.0, 9000000.0, 6900000.0],
"F": [868.7655, 713.4191, 584.4315, 698.3004],
"domain": [2, 2, 3, 3],
}
for i in range(len(d["selected_peaks"])):
if d["domain"][i] == 2:
color = "b"
elif d["domain"][i] == 3:
color = "r"
plt.plot(
d["timeStep"][i],
d["F"][i],
"o",
color=color,
label="domain " + str(d["domain"][i]),
)
plt.legend()