我有一些数据,例如:
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
。
我尝试了一些if else语句,但无法使其生效。
我的代码是:
def plot(x,y,w):
for (a,b) in zip(x,y):
if (a,b)==(0,0):
plt.plot(x,w,'ro')
我想针对不同的(x,y)
值获得不同的色点。
答案 0 :(得分:0)
您可以使用散点图:
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位颜色的编码