求解结果数据分析_instances_times_plotImage

时间:2020-07-15 01:36:00   收藏:0   阅读:62

 

绘制样例--时间图

参考代码:

  1 # -*- coding: utf-8 -*-
  2 """
  3 Created on Sun May 31 21:33:46 2020
  4 
  5 @author: Administrator
  6 """
  7 
  8 import os
  9 import numpy as np
 10 import matplotlib.pyplot as plt
 11 import pandas as pd
 12 from pandas import Series, DataFrame
 13 from pylab import *
 14 
 15 
 16 curPath = os.getcwd()
 17 #---------------------------------------------
 18 # input file name with path
 19 infilePath  = \\dataIn
 20 outfilePath = \\resultOut
 21 
 22 fileFirstName   = 2020-6_BCP_Order_2018_400_add1     #‘MapleLCMDistChronoBT-DL-v2.2_T5000++-1117085401‘
 23 filePostfix     = .csv
 24 
 25 infilename = curPath + infilePath + \\ + fileFirstName + filePostfix
 26 
 27 #read csv file to DataFrame object
 28 #df = pd.DataFrame(pd.read_csv(infilename))
 29 
 30 #跳过前几行读入数据并指定列名称
 31 myskiprows = [0]  #需要跳过的行号列表
 32 #mynames = [‘xuhao‘,‘filename‘, ‘literN‘, ‘clauseN‘, ‘restartN‘, ‘conflN‘, ‘decisionM‘, ‘propagateN‘, ‘conflLiterN‘, ‘backN‘, ‘useTime‘, ‘result‘]
 33 mynames = [xuhao,filename, literN, clauseN, restartN, conflN, decisionM, propagateN, conflLiterN, backN, useTime, result,orderType]
 34 myna_values = [    ] #源文件中表示缺失值的字符串,读入后默认标记为NaN
 35 df = pd.read_csv(infilename,names = mynames, skiprows = myskiprows, na_values = myna_values)
 36 #---------------------------------------------
 37 
 38 #清理缺失数据--删除有空值(值为空白字符串)的行
 39 df1 = df.dropna()
 40 #排序——指定列名称依照该列的值进行排序
 41 sortColName = [useTime]
 42 df1 = df1.sort_values(by = sortColName)
 43 
 44 #重新索引
 45 
 46 #增加一列表示计数
 47 df1[mycount] = 1
 48 
 49 ###将数据按照orderType分为两组
 50 
 51 for name, group in df1.groupby(orderType):
 52     print name
 53     print group
 54 
 55 #将分组数据做成字典后,可以分别使用数据
 56 pieces = dict(list(df1.groupby(orderType)))
 57 
 58     
 59 df1A = pieces[Acending]
 60 df1D = pieces[Dcending]
 61 df1U = pieces[Uniform]
 62 
 63 #获取一列并简化转换为数组
 64 xobjA = df1A[mycount].cumsum()
 65 yobjA = df1A[useTime]
 66 
 67 xobjD = df1D[mycount].cumsum()
 68 yobjD = df1D[useTime]
 69 
 70 xobjU = df1U[mycount].cumsum()
 71 yobjU = df1U[useTime]
 72 
 73 #框架对象转换为数组的方式有两种
 74 #使用df.index访问索引对象,然后使用列表中的值df.index.tolist()。同样,您可以使用df[‘col‘].tolist()系列。
 75 xdataA = xobjA.values
 76 ydataA = yobjA.values
 77 
 78 xdataD = xobjD.values
 79 ydataD = yobjD.values
 80 
 81 xdataU = xobjU.values
 82 ydataU = yobjU.values
 83 #建立用于绘图的数据框
 84 sA = Series(ydataA, index = xdataA, name = useTime)
 85 sD = Series(ydataD, index = xdataD, name = useTime)
 86 sU = Series(ydataU, index = xdataU, name = useTime)
 87 
 88 
 89 #---------------------------------------------
 90 #绘制图形
 91 fig = plt.figure() #求解个数与时间关系图
 92 ax = fig.add_subplot(1,1,1)
 93 ax.plot(sA,  -x, label = Acending)
 94 ax.plot(sD,  -o, label = Dcending,alpha = 0.4) #透明度设置alpha = 0.4
 95 ax.plot(sU,  -*, label = Uniform,alpha = 0.4)  #透明度设置alpha = 0.4
 96 #设置标注
 97 ax.set_title(Boolean Constranint Propagation)
 98 ax.set_xlabel(Number of Instances)
 99 ax.set_ylabel(Time (s))
100 #设置刻度
101 #xticks = ax.set_xticks([0, 20,40,60,80])
102 #yticks = ax.set_yticks([0,100,500,1000,2000,3000,4000.5000])
103 
104 #添加网格
105 plt.grid(linestyle=-.)
106 
107 #添加图例
108 ax.legend(loc =best)
109 plt.show()
110 
111 #保存图像outfilePath = ‘\\resultOut‘
112 outfilename = curPath + outfilePath + \\ + fileFirstName + .svg
113 #plt.savefig(outfilename, dpi = 400, bbox_inches = ‘tight‘)
114 plt.savefig(outfilename)

 

技术分享图片

原文:https://www.cnblogs.com/yuweng1689/p/13302862.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!