Matplotlib 不再接受 c='' 作为散点图中的透明填充颜色

问题描述 投票:0回答:1

我只是重用了一些以前有效的旧源代码,但不再出现错误消息:

ValueError: 'c' argument must be a color, a sequence of colors, or a sequence of numbers, not ''
。我正在使用来自两个不同类的数据创建散点图,并突出显示一些数据(具有两个类并显示测试数据的 ML 示例)。当前版本:
Python 3.12.5, numpy 2.1.1 and matplotlib 3.9.2

最小代码示例:

import matplotlib.pyplot as plt
import numpy as np

X = np.random.randint(1, 26, size=(100, 2))

plt.figure(1)
plt.scatter(X[0:50, 0], X[0:50, 1], c = 'blue', marker='+', s=100)
plt.scatter(X[50:100, 0], X[50:100, 1], c = 'red', marker='+', s=100)
plt.scatter(X[40:60, 0], X[40:60, 1], c = '', marker='s', s=100, edgecolor = 'black')
plt.show()

我用

Python 3.7.4, numpy 1.21.6 and matplotlib 3.3.0
检查了我的旧笔记本电脑,得到了想要的结果: Desired result with old versions

我还尝试按如下方式修改绘图语句

plt.scatter(X[40:60, 0], X[40:60, 1], c = None, marker='s', s=100, edgecolor = 'black')
,但得到的结果是图中填充的方框: Undesired result with new version and None

python matplotlib colors version
1个回答
0
投票

谢谢露丝C。这样就解决了。同样有趣的是,颜色不区分大小写:

c="none"
c="None"
c="NONE"
等都可以。

© www.soinside.com 2019 - 2024. All rights reserved.