将数字序列的文件转换为两列数组/列表,然后绘制

时间:2018-03-28 12:08:22

标签: python numpy matplotlib number-sequence

我有一个文本文件(test.txt),它只有一些数字序列,例如      2,5,6,9,3,1,3,5,5,6,7,8等 我的主要目标是在X轴上绘制奇数放置的数字,甚至在Y轴上放置数字。 为此我想,也许我可以先将它们存储在一个包含两列的列表/数组中,然后只绘制第一列与第二列。 我怎么能在python中做到这一点?

1 个答案:

答案 0 :(得分:0)

我假设您的data保存在myFile.csv中,如下所示:

2, 5, 6, 9, 3, 1, 3, 5, 5, 6, 7, 8
5, 6, 9, 3, 1, 3, 5, 5, 6, 7, 8, 8

您可以使用np.loadtxt将其加载到numpy数组中。如果您不希望将数据集划分为多行,则可以flatten

import numpy as np
from matplotlib import pyplot as plt

# load data
data = np.loadtxt('myFile.csv', dtype=int, delimiter=', ')
data = data.flatten() # if data was saved in multiple lines

您可以使用列表推导来分割数据。

# process data
x = [data[i] for i in range(len(data)) if i%2 == 0]
y = [data[i] for i in range(len(data)) if i%2 == 1]

然后绘制它。

# plot data
plt.plot(x, y, '.') # '.' only shows dots, no connected lines
plt.show()