根据某些标准更改绘图颜色

时间:2016-12-28 09:28:22

标签: python numpy matplotlib

我有一个值列表(例如[1,39,-10,2,-5,41])。我想在python matplotlib中绘制这个,其中所有正点都是绿色,负点是红色。我厌倦了stackoverflow的答案,但其中大多数我都无法理解(因为我不是常规的python用户)。大多数答案建议使用散射方法。我没有得到如何在散点图中使用c和cmap参数。有人可以建议我一个简单的方法来实现它,并提供一些基本的细节。

请原谅noob问题。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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()