Matplotlib在散点图中使用rgba值

时间:2019-12-12 18:46:02

标签: python matplotlib

我将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.

0 个答案:

没有答案