Files
@ d99b1ddf4d24
Branch filter:
Location: AENC/switchchain/triangle_etmt_plots.m - annotation
d99b1ddf4d24
3.6 KiB
application/vnd.wolfram.mathematica.package
Add MaTeX plot label to triangle-exponent plot
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}]
]
|