aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics
diff options
context:
space:
mode:
authorLibravatar 20001LastOrder <boqi.chen@mail.mcgill.ca>2019-05-27 16:20:40 -0400
committerLibravatar 20001LastOrder <boqi.chen@mail.mcgill.ca>2019-05-27 16:20:40 -0400
commit7595605950a45892af9e19cb8a5968da127479f4 (patch)
tree459803af05a916cd9d2e991358a816b242a44029 /Metrics
parentadd project for metric calculator (diff)
downloadVIATRA-Generator-7595605950a45892af9e19cb8a5968da127479f4.tar.gz
VIATRA-Generator-7595605950a45892af9e19cb8a5968da127479f4.tar.zst
VIATRA-Generator-7595605950a45892af9e19cb8a5968da127479f4.zip
modify generation to log metrics measurements
Diffstat (limited to 'Metrics')
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.xtend18
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/src/Metrics Comparison .ipynb42
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/src/metrics_distance.ipynb4
3 files changed, 41 insertions, 23 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.xtend
index 5f958cfa..425c9d84 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.xtend
@@ -17,33 +17,41 @@ import org.eclipse.viatra.dse.api.Solution
17 17
18class PartialInterpretationMetric { 18class PartialInterpretationMetric {
19 var static state = 0; 19 var static state = 0;
20 def static void calculateMetric(PartialInterpretation partial, String path, int id, String currentStateId){ 20
21 // calculate the metrics for a state
22 def static void calculateMetric(PartialInterpretation partial, String path, String currentStateId){
21 val metrics = new ArrayList<Metric>(); 23 val metrics = new ArrayList<Metric>();
22 metrics.add(new OutDegreeMetric()); 24 metrics.add(new OutDegreeMetric());
23 metrics.add(new NodeActivityMetric()); 25 metrics.add(new NodeActivityMetric());
24 metrics.add(new MultiplexParticipationCoefficientMetric()); 26 metrics.add(new MultiplexParticipationCoefficientMetric());
25 27
28 //make dir since the folder can be none existing
26 new File(path).mkdir(); 29 new File(path).mkdir();
27 val filename = path + "/state_"+state+".csv"; 30 val filename = path + "/state_"+currentStateId+".csv";
28 state++; 31 state++;
29 val metricCalculator = new PartialInterpretationGraph(partial, metrics, currentStateId); 32 val metricCalculator = new PartialInterpretationGraph(partial, metrics, currentStateId);
30 33
31 CsvFileWriter.write(metricCalculator.evaluateAllMetrics(), filename); 34 CsvFileWriter.write(metricCalculator.evaluateAllMetrics(), filename);
32 } 35 }
33 36
34 def static void outputTrajectories(PartialInterpretation empty, List<Solution> solutions){ 37 def static void outputTrajectories(PartialInterpretation empty, List<Solution> solutions){
35
36 for(solution : solutions){ 38 for(solution : solutions){
39 //need to copy the empty solution because the transition directly worked on the graph
37 val emptySolutionCopy = EcoreUtil.copy(empty) 40 val emptySolutionCopy = EcoreUtil.copy(empty)
38 val trajectory = solution.shortestTrajectory; 41 val trajectory = solution.shortestTrajectory;
39 trajectory.modelWithEditingDomain = emptySolutionCopy 42 trajectory.modelWithEditingDomain = emptySolutionCopy
43
44 // state codes that will record the trajectory
40 val stateCodes = newArrayList() 45 val stateCodes = newArrayList()
41 46
47 //transform and record the state codes for each state
42 while(trajectory.doNextTransformation){ 48 while(trajectory.doNextTransformation){
43 println(trajectory.stateCoder.createStateCode) 49 //println(trajectory.stateCoder.createStateCode)
44 stateCodes.add(trajectory.stateCoder.createStateCode.toString) 50 stateCodes.add(trajectory.stateCoder.createStateCode.toString)
45 } 51 }
46 52
53
54 //output the trajectory
47 try{ 55 try{
48 val path = "debug/metric/trajectories/trajectory"+trajectory.stateCoder.createStateCode.toString+".csv" 56 val path = "debug/metric/trajectories/trajectory"+trajectory.stateCoder.createStateCode.toString+".csv"
49 val PrintWriter writer = new PrintWriter(new File(path)) 57 val PrintWriter writer = new PrintWriter(new File(path))
diff --git a/Metrics/Metrics-Calculation/metrics_plot/src/Metrics Comparison .ipynb b/Metrics/Metrics-Calculation/metrics_plot/src/Metrics Comparison .ipynb
index 17ad1253..04af8773 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/src/Metrics Comparison .ipynb
+++ b/Metrics/Metrics-Calculation/metrics_plot/src/Metrics Comparison .ipynb
@@ -9,7 +9,7 @@
9 }, 9 },
10 { 10 {
11 "cell_type": "code", 11 "cell_type": "code",
12 "execution_count": 2, 12 "execution_count": 14,
13 "metadata": {}, 13 "metadata": {},
14 "outputs": [], 14 "outputs": [],
15 "source": [ 15 "source": [
@@ -24,7 +24,7 @@
24 }, 24 },
25 { 25 {
26 "cell_type": "code", 26 "cell_type": "code",
27 "execution_count": 3, 27 "execution_count": 15,
28 "metadata": {}, 28 "metadata": {},
29 "outputs": [], 29 "outputs": [],
30 "source": [ 30 "source": [
@@ -47,7 +47,7 @@
47 }, 47 },
48 { 48 {
49 "cell_type": "code", 49 "cell_type": "code",
50 "execution_count": 4, 50 "execution_count": 16,
51 "metadata": {}, 51 "metadata": {},
52 "outputs": [], 52 "outputs": [],
53 "source": [ 53 "source": [
@@ -59,7 +59,7 @@
59 }, 59 },
60 { 60 {
61 "cell_type": "code", 61 "cell_type": "code",
62 "execution_count": 5, 62 "execution_count": 17,
63 "metadata": {}, 63 "metadata": {},
64 "outputs": [], 64 "outputs": [],
65 "source": [ 65 "source": [
@@ -87,7 +87,7 @@
87 }, 87 },
88 { 88 {
89 "cell_type": "code", 89 "cell_type": "code",
90 "execution_count": 6, 90 "execution_count": 18,
91 "metadata": {}, 91 "metadata": {},
92 "outputs": [], 92 "outputs": [],
93 "source": [ 93 "source": [
@@ -115,9 +115,22 @@
115 }, 115 },
116 { 116 {
117 "cell_type": "code", 117 "cell_type": "code",
118 "execution_count": 9, 118 "execution_count": 19,
119 "metadata": {}, 119 "metadata": {},
120 "outputs": [], 120 "outputs": [
121 {
122 "ename": "ValueError",
123 "evalue": "too many values to unpack (expected 3)",
124 "output_type": "error",
125 "traceback": [
126 "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
127 "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)",
128 "\u001b[1;32m<ipython-input-19-c45dfc2a26c6>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mhuman\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mGraphType\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'../statistics/humanOutput/'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m300\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mviatra30\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mGraphType\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'../statistics/viatraOutput30/'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m300\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mviatra100\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mGraphType\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'../statistics/viatraOutput100/'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m300\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mrandom\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mGraphType\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'../statistics/randomOutput/'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m300\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0malloy\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mGraphType\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'../statistics/alloyOutput/'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m300\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
129 "\u001b[1;32m<ipython-input-18-556621ada738>\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, path, number)\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[0mmodels\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mreader\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreadmultiplefiles\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnumber\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmodels\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 10\u001b[1;33m \u001b[0mout_d\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mna\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmpc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mreader\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgetmetrics\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmodels\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 11\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mout_ds\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mout_d\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 12\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnas\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mna\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
130 "\u001b[1;31mValueError\u001b[0m: too many values to unpack (expected 3)"
131 ]
132 }
133 ],
121 "source": [ 134 "source": [
122 "human = GraphType('../statistics/humanOutput/', 300)\n", 135 "human = GraphType('../statistics/humanOutput/', 300)\n",
123 "viatra30 = GraphType('../statistics/viatraOutput30/', 300)\n", 136 "viatra30 = GraphType('../statistics/viatraOutput30/', 300)\n",
@@ -135,21 +148,18 @@
135 }, 148 },
136 { 149 {
137 "cell_type": "code", 150 "cell_type": "code",
138 "execution_count": 11, 151 "execution_count": 20,
139 "metadata": {}, 152 "metadata": {},
140 "outputs": [ 153 "outputs": [
141 { 154 {
142 "ename": "KeyboardInterrupt", 155 "ename": "NameError",
143 "evalue": "", 156 "evalue": "name 'viatra30' is not defined",
144 "output_type": "error", 157 "output_type": "error",
145 "traceback": [ 158 "traceback": [
146 "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 159 "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
147 "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", 160 "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
148 "\u001b[1;32m<ipython-input-11-5692e29d4679>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mout_d_coords\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcalculateMDS\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcalculateKSMatrix\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mviatra30\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mout_ds\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0malloy\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mout_ds\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhuman\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mout_ds\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'Viatra (30 nodes)'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'Alloy (30 nodes)'\u001b[0m \u001b[1;33m,\u001b[0m \u001b[1;34m'Human'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mout_d_coords\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'Out Degree'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", 161 "\u001b[1;32m<ipython-input-20-5692e29d4679>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mout_d_coords\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcalculateMDS\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcalculateKSMatrix\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mviatra30\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mout_ds\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0malloy\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mout_ds\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhuman\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mout_ds\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'Viatra (30 nodes)'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'Alloy (30 nodes)'\u001b[0m \u001b[1;33m,\u001b[0m \u001b[1;34m'Human'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mout_d_coords\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'Out Degree'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
149 "\u001b[1;32m<ipython-input-3-37c4264e6073>\u001b[0m in \u001b[0;36mcalculateKSMatrix\u001b[1;34m(dists)\u001b[0m\n\u001b[0;32m 12\u001b[0m \u001b[0mmatrix\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mj\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mvalue\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[0mmatrix\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mvalue\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 14\u001b[1;33m \u001b[0mvalue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mp\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstats\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mks_2samp\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdist\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdist\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 15\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mmatrix\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", 162 "\u001b[1;31mNameError\u001b[0m: name 'viatra30' is not defined"
150 "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\scipy\\stats\\stats.py\u001b[0m in \u001b[0;36mks_2samp\u001b[1;34m(data1, data2)\u001b[0m\n\u001b[0;32m 4854\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4855\u001b[0m \"\"\"\n\u001b[1;32m-> 4856\u001b[1;33m \u001b[0mdata1\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msort\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 4857\u001b[0m \u001b[0mdata2\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msort\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata2\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4858\u001b[0m \u001b[0mn1\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdata1\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
151 "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\numpy\\core\\fromnumeric.py\u001b[0m in \u001b[0;36msort\u001b[1;34m(a, axis, kind, order)\u001b[0m\n\u001b[0;32m 932\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 933\u001b[0m \u001b[0ma\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0masanyarray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0morder\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"K\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 934\u001b[1;33m \u001b[0ma\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msort\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkind\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mkind\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0morder\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0morder\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 935\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0ma\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 936\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
152 "\u001b[1;31mKeyboardInterrupt\u001b[0m: "
153 ] 163 ]
154 } 164 }
155 ], 165 ],
diff --git a/Metrics/Metrics-Calculation/metrics_plot/src/metrics_distance.ipynb b/Metrics/Metrics-Calculation/metrics_plot/src/metrics_distance.ipynb
index c7daa75e..9fad79d7 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/src/metrics_distance.ipynb
+++ b/Metrics/Metrics-Calculation/metrics_plot/src/metrics_distance.ipynb
@@ -185,7 +185,7 @@
185 { 185 {
186 "data": { 186 "data": {
187 "application/vnd.jupyter.widget-view+json": { 187 "application/vnd.jupyter.widget-view+json": {
188 "model_id": "60e3295a164f48428bc882868e68f26f", 188 "model_id": "a42a037c9020429982c906d0b100645b",
189 "version_major": 2, 189 "version_major": 2,
190 "version_minor": 0 190 "version_minor": 0
191 }, 191 },
@@ -270,7 +270,7 @@
270 { 270 {
271 "data": { 271 "data": {
272 "application/vnd.jupyter.widget-view+json": { 272 "application/vnd.jupyter.widget-view+json": {
273 "model_id": "f69502eba4af40f19acc09f36681387a", 273 "model_id": "248ad5232bb6454589c95c2b92b74db7",
274 "version_major": 2, 274 "version_major": 2,
275 "version_minor": 0 275 "version_minor": 0
276 }, 276 },