2016-12-28 2 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() 
Смежные вопросы