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