gpt4 book ai didi

python - 当存在 NaN 时,matplotlib scatter 会改变颜色代码

转载 作者:太空宇宙 更新时间:2023-11-03 11:29:21 25 4
gpt4 key购买 nike

我想用给定的颜色代码绘制一些数据。例如:

x = np.array([0, 1, 2, 3])
b = np.array([1, 0, 2, 3])
colors = np.array(['g', 'r', 'b', 'y'])
plt.scatter(x, b**2, color=colors)

太好了,所有的点都出现了,每个点都有它的颜色。现在,缺少一些数据:

plt.figure()
plt.scatter(x, np.log10(b), color=colors)

问题来了:x=1 数据丢失 (log(0)=NaN),但是颜色跳过了这一点,x=2 点是红色,而不是蓝色。解决方案可以是:

y = np.log10(b)
mask = np.isfinite(y)
plt.scatter(x[mask], y[mask], color=colors[mask])

但我觉得这样做很不舒服...还有其他方法吗?

最佳答案

使用 c 而不是 color 解决了这个问题:

plt.scatter(x, np.log10(b), c=colors)

感谢 github 人员: https://github.com/matplotlib/matplotlib/issues/3489

C.

关于python - 当存在 NaN 时,matplotlib scatter 会改变颜色代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25734389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com