[英]Setting Colors For Positive and Negative Values in Scatter Plot with Matplotlib with 2 Custom Colors
對於 Matplotlib 中的散點圖,我想以綠色顯示正 (y) 值,以紅色顯示負 (y) 值。 如果我設置值 z>0,並將其放入 (c) 的參數中,默認情況下它確實為我提供了 2 種不同顏色的正值和負值。 但我想將這些顏色更改為我選擇的綠色為正,紅色為負。 我怎樣才能做到這一點?
x = [4, 5, 11, 15]
y = [17, -14, 13, -19]
z = y > 0
plt.scatter(x, y, c=z)
plt.show()
您可以重新排列數據並拆分為正值和負值。 作為此答案的一部分,我建議您使用np.array
而不是使用np.array
list
因為在這種情況下使用索引要容易得多
import numpy as np
# data
x = np.array([ 4, 5, 11, 15 ])
y = np.array([ 17, -14, 13, -19 ])
z = 0
valid_pos = [] # preallocate appending variable
valid_neg = []
for i in range(0, x.shape[0]): # 0 for number of lines, 1 for number of columns
if y[i] >= z:
valid_pos.append(i)
elif y[i] < z:
valid_neg.append(i)
x_pos = x[valid_pos] # rearrange your data
y_pos = y[valid_pos]
x_neg = x[valid_neg]
y_neg = y[valid_neg]
# plotting figure
plt.figure()
plt.scatter(x_pos, y_pos, c='g')
plt.scatter(x_neg, y_neg, c='r')
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.