Files
@ d0883e1df741
Branch filter:
Location: AENC/switchchain/triangle_etmt_plots.m - annotation
d0883e1df741
3.6 KiB
application/vnd.wolfram.mathematica.package
Add proper cputime plots
49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac c9c22e41130d 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac c9c22e41130d 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d 49fd15989dac 49fd15989dac 49fd15989dac c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d 49fd15989dac 49fd15989dac c9c22e41130d 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac c9c22e41130d 49fd15989dac 49fd15989dac c9c22e41130d c9c22e41130d c9c22e41130d 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac c9c22e41130d c9c22e41130d 49fd15989dac 49fd15989dac 49fd15989dac 49fd15989dac c9c22e41130d c9c22e41130d 49fd15989dac 49fd15989dac 49fd15989dac c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d c9c22e41130d | (* ::Package:: *)
Needs["ErrorBarPlots`"]
gsraw=Import[NotebookDirectory[]<>"data/graphdata_etmt.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: etmt
*)
tauvalues=gdata[[All,1,1,1,2]];
nlabels=Map["n = "<>ToString[#]&,gdata[[1,All,1,1,1]]];
taulabels=Map["\[Tau] = "<>ToString[#]&,gdata[[All,1,1,1,2]]];
etmtMean=Map[Mean[N[#[[All,2]]]]&,gdata,{2}];
etmtSD=Map[StandardDeviation[N[#[[All,2]]]]&,gdata,{2}];
etmtQuantile=Map[Quantile[#[[All,2]],99/100]&,gdata,{2}];
histograms=Map[Histogram[#[[All,2]]]&,gdata,{2}];
histogramsWithLines=MapIndexed[
Histogram[#[[All,2]],PlotRange->All,
Epilog->Line[{
{{etmtMean[[#2/.List->Sequence]],0},
{etmtMean[[#2/.List->Sequence]],500}},
{{etmtMean[[#2/.List->Sequence]]+etmtSD[[#2/.List->Sequence]],0},
{etmtMean[[#2/.List->Sequence]]+etmtSD[[#2/.List->Sequence]],500}},
{{etmtQuantile[[#2/.List->Sequence]],0},
{etmtQuantile[[#2/.List->Sequence]],500}}
}]
]
&,gdata,{2}];
TableForm[histogramsWithLines,TableHeadings->{taulabels,nlabels}]
gdataSwitched=Transpose[gdata];
tauChoices={1,3,5,7,9};
combiHistograms=Map[SmoothHistogram[#[[tauChoices,All,2]],PlotRange->All,PlotLegends->taulabels[[tauChoices]],PlotLabel->"n = "<>ToString[#[[1,1,1,1]]]]&,gdataSwitched,{1}];
combiHistograms[[9]]
Export[NotebookDirectory[]<>"plots/ETMTdistribution.pdf",combiHistograms[[9]]]
mixingTimesBars=Map[{{#[[1,1,1]],Mean[#[[All,2]]]},ErrorBar[StandardDeviation[#[[All,2]]]]}&,gdata,{2}];
mixingTimesQuantiles=Map[{#[[1,1,1]],Quantile[#[[All,2]],99/100]}&,gdata,{2}];
plot1=ErrorListPlot[mixingTimesBars[[{1,2,3,5,8}]],Joined->True,PlotMarkers->Automatic,Frame->True,FrameLabel->{"n","ETMT"},PlotLegends->taulabels];
plot2=ListPlot[mixingTimesQuantiles[[{1,2,3,5,8}]],Joined->True,PlotMarkers->Automatic,Frame->True,FrameLabel->{"n","ETMT"},PlotLegends->taulabels];
Show[plot2,plot1]
mixingTimesDivN=Map[{#[[1,1]],#[[1,2]]/(#[[1,1]])}&,mixingTimesBars,{2}];
mixingTimesDivNlogN=Map[{#[[1,1]],#[[1,2]]/(#[[1,1]]*Log[#[[1,1]]])}&,mixingTimesBars,{2}];
etmtQuantileDivN=Map[{#[[1]],#[[2]]/(#[[1]])}&,mixingTimesQuantiles,{2}];
etmtQuantileDivNlogN=Map[{#[[1]],#[[2]]/(#[[1]]*Log[#[[1]]])}&,mixingTimesQuantiles,{2}];
plotN=ListPlot[mixingTimesDivN,Joined->True,PlotMarkers->Automatic,Frame->True,FrameLabel->{"n","\[LeftAngleBracket]ETMT\[RightAngleBracket]/n"},PlotLegends->taulabels,ImageSize->300]
plotNlogN=ListPlot[mixingTimesDivNlogN,Joined->True,PlotMarkers->Automatic,Frame->True,FrameLabel->{"n","\[LeftAngleBracket]ETMT\[RightAngleBracket]/(n log n)"},PlotLegends->taulabels,ImageSize->300]
plotQuantileN=ListPlot[etmtQuantileDivN,Joined->True,PlotMarkers->Automatic,Frame->True,FrameLabel->{"n","q(ETMT,99%)/n"},PlotLegends->taulabels,ImageSize->300]
plotQuantileNlogN=ListPlot[etmtQuantileDivNlogN,Joined->True,PlotMarkers->Automatic,Frame->True,FrameLabel->{"n","q(ETMT,99%)/(n log n)"},PlotLegends->taulabels,ImageSize->300]
Export[NotebookDirectory[]<>"plots/ETMTdivN.pdf",plotN]
etmtQuantileDivNmax=Map[Max[#[[All,2]]]&,etmtQuantileDivN];
etmtQuantileDivNmax=Transpose[{tauvalues,etmtQuantileDivNmax}];
mixingTimesDivNmax=Map[Max[#[[All,2]]]&,mixingTimesDivN];
mixingTimesDivNmax=Transpose[{tauvalues,mixingTimesDivNmax}];
Show[
Plot[{(50-30(tau-2)),32-26(tau-2)},{tau,2,3},AxesOrigin->{2,0}],
ListPlot[{etmtQuantileDivNmax,mixingTimesDivNmax},Joined->True,PlotMarkers->Automatic,PlotRange->{{2,3},All}]
]
|