如何使用Python操作Matplotlib的CSV文件

2024-09-27 21:27:22 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有以下数据,并希望绘制一个表示以下[一段]数据的多线图,在CSV文件中以这种格式:

数据:

1216,C210,3610
1217,C210,1863
1218,C210,2419
1224,C210,861
1299,C210,2517
1216,C211,3593
1217,C211,1849
1218,C211,2410
1224,C211,859
1299,C211,2504
1216,C212,3595
1217,C212,1847
1218,C212,2407
1224,C212,860
1299,C212,2501

目标:

我想将这些数据直观地表示为: Data being represented in CSV file

Q:如何操作CSV数据,以便使用Matplotlib和Python创建这样的图形?你知道吗

棘手的问题:到目前为止,我做了些什么,但遇到了困难:

def processing_and_graphing(m_list, c_list):
    with open(csv_dump, 'r') as input_csv_dump_file:
        input_csv = csv.reader(input_csv_dump_file, delimiter=',', skipinitialspace=False)

        with open(csv_temp, 'w', newline='') as output_csv_temp_file:
        for machine in m_list:
            write_into_csv_file = csv.writer(output_csv_temp_file, delimiter=',', quoting=csv.QUOTE_MINIMAL)

            for row in input_csv:
                if row[0] == machine:

困难:我有:

我在尝试重新组织可以提供给Matplotlib的数据时遇到了巨大的困难。你知道吗

方法:我认为的方法:

是遍历CSV文件并将数据转储到temp文件中,我可以使用它生成一个图形(可以直接通过CSV或Panda或其他方法)。但我正努力重新整理数据。你知道吗


Tags: 文件csv数据方法图形inputmatplotlibdump
2条回答

最简单的解决方案是使用pandas库:

import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_csv('scratch.csv', header=None, names=['A', 'B', 'C'])
fig, ax = plt.subplots()
for label, df in df.groupby('A'):
    df.plot(x='B', y='C', ax=ax, label=label)

然后可以使用figax上的标准matplotlib命令格式化绘图。你知道吗

这是解决这个问题的一种可能方法。它读取csv文件,然后将其转换为数据帧。之后,它通过id循环并创建绘图。我省略了最终的修改,以使绘图看起来更好(比如正确标记x轴)。希望能对你有所帮助。你知道吗

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

data = np.genfromtxt('file.csv', delimiter=',', dtype=None)
df =  pd.DataFrame(data)
ids = df.f0.drop_duplicates()
for id in ids:
    id_data = df[df['f0'] == id]
    plt.plot([0,1,2], id_data['f2'].as_matrix())
plt.show()

相关问题 更多 >

    热门问题