我想要一个值超过特定阈值的散点图具有另一种颜色,然后在阈值内的散点图
到目前为止我写的是:
import numpy as np
import numpy.random as rnd
import matplotlib.pyplot as plt
n = 100
x = rnd.uniform(low = -1, high = 1, size = n)
y = rnd.uniform(low = -1, high = 1, size = n)
a = x**2 + y**2
c = np.zeros(n)
for i in range(n):
if a[i] <= 1:
c[i] = 0
else:
c[i] = 1
plt.scatter(x,y, color = c)
plt.show()
的输出是一个完全黑色的散点图。
c = array([ 0., 0., 0., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0.,
1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1.,
0., 0., 0., 0., 0., 1., 1., 1., 1., 0., 0., 0., 0.,
0., 1., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 1., 0., 0., 1., 0., 0., 0., 0., 0.,
1., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 1., 1., 0., 0., 1., 1., 1.])
我试了如下:
for i in range(n):
if a[i] <= 1:
c[i] = "r"
else:
c[i] = "g"
ValueError: could not convert string to float: r
和主题的其他几个变体。然而,我被困住了。请帮忙,非常感谢你的时间。
祝福
将c定义为整数,如下所示:
c = np.zeros(n)
但是在第二个代码片段中,您试图将c设置为字符串。
c[i] = "r"
为您的字符串数组选择一个新名称:
cs = []
for i in range(n):
if a[i] <= 1:
cs.append("r")
else:
cs.append("g")
如果scatter抱怨c不是来自numpy,你可以设置一个numpy字符:numpy.chararray.