Files
@ b9db6f3e92be
Branch filter:
Location: AENC/switchchain/triangle_etmt_plots.m - annotation
b9db6f3e92be
3.6 KiB
application/vnd.wolfram.mathematica.package
Add CCM 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}]
]
|