Files
@ c954bec4a590
Branch filter:
Location: AENC/switchchain/triangle_creation_frequency_plots.m - annotation
c954bec4a590
1.7 KiB
application/vnd.wolfram.mathematica.package
Add datafile with general properties
5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 5cec3a409ef3 | (* ::Package:: *)
Needs["ErrorBarPlots`"]
(* ::Section:: *)
(*Data import*)
gsraw=Import[NotebookDirectory[]<>"data/graphdata_timeevol.m"];
(* gsraw=SortBy[gsraw,{#[[1,1]]&,#[[1,2]]&}]; (* Sort by n and then by tau. The {} forces a *stable* sort because otherwise Mathematica sorts also on triangle count and other things. *) *)
gdata=GatherBy[gsraw,{#[[1,2]]&,#[[1,1]]&}];
(* Data format: *)
(* gdata[[ tau index, n index, run index , datatype index ]] *)
(* datatype index:
1: {n,tau}
2: #triangles time sequence
*)
nlabels=Map["n = "<>ToString[#]&,gdata[[1,All,1,1,1]]];
taulabels=Map["tau = "<>ToString[#]&,gdata[[All,1,1,1,2]]];
(* ::Section:: *)
(*Triangle creation frequencies*)
(* ::Subsection:: *)
(*Plot triangle count over "time" in Markov chain instances*)
numPlots=20;
selectedData=gdata[[1,1]][[-numPlots;;-1]];
measureSkip=1;
minCount=Min[Map[Min[#[[2]]]&,selectedData]];
maxCount=Max[Map[Max[#[[2]]]&,selectedData]];
maxTime=Max[Map[Length[#[[2]]]&,selectedData]];
(* maxTime=30000; *)
skipPts=Max[1,Round[maxTime/500]]; (* Plotting every point is slow. Plot only once per `skipPts` timesteps *)
coarseData=Map[#[[2,1;;maxTime;;skipPts]]&,selectedData];
labels=Map["{n,tau} = "<>ToString[#[[1]]]&,selectedData];
ListPlot[coarseData,Joined->True,PlotRange->{0*minCount,maxCount},DataRange->{0,measureSkip*maxTime},PlotLegends->labels]
(* Map[ListPlot[#,Joined->True,PlotRange\[Rule]{minCount,maxCount},DataRange\[Rule]{0,maxTime}]&,coarseData] *)
differences=Map[Differences[#[[2,25000;;-1]]]&,gdata,{3}];
(* Take three runs of each *)
histograms=Map[Histogram[#[[{1,6,11,16}]],{-20,20,1},"LogCount",ImageSize->300]&,differences,{2}];
TableForm[histograms,TableHeadings->{taulabels,nlabels}]
|