读取一个输入文件并绘制多个

2024-04-26 00:35:20 发布

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

我正在尝试读取以下格式的一个输入文件。其中Col[1]是x轴,Col[2]是y轴,col[3]是某个名称。我需要为col[3]的单独名称绘制多个折线图。例如:Name sdx,y值将有一个折线图,Name gg和相对x,y值将有另一个折线图。所有在一个输出图像,但单独的图形。Python Matplotlib可以吗?请把我引向任何例子。我已经查过了,没找到。你知道吗

akdj 12:00 34515 sd
sgqv 13:00 34626 sd
dfbb 13:00 14215 gg
ajdf 13:30 14224 gg
dsfb 13:45 25672 FW 
sfhh 14:00 85597 ad

谢谢你的宝贵建议


Tags: 文件name图像名称图形matplotlib格式绘制
1条回答
网友
1楼 · 发布于 2024-04-26 00:35:20

您可以使用条件z=='some tag'来索引xy数组

下面是一个应该这样做的示例(基于your previous question中的代码)。使用集合自动创建标记:

import csv
import datetime as dt
import numpy as np
import matplotlib.pyplot as plt

threshold = 30000
x,y,z = [],[],[]
csv_reader = csv.reader(open('input.csv'))

for line in csv_reader:
    y.append(int(line[2]))
    x.append(dt.datetime.strptime(line[1],'%H:%M'))
    z.append(line[3])

x=np.array(x)
y=np.array(y)

tags = list(set(z))
z=np.array(z)

fig=plt.figure()

for tag in tags:
    plt.plot(x[z==tag],y[z==tag],'o-',label=tag)

fig.autofmt_xdate()

plt.legend(loc=2)

plt.savefig('test.png')

enter image description here

相关问题 更多 >