我将plt_data作为np.array,具有三列x_value,y_value和color_value。
plt_data = np.array(plt_data) # [[0 16.70 0], [1 16.45 0], [2, 16.60 1]]
我在折线图上绘制散点图:
plt_data = np.array(plt_data)
colors = []
for data in plt_data:
colors.append(get_color(data[2]))
xs, ys = plt_data[:, 0], plt_data[:, 1]
plt.plot(xs, ys, c='black', alpha=0.5)
plt.scatter(xs, ys, c=colors, s=2)
plt.show()
我正在使用函数get_color
转换颜色:
def get_color(n):
if n == 0:
return [0, 0, 0, 0]
elif n == 1:
return [0, 255, 0, 1]
elif n == 2:
return [255, 0, 0, 1]
else:
return get_color(0)
在matplotlib documentation中,它表示我可以将c(颜色数组)指定为
一个二维数组,其中的行是RGB或RGBA。
下面是colors
等于。我将其传递给c
plt.scatter
[[0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0], ..., [0,0,0,0]]
当我尝试传递我的rgba颜色数组时,它不起作用,我得到以下错误:
c argument has 2239 elements, which is not acceptable for use with 'x' with size 2239, 'y' with size 2239.