簡體   English   中英

使用具有 2 種自定義顏色的 Matplotlib 在散點圖中設置正值和負值的顏色

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM