需要在 Matplotlib 中绘制两种不同颜色的数据



我有一些数据,例如:

x = [0,1,0,0,0,1,0,.....]
w = [5,3,3.4,5,3,5,.....]
y = [1,1,0,1,0,0,0,.....]

我需要绘制(x,w),这个点的颜色应该由y决定,比如如果我有x = 1y = 1w = 3,那么这个点应该是color1的。如果我有x = 1y = 0,那么它应该是color2color3 x = 0y = 1color4 x = 0y = 0

我已经尝试了一些其他语句,但无法使其工作。

我的代码是:

def plot(x,y,w):
    for (a,b) in zip(x,y):
        if (a,b)==(0,0):
            plt.plot(x,w,'ro')

我想为不同的(x,y)值获得不同的色点。

您可以使用散点图:

import numpy as np
colors = 2 * np.array(x) + np.array(y)
plt.scatter(x,w, c = colors)

这会自动为您选择颜色,如果您想使用自定义颜色,您可以执行以下操作:

import numpy as np
import matplotlib.pyplot as plt
colors = 2 * np.array(x) + np.array(y)
plt.scatter(x,w, c = colors)

如果你想连接这些点,你可以做:

import numpy as np
import matplotlib.pyplot as plt
colorNames = np.array(['red', 'blue', ...])
colors = 2 * np.array(x) + np.array(y)
plt.scatter(x,w, c = colorNames[colors])
plt.plot(x,w)

我在这里认为 x 和 y 的 0 和 1 序列是 2 位颜色的编码

最新更新