求解结果数据分析_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)