python - 如何使用 matplotlib 绘制字节数据列表

标签 python list numpy matplotlib arrays

我从 telnet 机器上读取了一堆数据...它是 x, y 数据,但它只是以逗号分隔,如 x1,y1,x2,y2,x3,y3,。 ..

这是一个示例:

In[28] data[1:500]
Out[28]  b'3.00000000E+007,-5.26880000E+001,+3.09700000E+007,-5.75940000E+001,+3.19400000E+007,-5.56250000E+001,+3.29100000E+007,-5.69380000E+001,+3.38800000E+007,-5.40630000E+001,+3.48500000E+007,-5.36560000E+001,+3.58200000E+007,-5.67190000E+001,+3.67900000E+007,-5.51720000E+001,+3.77600000E+007,-5.99840000E+001,+3.87300000E+007,-5.58910000E+001,+3.97000000E+007,-5.35160000E+001,+4.06700000E+007,-5.48130000E+001,+4.16400000E+007,-5.52810000E+001,+4.26100000E+007,-5.64690000E+001,+4.35800000E+007,-5.3938'

我想用 matplot 库将其绘制为折线图。我已经尝试使用 struct 包将其转换为 double 列表而不是字节列表,但我遇到了很多问题......然后是如何处理科学记数法的问题...我显然想保留它试图传达的重要性,但我不能只是通过天真地将字节编码交换为双重编码的含义来做到这一点。

我正在尝试我通常会用 C 尝试的各种事情,但我忍不住认为用 Python 有更好的方法!

我想我需要将 x'sy's 放入一个 numpy 数组中,并且这样做不会丢失任何指数符号...

有什么想法吗?

最佳答案

首先将您的数据转换为数字,例如:

data = b'3.00000000E+007,-5.26880000E+001,+3.09700000E+007,-5.75940000E+001'
numbers = map(float, data.split(','))

现在对数组进行切片以分别获取 x 和 y 数据并使用 matplotlib 绘制它

x = numbers[::2]
y = numbers[1::2]

import matplotlib.pyplot as plt
plt.plot(x, y)
plt.show()

关于python - 如何使用 matplotlib 绘制字节数据列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38753205/

相关文章:

c# - 在单个 session 中存储和检索多个值

python - numpy 中结构化数组的 ndim?

python - ValueError : could not broadcast input array from shape (20, 590) 变成形状 (20)

python - 在运算符(operator)之外访问 Airflow 默认变量

python - PyQt QTableView 设置水平和垂直标题标签

python - 使用 matplotlib 在 python 中绘制 OHLC 图表

python - 获取两个 numpy 数组之间更改数据的索引

java - 如何集成不同编程语言编写的程序?

python - 在 Python 中合并时间戳列表

python - 存储 2D 数据的最佳方式是什么