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

2024-05-14 09:16:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个值列表(例如[1,39,-10,2,-5,41])。我喜欢用python matplotlib来绘制,所有的正点都是绿色的,负的点是红色的。我对stackoverflow的答案很失望,但大多数答案我都无法理解(因为我不是一个普通的python用户)。大多数答案都建议使用分散法。我不知道如何在scatter中使用c和cmap参数。有人能给我一个简单的方法来实现它,并提供一些基本的细节。在

请原谅我的问题。在


Tags: 方法答案用户列表参数matplotlib绘制stackoverflow
2条回答

将点列表分为正负两个列表,并用不同的颜色绘制:

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()

您可以使用scatter方法的colour属性,例如,如果您希望有一个特定大小(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

相关问题 更多 >

    热门问题