如何在python中获取csv数据

那敏

我已经编写了plot函数和主体部分,但是无法找出获取数据csv的必要代码。所以基本上我的代码是:

import random
import matplotlib.pyplot as plt 

def get_data_csv(fn, colx, coly, sep=','):


    return x_data, y_data, x_label, y_label

def plot_graphs(x_data, y_data, x_label, y_label, title, color=None):
    plt.figure()
    #if there are more than one graph to plot in the same figure, same x-axis
    if all(type(arg) == list for arg in [x_data, y_data, y_label]):
        lx = len(x_data)
        if lx > 1 and all(len(arg) == lx for arg in [y_data, y_label]):
            for i in range(lx):
                color = list(random.random() for c in range(3))
                plt.plot(x_data[i], y_data[i], color = color, label = y_label[i])
            plt.xlabel(x_label)
            plt.title(title)
            plt.legend()
        else:
            print('Something get wrong, review your arguments')
    # if there is only one graph to plot
    else:
        plt.plot(x_data, y_data, color=color)
        plt.ylabel(y_label)
        plt.xlabel(x_label)
        plt.title(title)
        plt.xlim([min(x_data), max(x_data)])
    plt.grid('all')
    plt.show()
    
if __name__ == "__main__":
    user_fn = input("Enter CSV filename(s), separated by ',': ")
    user_colx = input("Enter respective x-column(s), separated by ',': ")
    user_coly = input("Enter respective y-column(s), separated by ',': ")
    user_title = input("Enter title: ")
    fn = user_fn.split(',')
    colx = list(int(c) for c in user_colx.split(','))
    coly = list(int(c) for c in user_coly.split(','))
    if len(fn) == 1:
        fn = fn[0]
        x_data, y_data, x_label, y_label = get_data_csv(fn, colx[0], coly[0])
    else:
        x_data, y_data, y_label = [], [], []
        for i in range(len(fn)):
            auxx, auxy, x_label, auxylbl = get_data_csv(fn[i], colx[i], coly[i])
            x_data.append(auxx)
            y_data.append(auxy)
            y_label.append(auxylbl)
    plot_graphs(x_data, y_data, x_label, y_label, user_title, color='black')

如您所见,我无法编写该def get_data_csv部分。我认为我应该使用readline()从文件中获取标头行的方法,然后,我可以使用任何方式获取其他信息来举例说明代码应如何工作。

Enter CSV filename(s), separated by ',': sinusoid.csv
Enter respective x-column(s), separated by ',': 0
Enter respective y-column(s), separated by ',': 1
Enter title: Sine

这应该有效。我需要帮助

那敏

我自己找到了问题的答案,所以我需要的代码是:

def get_data_csv(fn, colx, coly, sep=','):
    x_data = []
    y_data = []
    with open(fn) as f:
        lines = f.readlines()
        i = 0
        for line in lines:
            line = line[0:-2]
            line = line.split(',')
            if i == 0:
                x_label = line[colx]
                y_label = line[coly]
            else:
                x_value = float(line[colx])
                x_data.append(x_value)
                y_value = float(line[coly])
                y_data.append(y_value)
            i+=1    
    return x_data, y_data, x_label, y_label

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Firebase中获取同步数据?

来自分类Dev

如何在python中获取POST / GET数据

来自分类Dev

如何在mongoengine中获取ReferenceField数据?

来自分类Dev

如何在Yesod中获取发布数据?

来自分类Dev

如何在python中获取Caffe网络的数据集大小?

来自分类Dev

如何在XSL文件中获取数据

来自分类Dev

如何在CSV文件python中获取总和

来自分类Dev

如何在python,pandas中获取特定的数据点

来自分类Dev

如何在python字典中按顺序获取数据?

来自分类Dev

如何在React中获取数据属性?

来自分类Dev

如何在使用中处理获取的数据

来自分类Dev

Python Pandas:如何在第n行使用CSV文件获取数据?

来自分类Dev

如何在WebAPI中获取POST数据?

来自分类Dev

如何在python中获取POST / GET数据

来自分类Dev

如何在mongodb中批量获取数据

来自分类Dev

如何在Matlab中从csv绘制数据

来自分类Dev

如何在python中获取Caffe网络的数据集大小?

来自分类Dev

如何在magento中获取运输数据

来自分类Dev

如何在Swift中从NSMutableURLRequest获取数据?

来自分类Dev

如何在Android中从XML获取数据

来自分类Dev

如何在Firebase中获取数据?

来自分类Dev

如何在python中获取mqtt连接的消息数据

来自分类Dev

如何在python中获取json的数据

来自分类Dev

如何在Python中的数据帧中获取for循环的结果

来自分类Dev

如何在 jQuery 中获取 AJAX 数据?

来自分类Dev

如何在java或python中从网页中获取数据

来自分类Dev

如何在 Codeigniter 中获取会话数据

来自分类Dev

如何在python中使用正则表达式从csv文件中获取数据

来自分类Dev

如何在 CsvHelper 中获取 csv 行数