第一步:导入生成的文本报表,以Epidemic的MessageStatsReport报表为例,分别生成缓存空间为5M,10M,15M,20M,25M,30M的reports,将txt表格数据导入,合并为df表格,代码及结果如下:
import pandas as pd
df1 = pd.read_table(r"C:\Users\phoebe\Documents\java_workspace\one\reports\MessageStatsReport\Epidemic-5M_MessageStatsReport.txt",sep = ":")
df2 = pd.read_table(r"C:\Users\phoebe\Documents\java_workspace\one\reports\MessageStatsReport\Epidemic-10M_MessageStatsReport.txt",sep = ":")
df3 = pd.read_table(r"C:\Users\phoebe\Documents\java_workspace\one\reports\MessageStatsReport\Epidemic-15M_MessageStatsReport.txt",sep = ":")
df4 = pd.read_table(r"C:\Users\phoebe\Documents\java_workspace\one\reports\MessageStatsReport\Epidemic-20M_MessageStatsReport.txt",sep = ":")
df5 = pd.read_table(r"C:\Users\phoebe\Documents\java_workspace\one\reports\MessageStatsReport\Epidemic-25M_MessageStatsReport.txt",sep = ":")
df6 = pd.read_table(r"C:\Users\phoebe\Documents\java_workspace\one\reports\MessageStatsReport\Epidemic-30M_MessageStatsReport.txt",sep = ":")
df = pd.merge(df1,df2,on = 'key')
i=3
while i<7:
df = pd.merge(df,eval("df"+str(i)),on = 'key')
i += 1
df.columns = ["数据类型","5M","10M","15M","20M","25M","30M"]
df
画出坐标轴,准备绘制折线图,代码及结果如下:
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
# 加上下行代码,图标会看起来更清晰
%config InlineBackend.figure_format = 'svg'
plt.figure(figsize = (5,5)) #建立一个尺寸为5,5的画布
plt.xlim(0,35)
plt.ylim(0,1)
plt.xlabel("缓存空间量",labelpad = 10) #labelpad为标签与轴之间的距离
plt.ylabel("投递成功率",labelpad = 10)
import numpy as np
plt.xticks(np.arange(0,40,5),["0M","5M","10M","15M","20M","25M","30M","35M"])
plt.yticks(np.arange(0,1.1,0.1),["0","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"])
plt.grid(b = "True")