也是参考各位优快云大佬的代码,融合在一起,侵删。
import csv
import matplotlib.pyplot as plt
import pandas as pd
from datetime import datetime
file_name = 'E:\data\\0721-0727.csv'
with open(file_name, 'r', encoding='utf-8') as f:
reader = csv.reader(f)
for i in range(6):
header_row = next(reader)
dates, blocks, ltes = [], [], []
for row in reader:
try:
current_date = datetime.strptime(row[1][0:row[1].rfind('-')], '%Y.%m.%d %H:%M')
block=str(row[0])
lte=str(row[29])
if block=='###':
print(current_date)
print(block)
print(lte)
else:
break #shi
except ValueError:
print(current_date, 'missing date')
else:
dates.append(current_date)
blocks.append(block)
ltes.append(lte)
test=pd.DataFrame({'BLOCK':blocks,'DATAS':dates,'LTES':ltes})
test.to_csv('test.csv',index = None,encoding='utf8')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['axes.unicode_minus'] = False
data1 = pd.read_csv('test.csv')
fig = plt.figure(figsize=(36, 24))
xdata = []
ydata = []
xdata = data1.loc[:, 'DATAS']
ydata = data1.loc[:, 'LTES']
plt.plot(xdata, ydata, color='r', marker='o', mec='r', mfc='w', label=u'LTE_下行总流量[单位:MByte]')
plt.xticks(rotation=45)
plt.title(u"不同时间下行总流量图", size=40)
plt.legend()
plt.xlabel(u'时间', size=40)
plt.ylabel(u'下行总流量,单位MByte', size=40)
plt.show()
文章介绍了使用Python的pandas库读取CSV文件,解析日期,然后利用matplotlib绘制不同时间下行总流量的图表的过程。
3564





