所以我有这个文本文件,我试图绘制。它有5列模拟数据,我试图将每列从2 - 5绘制到第1列。
ValueError: could not convert string to float:
返回
float:left
无论如何我可以解决这个问题吗?
谢谢
答案 0 :(得分:3)
import matplotlib.pyplot as plt
import numpy as np
with open('SampleData.txt') as f:
data = f.read()
data = data.split('\n')
x = [float(row.split(' ')[0]) for row in data]
y = [float(row.split(' ')[1]) for row in data]
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x,y)
ax.legend()
plt.show()
这似乎是一种类型强制问题。如果有帮助,请告诉我。
答案 1 :(得分:2)
您从文本文件中获取的数据类型为字符串。也就是说,在绘制它之前,首先需要将其转换为 float 类型。它可以通过 float()轻松完成。
x = [float(row.split(' ')[0]) for row in data]
y = [float(row.split(' ')[1]) for row in data]
确保输入数据的格式对于 float()是合法的。
对于ValueError: could not convert string to float:
,它取决于您的文本文件。可能存在一些未格式化的数据,这些数据无法直接转换为 float 类型。
答案 2 :(得分:0)
在使用add_subplot
之前,尝试将您的拆分打印为整数