Matplotlib了解颜色值

2024-04-26 22:13:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现一段代码正在将一个1D Numpy数组传递给MatplotLib。数组的值为1或0,但绘制的图形的颜色为黄色或紫色。我找不到关于它的任何文件。你知道吗

代码如下:

import numpy as np
import matplotlib.pyplot as plt

num_observations = 5000

x1 = np.random.multivariate_normal([0, 0], [[1, .85],[.85, 1]], num_observations) # mean, covariance
x2 = np.random.multivariate_normal([1, 4], [[1, .85],[.85, 1]], num_observations)

features = np.vstack((x1, x2)).astype(np.float32)
labels = np.hstack((np.zeros(num_observations),np.ones(num_observations)))

plt.figure(figsize=(12,8))
plt.scatter(features[:, 0], features[:, 1],
        c = labels, alpha = .4)
plt.show()

enter image description here

有人能解释一下我们是怎么得到黄色和紫色的吗?相关文件也会有所帮助。你知道吗


Tags: 文件代码importasnppltrandom数组
1条回答
网友
1楼 · 发布于 2024-04-26 22:13:10

它使用默认的viridis颜色映射,因此紫色表示0,黄色表示1。有关颜色映射的更多信息,请参见此处:https://matplotlib.org/examples/color/colormaps_reference.html。你知道吗

在这里添加色条很有帮助。在示例中添加一个很简单:

import numpy as np
import matplotlib.pyplot as plt

num_observations = 5000

x1 = np.random.multivariate_normal([0, 0], [[1, .85],[.85, 1]], num_observations) # mean, covariance
x2 = np.random.multivariate_normal([1, 4], [[1, .85],[.85, 1]], num_observations)

features = np.vstack((x1, x2)).astype(np.float32)
labels = np.hstack((np.zeros(num_observations),np.ones(num_observations)))

plt.figure(figsize=(12,8))
p = plt.scatter(features[:, 0], features[:, 1],
        c = labels, alpha = .4)

plt.colorbar(p)

plt.show()

enter image description here

相关问题 更多 >