chart only updates at the right times

This commit is contained in:
JuliusHerrmann 2021-10-26 02:29:55 +02:00
parent 07836f3704
commit 320461555b
6 changed files with 114 additions and 955 deletions

View File

@ -9,7 +9,7 @@ import ContactSelector from './ContactSelector.jsx';
import KarateClass from './exampleNetworks/Karate.jsx';
import ModelSelector from './ModelSelector.jsx';
import SIModel from './exampleModels/SIModel.jsx';
import Visual from './Visual.jsx';
import Visual from './visualizations/Visual.jsx';
class Simulation extends React.Component{
constructor(props){
@ -34,10 +34,14 @@ class Simulation extends React.Component{
this.state = {rules: rules, states: states, initial_distribution: initial_distribution, graphData: graphData, horizon: 20.0, selectedNetwork: this.networkObject, selectedModel: this.modelObject, simulationData: undefined,};
}
componentDidMount(){
componentWillMount() {
this.recalculate();
}
//componentDidMount(){
//this.recalculate();
//}
horizonChange(e){
if(e.target.value > 200){
e.target.value = 200

View File

@ -1,876 +0,0 @@
[{
"key": "North America",
"values": [
[1025409600000, 23.041422681023],
[1028088000000, 19.854291255832],
[1030766400000, 21.02286281168],
[1033358400000, 22.093608385173],
[1036040400000, 25.108079299458],
[1038632400000, 26.982389242348],
[1041310800000, 19.828984957662],
[1043989200000, 19.914055036294],
[1046408400000, 19.436150539916],
[1049086800000, 21.558650338602],
[1051675200000, 24.395594061773],
[1054353600000, 24.747089309384],
[1056945600000, 23.491755498807],
[1059624000000, 23.376634878164],
[1062302400000, 24.581223154533],
[1064894400000, 24.922476843538],
[1067576400000, 27.357712939042],
[1070168400000, 26.503020572593],
[1072846800000, 26.658901244878],
[1075525200000, 27.065704156445],
[1078030800000, 28.735320452588],
[1080709200000, 31.572277846319],
[1083297600000, 30.932161503638],
[1085976000000, 31.627029785554],
[1088568000000, 28.728743674232],
[1091246400000, 26.858365172675],
[1093924800000, 27.279922830032],
[1096516800000, 34.408301211324],
[1099195200000, 34.794362930439],
[1101790800000, 35.609978198951],
[1104469200000, 33.574394968037],
[1107147600000, 31.979405070598],
[1109566800000, 31.19009040297],
[1112245200000, 31.083933968994],
[1114833600000, 29.668971113185],
[1117512000000, 31.490638014379],
[1120104000000, 31.818617451128],
[1122782400000, 32.960314008183],
[1125460800000, 31.313383196209],
[1128052800000, 33.125486081852],
[1130734800000, 32.791805509149],
[1133326800000, 33.506038030366],
[1136005200000, 26.96501697216],
[1138683600000, 27.38478809681],
[1141102800000, 27.371377218209],
[1143781200000, 26.309915460827],
[1146369600000, 26.425199957518],
[1149048000000, 26.823411519396],
[1151640000000, 23.850443591587],
[1154318400000, 23.158355444054],
[1156996800000, 22.998689393695],
[1159588800000, 27.9771285113],
[1162270800000, 29.073672469719],
[1164862800000, 28.587640408904],
[1167541200000, 22.788453687637],
[1170219600000, 22.429199073597],
[1172638800000, 22.324103271052],
[1175313600000, 17.558388444187],
[1177905600000, 16.769518096208],
[1180584000000, 16.214738201301],
[1183176000000, 18.729632971229],
[1185854400000, 18.814523318847],
[1188532800000, 19.789986451358],
[1191124800000, 17.070049054933],
[1193803200000, 16.121349575716],
[1196398800000, 15.141659430091],
[1199077200000, 17.175388025297],
[1201755600000, 17.286592443522],
[1204261200000, 16.323141626568],
[1206936000000, 19.231263773952],
[1209528000000, 18.446256391095],
[1212206400000, 17.822632399764],
[1214798400000, 15.53936647598],
[1217476800000, 15.255131790217],
[1220155200000, 15.660963922592],
[1222747200000, 13.254482273698],
[1225425600000, 11.920796202299],
[1228021200000, 12.122809090924],
[1230699600000, 15.691026271393],
[1233378000000, 14.720881635107],
[1235797200000, 15.387939360044],
[1238472000000, 13.765436672228],
[1241064000000, 14.631445864799],
[1243742400000, 14.292446536221],
[1246334400000, 16.170071367017],
[1249012800000, 15.948135554337],
[1251691200000, 16.612872685134],
[1254283200000, 18.778338719091],
[1256961600000, 16.756026065421],
[1259557200000, 19.385804443146],
[1262235600000, 22.950590240168],
[1264914000000, 23.61159018141],
[1267333200000, 25.708586989581],
[1270008000000, 26.883915999885],
[1272600000000, 25.893486687065],
[1275278400000, 24.678914263176],
[1277870400000, 25.937275793024],
[1280548800000, 29.461381693838],
[1283227200000, 27.357322961861],
[1285819200000, 29.057235285673],
[1288497600000, 28.549434189386],
[1291093200000, 28.506352379724],
[1293771600000, 29.449241421598],
[1296450000000, 25.796838168807],
[1298869200000, 28.740145449188],
[1301544000000, 22.091744141872],
[1304136000000, 25.07966254541],
[1306814400000, 23.674906973064],
[1309406400000, 23.418002742929],
[1312084800000, 23.24364413887],
[1314763200000, 31.591854066817],
[1317355200000, 31.497112374114],
[1320033600000, 26.67238082043],
[1322629200000, 27.297080015495],
[1325307600000, 20.174315530051],
[1327986000000, 19.631084213898],
[1330491600000, 20.366462219461],
[1333166400000, 19.284784434185],
[1335758400000, 19.157810257624]
]
},
{
"key": "Africa",
"values": [
[1025409600000, 7.9356392949025],
[1028088000000, 7.4514668527298],
[1030766400000, 7.9085410566608],
[1033358400000, 5.8996782364764],
[1036040400000, 6.0591869346923],
[1038632400000, 5.9667815800451],
[1041310800000, 8.65528925664],
[1043989200000, 8.7690763386254],
[1046408400000, 8.6386160387453],
[1049086800000, 5.9895557449743],
[1051675200000, 6.3840324338159],
[1054353600000, 6.5196511461441],
[1056945600000, 7.0738618553114],
[1059624000000, 6.5745957367133],
[1062302400000, 6.4658359184444],
[1064894400000, 2.7622758754954],
[1067576400000, 2.9794782986241],
[1070168400000, 2.8735432712019],
[1072846800000, 1.6344817513645],
[1075525200000, 1.5869248754883],
[1078030800000, 1.7172279157246],
[1080709200000, 1.9649927409867],
[1083297600000, 2.0261695079196],
[1085976000000, 2.0541261923929],
[1088568000000, 3.9466318927569],
[1091246400000, 3.7826770946089],
[1093924800000, 3.9543021004028],
[1096516800000, 3.8309891064711],
[1099195200000, 3.6340958946166],
[1101790800000, 3.5289755762525],
[1104469200000, 5.702378559857],
[1107147600000, 5.6539569019223],
[1109566800000, 5.5449506370392],
[1112245200000, 4.7579993280677],
[1114833600000, 4.4816139372906],
[1117512000000, 4.5965558568606],
[1120104000000, 4.3747066116976],
[1122782400000, 4.4588822917087],
[1125460800000, 4.4460351848286],
[1128052800000, 3.7989113035136],
[1130734800000, 3.7743883140088],
[1133326800000, 3.7727852823828],
[1136005200000, 7.2968111448895],
[1138683600000, 7.2800122043237],
[1141102800000, 7.1187787503354],
[1143781200000, 8.351887016482],
[1146369600000, 8.4156698763993],
[1149048000000, 8.1673298604231],
[1151640000000, 5.5132447126042],
[1154318400000, 6.1152537710599],
[1156996800000, 6.076765091942],
[1159588800000, 4.6304473798646],
[1162270800000, 4.6301068469402],
[1164862800000, 4.3466656309389],
[1167541200000, 6.830104897003],
[1170219600000, 7.241633040029],
[1172638800000, 7.1432372054153],
[1175313600000, 10.608942063374],
[1177905600000, 10.914964549494],
[1180584000000, 10.933223880565],
[1183176000000, 8.3457524851265],
[1185854400000, 8.1078413081882],
[1188532800000, 8.2697185922474],
[1191124800000, 8.4742436475968],
[1193803200000, 8.4994601179319],
[1196398800000, 8.7387319683243],
[1199077200000, 6.8829183612895],
[1201755600000, 6.984133637885],
[1204261200000, 7.0860136043287],
[1206936000000, 4.3961787956053],
[1209528000000, 3.8699674365231],
[1212206400000, 3.6928925238305],
[1214798400000, 6.7571718894253],
[1217476800000, 6.4367313362344],
[1220155200000, 6.4048441521454],
[1222747200000, 5.4643833239669],
[1225425600000, 5.3150786833374],
[1228021200000, 5.3011272612576],
[1230699600000, 4.1203601430809],
[1233378000000, 4.0881783200525],
[1235797200000, 4.1928665957189],
[1238472000000, 7.0249415663205],
[1241064000000, 7.006530880769],
[1243742400000, 6.994835633224],
[1246334400000, 6.1220222336254],
[1249012800000, 6.1177436137653],
[1251691200000, 6.1413396231981],
[1254283200000, 4.8046006145874],
[1256961600000, 4.6647600660544],
[1259557200000, 4.544865006255],
[1262235600000, 6.0488249316539],
[1264914000000, 6.3188669540206],
[1267333200000, 6.5873958262306],
[1270008000000, 6.2281189839578],
[1272600000000, 5.8948915746059],
[1275278400000, 5.5967320482214],
[1277870400000, 0.99784432084837],
[1280548800000, 1.0950794175359],
[1283227200000, 0.94479734407491],
[1285819200000, 1.222093988688],
[1288497600000, 1.335093106856],
[1291093200000, 1.3302565104985],
[1293771600000, 1.340824670897],
[1296450000000, 0],
[1298869200000, 0],
[1301544000000, 0],
[1304136000000, 0],
[1306814400000, 0],
[1309406400000, 0],
[1312084800000, 0],
[1314763200000, 0],
[1317355200000, 4.4583692315],
[1320033600000, 3.6493043348059],
[1322629200000, 3.8610064091761],
[1325307600000, 5.5144800685202],
[1327986000000, 5.1750695220791],
[1330491600000, 5.6710066952691],
[1333166400000, 5.5611890039181],
[1335758400000, 5.5979368839939]
]
},
{
"key": "South America",
"values": [
[1025409600000, 7.9149900245423],
[1028088000000, 7.0899888751059],
[1030766400000, 7.5996132380614],
[1033358400000, 8.2741174301034],
[1036040400000, 9.3564460833513],
[1038632400000, 9.7066786059904],
[1041310800000, 10.213363052343],
[1043989200000, 10.285809585273],
[1046408400000, 10.222053149228],
[1049086800000, 8.6188592137975],
[1051675200000, 9.3335447543566],
[1054353600000, 8.9312402186628],
[1056945600000, 8.1895089343658],
[1059624000000, 8.260622135079],
[1062302400000, 7.7700786851364],
[1064894400000, 7.9907428771318],
[1067576400000, 8.7769091865606],
[1070168400000, 8.4855077060661],
[1072846800000, 9.6277203033655],
[1075525200000, 9.9685913452624],
[1078030800000, 10.615085181759],
[1080709200000, 9.2902488079646],
[1083297600000, 8.8610439830061],
[1085976000000, 9.1075344931229],
[1088568000000, 9.9156737639203],
[1091246400000, 9.7826003238782],
[1093924800000, 10.55403610555],
[1096516800000, 10.926900264097],
[1099195200000, 10.903144818736],
[1101790800000, 10.862890389067],
[1104469200000, 10.64604998964],
[1107147600000, 10.042790814087],
[1109566800000, 9.7173391591038],
[1112245200000, 9.6122415755443],
[1114833600000, 9.4337921146562],
[1117512000000, 9.814827171183],
[1120104000000, 12.059260396788],
[1122782400000, 12.139649903873],
[1125460800000, 12.281290663822],
[1128052800000, 8.8037085409056],
[1130734800000, 8.6300618239176],
[1133326800000, 9.1225708491432],
[1136005200000, 12.988124170836],
[1138683600000, 13.356778764353],
[1141102800000, 13.611196863271],
[1143781200000, 6.8959030061189],
[1146369600000, 6.9939633271353],
[1149048000000, 6.7241510257676],
[1151640000000, 5.5611293669517],
[1154318400000, 5.6086488714041],
[1156996800000, 5.4962849907033],
[1159588800000, 6.9193153169278],
[1162270800000, 7.0016334389778],
[1164862800000, 6.7865422443273],
[1167541200000, 9.0006454225383],
[1170219600000, 9.2233916171431],
[1172638800000, 8.8929316009479],
[1175313600000, 10.345937520404],
[1177905600000, 10.075914677026],
[1180584000000, 10.089006188111],
[1183176000000, 10.598330295008],
[1185854400000, 9.9689546533009],
[1188532800000, 9.7740580198146],
[1191124800000, 10.558483060626],
[1193803200000, 9.9314651823603],
[1196398800000, 9.3997715873769],
[1199077200000, 8.4086493387262],
[1201755600000, 8.9698309085926],
[1204261200000, 8.2778357995396],
[1206936000000, 8.8585045600123],
[1209528000000, 8.7013756413322],
[1212206400000, 7.7933605469443],
[1214798400000, 7.0236183483064],
[1217476800000, 6.9873088186829],
[1220155200000, 6.8031713070097],
[1222747200000, 6.6869531315723],
[1225425600000, 6.138256993963],
[1228021200000, 5.6434994016354],
[1230699600000, 5.495220262512],
[1233378000000, 4.6885326869846],
[1235797200000, 4.4524349883438],
[1238472000000, 5.6766520778185],
[1241064000000, 5.7675774480752],
[1243742400000, 5.7882863168337],
[1246334400000, 7.2666010034924],
[1249012800000, 7.5191821322261],
[1251691200000, 7.849651451445],
[1254283200000, 10.383992037985],
[1256961600000, 9.0653691861818],
[1259557200000, 9.6705248324159],
[1262235600000, 10.856380561349],
[1264914000000, 11.27452370892],
[1267333200000, 11.754156529088],
[1270008000000, 8.2870811422455],
[1272600000000, 8.0210264360699],
[1275278400000, 7.5375074474865],
[1277870400000, 8.3419527338039],
[1280548800000, 9.4197471818443],
[1283227200000, 8.7321733185797],
[1285819200000, 9.6627062648126],
[1288497600000, 10.187962234548],
[1291093200000, 9.8144201733476],
[1293771600000, 10.275723361712],
[1296450000000, 16.796066079353],
[1298869200000, 17.543254984075],
[1301544000000, 16.673660675083],
[1304136000000, 17.963944353609],
[1306814400000, 16.63774086721],
[1309406400000, 15.84857094609],
[1312084800000, 14.767303362181],
[1314763200000, 24.778452182433],
[1317355200000, 18.370353229999],
[1320033600000, 15.253137429099],
[1322629200000, 14.989600840649],
[1325307600000, 16.052539160125],
[1327986000000, 16.424390322793],
[1330491600000, 17.884020741104],
[1333166400000, 18.372698836036],
[1335758400000, 18.315881576096]
]
},
{
"key": "Asia",
"values": [
[1025409600000, 13.153938631352],
[1028088000000, 12.456410521864],
[1030766400000, 12.537048663919],
[1033358400000, 13.947386398309],
[1036040400000, 14.421680682568],
[1038632400000, 14.143238262286],
[1041310800000, 12.229635347478],
[1043989200000, 12.508479916948],
[1046408400000, 12.155368409526],
[1049086800000, 13.335455563994],
[1051675200000, 12.888210138167],
[1054353600000, 12.842092790511],
[1056945600000, 12.513816474199],
[1059624000000, 12.21453674494],
[1062302400000, 11.750848343935],
[1064894400000, 10.526579636787],
[1067576400000, 10.873596086087],
[1070168400000, 11.019967131519],
[1072846800000, 11.235789380602],
[1075525200000, 11.859910850657],
[1078030800000, 12.531031616536],
[1080709200000, 11.360451067019],
[1083297600000, 11.456244780202],
[1085976000000, 11.436991407309],
[1088568000000, 11.638595744327],
[1091246400000, 11.190418301469],
[1093924800000, 11.835608007589],
[1096516800000, 11.540980244475],
[1099195200000, 10.958762325687],
[1101790800000, 10.885791159509],
[1104469200000, 13.605810720109],
[1107147600000, 13.128978067437],
[1109566800000, 13.119012086882],
[1112245200000, 13.003706129783],
[1114833600000, 13.326996807689],
[1117512000000, 13.547947991743],
[1120104000000, 12.807959646616],
[1122782400000, 12.931763821068],
[1125460800000, 12.795359993008],
[1128052800000, 9.6998935538319],
[1130734800000, 9.3473740089131],
[1133326800000, 9.36902067716],
[1136005200000, 14.258619539875],
[1138683600000, 14.21241095603],
[1141102800000, 13.973193618249],
[1143781200000, 15.218233920664],
[1146369600000, 14.382109727451],
[1149048000000, 13.894310878491],
[1151640000000, 15.593086090031],
[1154318400000, 16.244839695189],
[1156996800000, 16.017088850647],
[1159588800000, 14.183951830057],
[1162270800000, 14.148523245696],
[1164862800000, 13.424326059971],
[1167541200000, 12.974450435754],
[1170219600000, 13.232470418021],
[1172638800000, 13.318762655574],
[1175313600000, 15.961407746104],
[1177905600000, 16.287714639805],
[1180584000000, 16.24659058389],
[1183176000000, 17.564505594808],
[1185854400000, 17.872725373164],
[1188532800000, 18.018998508756],
[1191124800000, 15.584518016602],
[1193803200000, 15.480850647182],
[1196398800000, 15.699120036985],
[1199077200000, 19.184281817226],
[1201755600000, 19.691226605205],
[1204261200000, 18.982314051293],
[1206936000000, 18.707820309008],
[1209528000000, 17.459630929759],
[1212206400000, 16.500616076782],
[1214798400000, 18.086324003978],
[1217476800000, 18.929464156259],
[1220155200000, 18.233728682084],
[1222747200000, 16.315776297325],
[1225425600000, 14.632892190251],
[1228021200000, 14.667835024479],
[1230699600000, 13.946993947309],
[1233378000000, 14.394304684398],
[1235797200000, 13.724462792967],
[1238472000000, 10.930879035807],
[1241064000000, 9.8339915513708],
[1243742400000, 10.053858541872],
[1246334400000, 11.786998438286],
[1249012800000, 11.780994901769],
[1251691200000, 11.305889670277],
[1254283200000, 10.918452290083],
[1256961600000, 9.6811395055706],
[1259557200000, 10.971529744038],
[1262235600000, 13.330210480209],
[1264914000000, 14.592637568961],
[1267333200000, 14.605329141157],
[1270008000000, 13.936853794037],
[1272600000000, 12.189480759072],
[1275278400000, 11.676151385046],
[1277870400000, 13.058852800018],
[1280548800000, 13.62891543203],
[1283227200000, 13.811107569918],
[1285819200000, 13.786494560786],
[1288497600000, 14.045162857531],
[1291093200000, 13.697412447286],
[1293771600000, 13.677681376221],
[1296450000000, 19.96151186453],
[1298869200000, 21.049198298156],
[1301544000000, 22.687631094009],
[1304136000000, 25.469010617433],
[1306814400000, 24.88379943712],
[1309406400000, 24.203843814249],
[1312084800000, 22.138760964036],
[1314763200000, 16.034636966228],
[1317355200000, 15.394958944555],
[1320033600000, 12.62564246197],
[1322629200000, 12.973735699739],
[1325307600000, 15.78601833615],
[1327986000000, 15.227368020134],
[1330491600000, 15.899752650733],
[1333166400000, 15.661317319168],
[1335758400000, 15.359891177281]
]
},
{
"key": "Europe",
"values": [
[1025409600000, 9.3433263069351],
[1028088000000, 8.4583069475546],
[1030766400000, 8.0342398154196],
[1033358400000, 8.1538966876572],
[1036040400000, 10.743604786849],
[1038632400000, 12.349366155851],
[1041310800000, 10.742682503899],
[1043989200000, 11.360983869935],
[1046408400000, 11.441336039535],
[1049086800000, 10.897508791837],
[1051675200000, 11.469101547709],
[1054353600000, 12.086311476742],
[1056945600000, 8.0697180773504],
[1059624000000, 8.2004392233445],
[1062302400000, 8.4566434900643],
[1064894400000, 7.9565760979059],
[1067576400000, 9.3764619255827],
[1070168400000, 9.0747664160538],
[1072846800000, 10.508939004673],
[1075525200000, 10.69936754483],
[1078030800000, 10.681562399145],
[1080709200000, 13.184786109406],
[1083297600000, 12.668213052351],
[1085976000000, 13.430509403986],
[1088568000000, 12.393086349213],
[1091246400000, 11.942374044842],
[1093924800000, 12.062227685742],
[1096516800000, 11.969974363623],
[1099195200000, 12.14374574055],
[1101790800000, 12.69422821995],
[1104469200000, 9.1235211044692],
[1107147600000, 8.758211757584],
[1109566800000, 8.8072309258443],
[1112245200000, 11.687595946835],
[1114833600000, 11.079723082664],
[1117512000000, 12.049712896076],
[1120104000000, 10.725319428684],
[1122782400000, 10.844849996286],
[1125460800000, 10.833535488461],
[1128052800000, 17.180932407865],
[1130734800000, 15.894764896516],
[1133326800000, 16.412751299498],
[1136005200000, 12.573569093402],
[1138683600000, 13.242301508051],
[1141102800000, 12.863536342041],
[1143781200000, 21.034044171629],
[1146369600000, 21.419084618802],
[1149048000000, 21.142678863692],
[1151640000000, 26.56848967753],
[1154318400000, 24.839144939906],
[1156996800000, 25.456187462166],
[1159588800000, 26.350164502825],
[1162270800000, 26.478333205189],
[1164862800000, 26.425979547846],
[1167541200000, 28.191461582256],
[1170219600000, 28.930307448808],
[1172638800000, 29.521413891117],
[1175313600000, 28.188285966466],
[1177905600000, 27.704619625831],
[1180584000000, 27.49086242483],
[1183176000000, 28.770679721286],
[1185854400000, 29.06048067145],
[1188532800000, 28.240998844973],
[1191124800000, 33.004893194128],
[1193803200000, 34.075180359928],
[1196398800000, 32.548560664834],
[1199077200000, 30.629727432729],
[1201755600000, 28.642858788159],
[1204261200000, 27.973575227843],
[1206936000000, 27.393351882726],
[1209528000000, 28.476095288522],
[1212206400000, 29.29667866426],
[1214798400000, 29.222333802896],
[1217476800000, 28.092966093842],
[1220155200000, 28.107159262922],
[1222747200000, 25.482974832099],
[1225425600000, 21.208115993834],
[1228021200000, 20.295043095268],
[1230699600000, 15.925754618402],
[1233378000000, 17.162864628346],
[1235797200000, 17.084345773174],
[1238472000000, 22.24600710228],
[1241064000000, 24.530543998508],
[1243742400000, 25.084184918241],
[1246334400000, 16.606166527359],
[1249012800000, 17.239620011628],
[1251691200000, 17.336739127379],
[1254283200000, 25.478492475754],
[1256961600000, 23.017152085244],
[1259557200000, 25.617745423684],
[1262235600000, 24.061133998641],
[1264914000000, 23.223933318646],
[1267333200000, 24.425887263936],
[1270008000000, 35.501471156693],
[1272600000000, 33.775013878675],
[1275278400000, 30.417993630285],
[1277870400000, 30.023598978467],
[1280548800000, 33.327519522436],
[1283227200000, 31.963388450372],
[1285819200000, 30.49896723209],
[1288497600000, 32.403696817913],
[1291093200000, 31.47736071922],
[1293771600000, 31.53259666241],
[1296450000000, 41.760282761548],
[1298869200000, 45.605771243237],
[1301544000000, 39.986557966215],
[1304136000000, 43.84633051005],
[1306814400000, 39.857316881858],
[1309406400000, 37.675127768207],
[1312084800000, 35.775077970313],
[1314763200000, 48.631009702578],
[1317355200000, 42.830831754505],
[1320033600000, 35.611502589362],
[1322629200000, 35.320136981738],
[1325307600000, 31.564136901516],
[1327986000000, 32.074407502433],
[1330491600000, 35.053013769977],
[1333166400000, 33.873085184128],
[1335758400000, 32.321039427046]
]
},
{
"key": "Australia",
"values": [
[1025409600000, 5.1162447683392],
[1028088000000, 4.2022848306513],
[1030766400000, 4.3543715758736],
[1033358400000, 5.4641223667245],
[1036040400000, 6.0041275884577],
[1038632400000, 6.6050520064486],
[1041310800000, 5.0154059912793],
[1043989200000, 5.1835708554647],
[1046408400000, 5.1142682006164],
[1049086800000, 5.0271381717695],
[1051675200000, 5.3437782653456],
[1054353600000, 5.2105844515767],
[1056945600000, 6.552565997799],
[1059624000000, 6.9873363581831],
[1062302400000, 7.010986789097],
[1064894400000, 4.4254242025515],
[1067576400000, 4.9613848042174],
[1070168400000, 4.8854920484764],
[1072846800000, 4.0441111794228],
[1075525200000, 4.0219596813179],
[1078030800000, 4.3065749225355],
[1080709200000, 3.9148434915404],
[1083297600000, 3.8659430654512],
[1085976000000, 3.9572824600686],
[1088568000000, 4.7372190641522],
[1091246400000, 4.6871476374455],
[1093924800000, 5.0398702564196],
[1096516800000, 5.5221787544964],
[1099195200000, 5.424646299798],
[1101790800000, 5.9240223067349],
[1104469200000, 5.9936860983601],
[1107147600000, 5.8499523215019],
[1109566800000, 6.4149040329325],
[1112245200000, 6.4547895561969],
[1114833600000, 5.9385382611161],
[1117512000000, 6.0486751030592],
[1120104000000, 5.23108613838],
[1122782400000, 5.5857797121029],
[1125460800000, 5.3454665096987],
[1128052800000, 5.0439154120119],
[1130734800000, 5.054634702913],
[1133326800000, 5.3819451380848],
[1136005200000, 5.2638869269803],
[1138683600000, 5.5806167415681],
[1141102800000, 5.4539047069985],
[1143781200000, 7.6728842432362],
[1146369600000, 7.719946716654],
[1149048000000, 8.0144619912942],
[1151640000000, 7.942223133434],
[1154318400000, 8.3998279827444],
[1156996800000, 8.532324572605],
[1159588800000, 4.7324285199763],
[1162270800000, 4.7402397487697],
[1164862800000, 4.9042069355168],
[1167541200000, 5.9583963430882],
[1170219600000, 6.3693899239171],
[1172638800000, 6.261153903813],
[1175313600000, 5.3443942184584],
[1177905600000, 5.4932111235361],
[1180584000000, 5.5747393101109],
[1183176000000, 5.3833633060013],
[1185854400000, 5.5125898831832],
[1188532800000, 5.8116112661327],
[1191124800000, 4.3962296939996],
[1193803200000, 4.6967663605521],
[1196398800000, 4.7963004350914],
[1199077200000, 4.1817985183351],
[1201755600000, 4.3797643870182],
[1204261200000, 4.6966642197965],
[1206936000000, 4.3609995132565],
[1209528000000, 4.4736290996496],
[1212206400000, 4.3749762738128],
[1214798400000, 3.3274661194507],
[1217476800000, 3.0316184691337],
[1220155200000, 2.5718140204728],
[1222747200000, 2.7034994044603],
[1225425600000, 2.2033786591364],
[1228021200000, 1.9850621240805],
[1230699600000, 0],
[1233378000000, 0],
[1235797200000, 0],
[1238472000000, 0],
[1241064000000, 0],
[1243742400000, 0],
[1246334400000, 0],
[1249012800000, 0],
[1251691200000, 0],
[1254283200000, 0.44495950017788],
[1256961600000, 0.33945469262483],
[1259557200000, 0.38348269455195],
[1262235600000, 0],
[1264914000000, 0],
[1267333200000, 0],
[1270008000000, 0],
[1272600000000, 0],
[1275278400000, 0],
[1277870400000, 0],
[1280548800000, 0],
[1283227200000, 0],
[1285819200000, 0],
[1288497600000, 0],
[1291093200000, 0],
[1293771600000, 0],
[1296450000000, 0.52216435716176],
[1298869200000, 0.59275786698454],
[1301544000000, 0],
[1304136000000, 0],
[1306814400000, 0],
[1309406400000, 0],
[1312084800000, 0],
[1314763200000, 0],
[1317355200000, 0],
[1320033600000, 0],
[1322629200000, 0],
[1325307600000, 0],
[1327986000000, 0],
[1330491600000, 0],
[1333166400000, 0],
[1335758400000, 0]
]
},
{
"key": "Antarctica",
"values": [
[1025409600000, 1.3503144674343],
[1028088000000, 1.2232741112434],
[1030766400000, 1.3930470790784],
[1033358400000, 1.2631275030593],
[1036040400000, 1.5842699103708],
[1038632400000, 1.9546996043116],
[1041310800000, 0.8504048300986],
[1043989200000, 0.85340686311353],
[1046408400000, 0.843061357391],
[1049086800000, 2.119846992476],
[1051675200000, 2.5285382124858],
[1054353600000, 2.5056570712835],
[1056945600000, 2.5212789901005],
[1059624000000, 2.6192011642534],
[1062302400000, 2.5382187823805],
[1064894400000, 2.3393223047168],
[1067576400000, 2.491219888698],
[1070168400000, 2.497555874906],
[1072846800000, 1.734018115546],
[1075525200000, 1.9307268299646],
[1078030800000, 2.2261679836799],
[1080709200000, 1.7608893704206],
[1083297600000, 1.6242690616808],
[1085976000000, 1.7161663801295],
[1088568000000, 1.7183554537038],
[1091246400000, 1.7179780759145],
[1093924800000, 1.7314274801784],
[1096516800000, 1.2596883356752],
[1099195200000, 1.381177053009],
[1101790800000, 1.4408819615814],
[1104469200000, 3.4743581836444],
[1107147600000, 3.3603749903192],
[1109566800000, 3.5350883257893],
[1112245200000, 3.0949644237828],
[1114833600000, 3.0796455899995],
[1117512000000, 3.3441247640644],
[1120104000000, 4.0947643978168],
[1122782400000, 4.4072631274052],
[1125460800000, 4.4870979780825],
[1128052800000, 4.8404549457934],
[1130734800000, 4.8293016233697],
[1133326800000, 5.2238093263952],
[1136005200000, 3.382306337815],
[1138683600000, 3.7056975170243],
[1141102800000, 3.7561118692318],
[1143781200000, 2.861913700854],
[1146369600000, 2.9933744103381],
[1149048000000, 2.7127537218463],
[1151640000000, 3.1195497076283],
[1154318400000, 3.4066964004508],
[1156996800000, 3.3754571113569],
[1159588800000, 2.2965579982924],
[1162270800000, 2.4486818633018],
[1164862800000, 2.4002308848517],
[1167541200000, 1.9649579750349],
[1170219600000, 1.9385263638056],
[1172638800000, 1.9128975336387],
[1175313600000, 2.3412869836298],
[1177905600000, 2.4337870351445],
[1180584000000, 2.62179703171],
[1183176000000, 3.2642864957929],
[1185854400000, 3.3200396223709],
[1188532800000, 3.3934212707572],
[1191124800000, 4.2822327088179],
[1193803200000, 4.1474964228541],
[1196398800000, 4.1477082879801],
[1199077200000, 5.2947122916128],
[1201755600000, 5.2919843508028],
[1204261200000, 5.198978305031],
[1206936000000, 3.5603057673513],
[1209528000000, 3.3009087690692],
[1212206400000, 3.1784852603792],
[1214798400000, 4.5889503538868],
[1217476800000, 4.401779617494],
[1220155200000, 4.2208301828278],
[1222747200000, 3.89396671475],
[1225425600000, 3.0423832241354],
[1228021200000, 3.135520611578],
[1230699600000, 1.9631418164089],
[1233378000000, 1.8963543874958],
[1235797200000, 1.8266636017025],
[1238472000000, 0.93136635895188],
[1241064000000, 0.92737801918888],
[1243742400000, 0.97591889805002],
[1246334400000, 2.6841193805515],
[1249012800000, 2.5664341140531],
[1251691200000, 2.3887523699873],
[1254283200000, 1.1737801663681],
[1256961600000, 1.0953582317281],
[1259557200000, 1.2495674976653],
[1262235600000, 0.36607452464754],
[1264914000000, 0.3548719047291],
[1267333200000, 0.36769242398939],
[1270008000000, 0],
[1272600000000, 0],
[1275278400000, 0],
[1277870400000, 0],
[1280548800000, 0],
[1283227200000, 0],
[1285819200000, 0.85450741275337],
[1288497600000, 0.91360317921637],
[1291093200000, 0.89647678692269],
[1293771600000, 0.87800687192639],
[1296450000000, 0],
[1298869200000, 0],
[1301544000000, 0.43668720882994],
[1304136000000, 0.4756523602692],
[1306814400000, 0.46947368328469],
[1309406400000, 0.45138896152316],
[1312084800000, 0.43828726648117],
[1314763200000, 2.0820861395316],
[1317355200000, 0.9364411075395],
[1320033600000, 0.60583907839773],
[1322629200000, 0.61096950747437],
[1325307600000, 0],
[1327986000000, 0],
[1330491600000, 0],
[1333166400000, 0],
[1335758400000, 0]
]
}
]

View File

@ -0,0 +1,29 @@
import React from "react";
import NVD3Chart from 'react-nvd3';
import '../../css/Chart.css'
import d3 from 'd3';
class Chart extends React.Component {
calculateChartData = () => {
for (let i = 0; i < this.props.stateCounts.length; i++) {
//set color
this.props.stateCounts[i].color =
this.props.colors.find(element => element[0] ===
this.props.stateCounts[i]["key"]
)[1]
//apply cropping
this.props.stateCounts[i]["values"] =
this.props.stateCounts[i]["values"].slice(0, this.props.animationLength);
}
return this.props.stateCounts;
}
render() {
return(
<div id="chart">
<NVD3Chart type="stackedAreaChart" xAxis={{ tickFormat: (d) => d + 1}} datum={this.calculateChartData} x={(d) => d[0]} y={(d) => d[1]} />
</div>);
}
}
export default Chart;

View File

@ -1,21 +1,16 @@
import React from 'react';
import CytoscapeComponent from 'react-cytoscapejs';
import '../css/Graph.css'
import '../css/Chart.css'
import Slider from './Slider';
import NVD3Chart from 'react-nvd3';
import d3 from 'd3';
import '../../css/Graph.css'
import Slider from '../Slider';
//this component is the right side
class Visual extends React.Component {
class Graph extends React.Component {
constructor(props) {
super(props);
this.animationLength = 101;
//this.props.animationLength = 101;
this.cy = React.createRef();
this.stepTime = 0;
this.neverPlayed = true;
this.state ={animationDuration: 4, step: 0, playing: false};
console.log(require("./data.json"));
}
componentDidMount() {
@ -23,7 +18,6 @@ class Visual extends React.Component {
this.layoutGraph();
this.setState({step: 0}, () => {
//crop animation
this.cropAnimation();
this.visualizeOneStep(false);
});
}
@ -34,7 +28,6 @@ class Visual extends React.Component {
this.layoutGraph();
this.setState({step: 0}, () => {
//first crop the animation
this.cropAnimation();
clearInterval(this.animationId);
this.setState({playing: false});
this.visualizeOneStep(false);
@ -112,37 +105,12 @@ class Visual extends React.Component {
this.setState({animationDuration: e.target.value});
}
//remove steps where the animation does not change
cropAnimation = () => {
console.log("hello");
var data = this.props.simulationData.data;
var lastState = data.length - 1;
for (var i = data.length - 1; i > 0; i--) {
//if (this.checkIfStatesAreEqual(data, lastState, i)) {
//lastState = i;
//}
if (data[lastState] === data[i]) {
lastState = i;
}
}
this.animationLength = lastState + 1;
}
checkIfStatesAreEqual(data, stateOne, stateTwo) {
for (var i = 0; i < stateOne.length; i++) {
if (stateOne[i] !== stateTwo[i]) {
return false;
}
}
return true;
}
visualizeSimulation = () => {
if (this.state.playing) {
clearInterval(this.animationId);
this.setState({playing: false});
return;
} else if (this.state.step < this.animationLength && !this.neverPlayed) {
} else if (this.state.step < this.props.animationLength && !this.neverPlayed) {
this.animationId = setInterval(this.visualizeOneStep, this.stepTime);
this.setState({playing: true});
return;
@ -160,7 +128,7 @@ class Visual extends React.Component {
this.setState({animationDuration: Math.abs(this.state.animationDuration)});
}
this.stepTime = (this.state.animationDuration) * 1000 / this.animationLength;
this.stepTime = (this.state.animationDuration) * 1000 / this.props.animationLength;
this.animationId = setInterval(this.visualizeOneStep, this.stepTime);
this.setState({playing: true});
//update the button
@ -171,11 +139,11 @@ class Visual extends React.Component {
//this is the method to visualize the simulation
visualizeOneStep = (increment = true) => {
//the data of the simulation is stored in: this.props.simulationData
var data = this.props.simulationData.data;
var data = this.props.simulationData;
if (data == null) {
return;
}
if (this.state.step >= this.animationLength) {
if (this.state.step > this.props.animationLength) {
console.log("finished animation");
clearInterval(this.animationId);
this.setState({playing: false});
@ -210,7 +178,7 @@ class Visual extends React.Component {
visualizeSpecificStep = (e) => {
var val = Number(e.target.value);
if (val < 0 && val > this.animationLength) {
if (val < 0 || val > this.props.animationLength) {
return;
}
//first stop the current animation
@ -221,34 +189,6 @@ class Visual extends React.Component {
});
}
recalculate = () => {
//normalize
this.props.normalize();
//then recalculate
this.props.recalculateFuntion();
}
renderPlayPauseButton = () => {
if (this.state.playing) {
return
}
}
calculateChartData = () => {
console.log(this.props.simulationData.stateCounts);
for (let i = 0; i < this.props.simulationData.stateCounts.length; i++) {
//set color
this.props.simulationData.stateCounts[i].color =
this.props.colors.find(element => element[0] ===
this.props.simulationData.stateCounts[i]["key"]
)[1]
//apply cropping
this.props.simulationData.stateCounts[i]["values"] =
this.props.simulationData.stateCounts[i]["values"].slice(0, this.animationLength);
}
return this.props.simulationData.stateCounts;
}
render() {
var playPauseString = "Play Simulation ▶️";
@ -258,20 +198,16 @@ class Visual extends React.Component {
//show directed graph *or* chart
//we want this to be a "tabbed" approach
return (<div id="graphDiv">
<button id="recalculate" onClick={this.recalculate}>Recalculate 🔁</button>
<button id="runSimulationButton" onClick={this.visualizeSimulation}>{playPauseString}</button>
<div>
<h3 id="durationDescription">Duration (seconds): </h3>
<input id="animationDuration" type="number" onChange={this.changeAnimationDuration} value={this.state.animationDuration}/>
</div>
<Slider description="Step" min="0" max={this.animationLength} currentValue={this.state.step} handleChange={this.visualizeSpecificStep}/>
<Slider description="Step" min="0" max={this.props.animationLength} currentValue={this.state.step} handleChange={this.visualizeSpecificStep}/>
<CytoscapeComponent id="cy" userZoomingEnabled={false} userPanningEnabled={false}
cy={(cy) => { this.cy = cy }} elements={this.props.graphData}/>
<div id="chart">
<NVD3Chart type="stackedAreaChart" xAxis={{ tickFormat: (d) => d3.time.format('%x')(new Date(d)) }} datum={this.calculateChartData} x={(d) => d[0]} y={(d) => d[1]} />
</div>
</div>);
}
}
export default Visual;
export default Graph;

View File

@ -0,0 +1,62 @@
import React from 'react';
import Chart from './Chart';
import Graph from './Graph';
//this component is the right side
class Visual extends React.Component {
constructor(props) {
super(props);
this.cy = React.createRef();
this.stepTime = 0;
this.neverPlayed = true;
this.state ={animationDuration: 4, step: 0, playing: false, animationLength: 100, newColors: null};
}
componentDidMount() {
this.cropAnimation();
this.setState({newColors: this.props.colors});
}
//remove steps where the animation does not change
cropAnimation = () => {
var data = this.props.simulationData.data;
var lastState = data.length - 1;
for (var i = data.length - 1; i > 0; i--) {
//if (this.checkIfStatesAreEqual(data, lastState, i)) {
//lastState = i;
//}
if (data[lastState] === data[i]) {
lastState = i;
}
}
this.setState({animationLength: lastState + 1})
//this.animationLength = lastState + 1;
}
recalculate = () => {
//normalize
this.props.normalize();
//then recalculate
this.props.recalculateFuntion();
//now crop
this.cropAnimation();
//update the colors for the chart
this.setState({newColors: this.props.colors});
}
render() {
//show directed graph *or* chart
//we want this to be a "tabbed" approach
//<Chart stateCounts={this.props.simulationData.stateCounts}/>
return (<div id="graphDiv">
<button id="recalculate" onClick={this.recalculate}>Recalculate 🔁</button>
<Graph animationLength={this.state.animationLength} graphData={this.props.graphData} normalize={this.props.normalize} colors={this.props.colors} simulationData={this.props.simulationData.data}/>
<div id="chart">
<Chart stateCounts={this.props.simulationData.stateCounts} colors={this.state.newColors} animationLength={this.state.animationLength}/>
</div>
</div>);
}
}
export default Visual;

View File

@ -127,7 +127,10 @@ function generateNodes(edgelist){
allNodes.push(e[1]);
}
//sort
allNodes = allNodes.sort((a, b) => (a > b));
allNodes = allNodes.sort(function(a, b) {
return a - b;
});
//remove duplicates
let finalArray = [];
var last = -1;
@ -206,6 +209,7 @@ function simulate(newRules, newStates, newDistr, newGraph, newHorizon){
labels = [];
state_counts = [];
//initiate count_states
for (var state in states) {
state = states[state];