我有一些数据,例如:
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 = 1
、y = 1
和w = 3
,那么这个点应该是color1
的。如果我有x = 1
,y = 0
,那么它应该是color2
和color3
x = 0
,y = 1
,color4
x = 0
,y = 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 位颜色的编码