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

如何用Seaborn为散点图添加异色数据点或修改最后一个点颜色?

两种方案实现你要的散点图颜色修改需求

先看你的原代码(注意补充了缺失的matplotlib导入,否则代码会报错):

import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset("iris")
grid = sns.JointGrid(iris.petal_length, iris.petal_width, space=0, size=6, ratio=50)
grid.plot_joint(plt.scatter, color="g")

方案一:添加坐标为[3, 0.05]的红色数据点

只需要在原代码绘制完绿色散点后,单独用plt.scatter()绘制这个指定坐标的点,设置颜色为红色即可,还可以调整点的大小让它更显眼:

import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset("iris")
grid = sns.JointGrid(iris.petal_length, iris.petal_width, space=0, size=6, ratio=50)
grid.plot_joint(plt.scatter, color="g")
# 添加指定坐标的红色数据点
plt.scatter(3, 0.05, color='red', s=100)  # s参数控制点的大小,数值越大点越明显
grid.show()

方案二:将数据集中的最后一个点改为红色

我们可以把数据集拆成两部分:前149个点(保持绿色)和最后1个点(设为红色),分别绘制到JointGrid上:

import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset("iris")
grid = sns.JointGrid(iris.petal_length, iris.petal_width, space=0, size=6, ratio=50)
# 绘制前149个绿色点
grid.plot_joint(plt.scatter, color="g", data=iris.iloc[:-1])
# 绘制最后一个红色点
plt.scatter(iris.petal_length.iloc[-1], iris.petal_width.iloc[-1], color='red', s=100)
grid.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:10:54