不同颜色的散点图

时间:2019-03-06 15:22:36

标签: python matplotlib

我是matplotlib的新手,正在尝试使用特定自定义变量的自定义颜色绘制此线性回归:

colors=['red','blue','green','black']
X=array([[1000],[2000],[3000],[4500]]
y=array([[200000],[200000],[200000],[200000]]

plt.scatter(X, y, color = colors[0])
plt.plot(X, lin_reg.predict(X), color = 'blue')
plt.xlabel('X')
plt.ylabel('y')
plt.show()

当X == 3000时,我需要将颜色设置为黑色,所以我在使用np.where:

colors_z=(np.where(X==3000,colors[4],colors[0]))
plt.scatter(X, y, color = colors_z)

但是我遇到颜色错误。任何想法我在做什么错?谢谢

2 个答案:

答案 0 :(得分:1)

我认为这可以满足您的需求;为此,使用ERROR: ERROR: column "movie_id" does not exist Hint: There is a column named "movie_id" in table "t_movie", but it cannot be referenced from this part of the query. Position: 58 有点矫kill过正:

np.where

答案 1 :(得分:1)

您已经将colors_z设置为包括颜色[4],但是列表颜色中只有4种颜色。 colors_z的索引应超出范围。我将转储np.where,转而使用简单的if语句或三元运算符。像这样:

# ternary operator example
plt.scatter(x, y, color = [colors[3] if x == 3000 else colors[0] for i in x])

请注意,这仅在x精确地等于== 3000时才有效,但不会在我的控制台上引发语法错误,因此它应该在您的回归中起作用。