使用多个试验导入csv数据并创建散点图

时间:2017-09-21 15:30:35

标签: python csv

所以,对不起,如果有任何误解,我几乎没有经验编码。 我有一个包含30个数据集的csv文件,每个数据集包含5个有序值。我需要创建一个散点图,其x轴为1-5(值的顺序)与每个数据集中的值(每个x值的三十个y值)。我一直在尝试使用提供的一些示例代码,但我实际上并没有得到任何代码(示例代码用于与我们的代码不相似的不同数据集)并且我不知道还有什么其他选择。

要导入数据,我有:

data = np.loadtxt('(omitted).csv',delimiter=',',skiprows=1+2, usecols=range(1,6))

尝试从csv文件加载数据。使用excel格式,我需要省略第1行和第2行,以及列A,以便它只加载原始数据。如果我打印(数据),它似乎正确显示。

示例代码中的下一步是标记列(在示例中它们是距离,时间等)。现在,我已将每列标记为其顺序:

throwone = data[:,0];
throwtwo = data[:,1];
throwthree = data[:,2];
throwfour = data[:,3];
throwfive = data[:,4];

此时,其余代码没有很好地解释或与我们的数据集相关。它使用matplotlib;一些无法解释的行是:

plt.figure(1)
plt.clf()

我很喜欢标记x和y轴,对轴进行限制,因为这些都是有意义的。我只是迷失了如何正确绘制数据,以便每个x值都具有所有30个相应的y值。

这是我到目前为止所做的一切:

#import modules
import numpy as np
import matplotlib.pyplot as plt

#load data
data = np.loadtxt('(omitted).csv',delimiter=',',skiprows=1+2, usecols=range(1,6))

#print(data)  #ensure data looks to be imported correctly
#label columns
throwone = data[:,0];
throwtwo = data[:,1];
throwthree = data[:,2];
throwfour = data[:,3];
throwfive = data[:,4];

plt.figure(1)
plt.clf()

plt.savefig('test.png')

现在测试显示为空白,我猜这意味着我必须做一些特定的事情才能将数据添加到情节中,但我对于该做什么感到很遗憾。

如果它有任何区别,我在Anaconda的spyder中使用python 3.6

1 个答案:

答案 0 :(得分:0)

plt用于创建图表。

首先需要定义一个情节。

首先在python中可能会让人感到困惑,因为matplotlib只是发出命令而不是将变量赋给任何东西。

对于散点图,如下所示

plt.scatter(x, y, alpha=0.5)

在保存大量文件之前进行测试,您可以使用

打印到屏幕
plt.show()

请在此处查看更多指导。

https://matplotlib.org/examples/shapes_and_collections/scatter_demo.html

以及更多细节:

https://plot.ly/matplotlib/scatter/

这里也是一个很棒的免费互动教程:

https://www.datacamp.com/community/tutorials/matplotlib-tutorial-python

至于为情节创建多个轴,请尝试:

y = [1, 2]
x = [throwone, throwfive, throwfour, throwthree, throwtwo]

for xn, yn in zip(x, y):
    plt.scatter([yn] * len(xn), xn)

plt.xticks([1, 2])
plt.axes().set_xticklabels(['Value1', 'Value2'])