我只是重用了一些以前有效的旧源代码,但不再出现错误消息:
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
检查了我的旧笔记本电脑,得到了想要的结果:
我还尝试按如下方式修改绘图语句
plt.scatter(X[40:60, 0], X[40:60, 1], c = None, marker='s', s=100, edgecolor = 'black')
,但得到的结果是图中填充的方框:
谢谢露丝C。这样就解决了。同样有趣的是,颜色不区分大小写:
c="none"
、c="None"
、c="NONE"
等都可以。