繁体   English   中英

Python我的散点图不起作用

[英]Python my scatter plot not working

我正在绘制浮点numpy数组的散点图(使用matplotlib )。 但是我得到了错误:

float()参数必须是字符串或数字。

下面是我的完整代码。 我想以两种不同的颜色绘制两个系列。

mu = 0
sigma1 = 1 # mean and standard deviation
x1_1 = np.random.normal(mu, sigma1, 10000)
x1_1 = np.sort(x1_1)

x2_1 = np.random.normal(mu,sigma1,10000)
x2_1 = np.sort(x2_1)

sigma2 = 4 # mean and standard deviation
x1_2 = np.random.normal(mu, sigma2, 10000)
x1_2 = np.sort(x1_2)

x2_2 = np.random.normal(mu, sigma2, 10000)
x2_2 = np.sort(x2_2)

x1 = []
x2 = []
y = 0
for i in xrange(0,10000):
  if y == 0:
    x1.append(x1_1[i])
    x2.append(x2_1[i])
    y = 1
  else:
    x1.append(x1_2[i])
    x2.append(x2_2[i])
    y = 0


x1_np = np.asarray(x1)
x2_np = np.asarray(x2)

print len(x1_np)
print len(x2_np)

x1_train = x1_np[0:500]
x2_train = x2_np[0:500]


x1_train_0 = set(x1_train).intersection(set(x1_1))
x1_train_1 = set(x1_train).intersection(set(x1_2))

x2_train_0 = set(x2_train).intersection(set(x2_1))
x2_train_1 = set(x2_train).intersection(set(x2_2))

print len(x1_train_0)
print len(x1_train_1)
print len(x2_train_0)
print len(x2_train_1)

x1_train_0 = np.asarray(x1_train_0)
x1_train_1 = np.asarray(x1_train_1)

x2_train_0 = np.asarray(x2_train_0)
x2_train_1 = np.asarray(x2_train_1)

plt.scatter(x1_train_0,x2_train_0,c = 'red')
plt.scatter(x1_train_1,x2_train_1,c = 'blue')
plt.show()

要将python集转换为numpy数组,应先将其转换为python列表

x1_train_0 = np.asarray(list(x1_train_0))
x1_train_1 = np.asarray(list(x1_train_1))

x2_train_0 = np.asarray(list(x2_train_0))
x2_train_1 = np.asarray(list(x2_train_1))

你可以写之后

x1_train_0 = np.asarray(x1_train_0)
x1_train_1 = np.asarray(x1_train_1)

x2_train_0 = np.asarray(x2_train_0)
x2_train_1 = np.asarray(x2_train_1)

这些行:

x1_train_0 = list(x1_train_0.all())
x1_train_1 = list(x1_train_1.all())

x2_train_0 = list(x2_train_0.all())
x2_train_1 = list(x2_train_1.all())

将numpy.ndarray转换为list。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM