2016-12-28 30 views
2

我有一個值列表(例如[1,39,-10,2,-5,41])。我喜歡在python matplotlib中繪製這個圖,所有正面點都是綠色,而負面點是紅色。我在stackoverflow的答案中厭倦了我的運氣,但是其中大部分我都無法理解(因爲我不是普通的python用戶)。大多數答案都建議使用分散方法。我沒有得到如何在散點圖中使用c和cmap參數。有人可以建議我一個簡單的方法來實現它,有一些基本的細節水平。根據一些標準更改繪圖顏色

請原諒noobs問題。

回答

1

可以使用scatter方法的顏色屬性,例如,如果你想有一個黑/白點與線連接起來的具有一定規模(20):

import numpy as np 
import matplotlib.pyplot as plt 

y = np.array([1 , 39, -10, 2, -5, 41]) 
x = np.array([1, 2, 3, 4, 5, 6]) 
b = y>0 

plt.scatter(x, y, c=b, s=20) 
plt.gray() 
plt.plot(x, y) 
plt.show() 

enter image description here

+0

感謝上校,爲您解答。我只是問是否可以用線連接它們。我的意思是一個線圖 – NMN

+0

我相應地更新了答案。 –

+0

太好了,非常感謝。 – NMN

1

將點列表分成陰性和陽性列表,並繪製不同顏色的相同圖案:

import matplotlib 
import numpy as np 
from matplotlib import pyplot as plt 

y = [1, 39, -10, 2, -5, 41, 4, -2, 6, 7, -15, -13, -20] 
neg_y = [] 
pos_y = [] 

for item in y: 
    if item >= 0: 
     pos_y.append(item) 
    else: 
     neg_y.append(item) 

plt.scatter(range(len(pos_y)), pos_y, color='g') 
plt.scatter(range(len(neg_y)), neg_y, color='r') 
plt.show()