我是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)
但是我遇到颜色错误。任何想法我在做什么错?谢谢
答案 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时才有效,但不会在我的控制台上引发语法错误,因此它应该在您的回归中起作用。