diff --git a/triangle_exponent_plots.m b/triangle_exponent_plots.m index 230af3640f86d2ac3426dabf6366eaff7a62f246..e4645a58599c3a04a13c59384304c82335aaee39 100644 --- a/triangle_exponent_plots.m +++ b/triangle_exponent_plots.m @@ -19,6 +19,7 @@ Needs["ErrorBarPlots`"] (* graphdata_exponent_mix32.m *) (* graphdata_exponent_highN.m *) (* graphdata_properties2.m *) +(* graphdata_canonical_properties.m *) gsraw=Import[NotebookDirectory[]<>"data/graphdata_exponent_mix32.m"]; gsraw=SortBy[gsraw,#[[1,1]]&]; (* Sort by n *) averagesGrouped=GatherBy[gsraw,{#[[1,2]]&,#[[1,1]]&}]; @@ -27,6 +28,10 @@ averagesGrouped=GatherBy[gsraw,{#[[1,2]]&,#[[1,1]]&}]; (* averagesGrouped[[ tau index, n index, run index , {ntau, avgtri} ]] *) nlabels=Map["n = "<>ToString[#]&,averagesGrouped[[1,All,1,1,1]]]; taulabels=Map["tau = "<>ToString[#]&,averagesGrouped[[All,1,1,1,2]]]; +mediansErrorBars=Map[ +{{#[[1,1,1]],Median[#[[All,2]]]}, +ErrorBar[MedianDeviation[#[[All,2]]]] +}&,averagesGrouped,{2}]; averagesErrorBars=Map[ {{#[[1,1,1]],Mean[#[[All,2]]]}, ErrorBar[StandardDeviation[#[[All,2]]]] @@ -34,9 +39,11 @@ ErrorBar[StandardDeviation[#[[All,2]]]] ErrorListPlot[averagesErrorBars,Joined->True,PlotMarkers->Automatic,PlotRange->All,AxesLabel->{"n","\[LeftAngleBracket]triangles\[RightAngleBracket]"},PlotLegends->taulabels] +ErrorListPlot[mediansErrorBars,Joined->True,PlotMarkers->Automatic,PlotRange->All,AxesLabel->{"n","median triangles"},PlotLegends->taulabels] ListLogLogPlot[averagesErrorBars[[All,All,1]],Joined->True,PlotMarkers->Automatic,AxesLabel->{"n","\[LeftAngleBracket]triangles\[RightAngleBracket]"},PlotLegends->taulabels] +ListLogLogPlot[mediansErrorBars[[All,All,1]],Joined->True,PlotMarkers->Automatic,AxesLabel->{"n","median triangles"},PlotLegends->taulabels] (* ::Subsection:: *) @@ -45,18 +52,23 @@ ListLogLogPlot[averagesErrorBars[[All,All,1]],Joined->True,PlotMarkers->Automati nRange=5;;-1; nRange=All; -loglogdata=Log[averagesErrorBars[[All,nRange,1]]]; -fits=Map[Fit[#,{1,logn},logn]&,loglogdata]; -fitsExtra=Map[LinearModelFit[#,logn,logn]&,loglogdata]; + +averagesLoglogdata=Log[averagesErrorBars[[All,nRange,1]]]; +mediansLoglogdata=Log[mediansErrorBars[[All,nRange,1]]]; +averagesFits=Map[Fit[#,{1,logn},logn]&,averagesLoglogdata]; +averagesFitsExtra=Map[LinearModelFit[#,logn,logn]&,averagesLoglogdata]; +mediansFits=Map[Fit[#,{1,logn},logn]&,mediansLoglogdata]; +mediansFitsExtra=Map[LinearModelFit[#,logn,logn]&,mediansLoglogdata]; -fitsExtra[[1]]["ParameterConfidenceIntervalTable"] -fitsExtra[[1]]["BestFitParameters"] -fitsExtra[[1]]["ParameterErrors"] -fitsExtra[[1]]["ParameterConfidenceIntervals"] +averagesFitsExtra[[1]]["ParameterConfidenceIntervalTable"] +averagesFitsExtra[[1]]["BestFitParameters"] +averagesFitsExtra[[1]]["ParameterErrors"] +averagesFitsExtra[[1]]["ParameterConfidenceIntervals"] -plot1=Show[ListLogLogPlot[averagesErrorBars[[All,All,1]],Joined->False,PlotMarkers->Automatic,AxesLabel->{"n","\[LeftAngleBracket]triangles\[RightAngleBracket]"},PlotLegends->taulabels],Plot[fits,{logn,1,2000}]] +plot1a=Show[ListLogLogPlot[averagesErrorBars[[All,All,1]],Joined->False,PlotMarkers->Automatic,AxesLabel->{"n","\[LeftAngleBracket]triangles\[RightAngleBracket]"},PlotLegends->taulabels],Plot[averagesFits,{logn,1,2000}]] +plot1b=Show[ListLogLogPlot[mediansErrorBars[[All,All,1]],Joined->False,PlotMarkers->Automatic,AxesLabel->{"n","median triangles"},PlotLegends->taulabels],Plot[mediansFits,{logn,1,2000}]] Export[NotebookDirectory[]<>"plots/avgtris_n.pdf",plot1] @@ -67,8 +79,9 @@ Export[NotebookDirectory[]<>"plots/avgtris_n.pdf",plot1] tauValues=averagesGrouped[[All,1,1,1,2]]; -exponents=Transpose[{tauValues,fits[[All,2,1]]}]; -Show[ListPlot[exponents,Joined->True,PlotMarkers->Automatic,AxesLabel->{"tau","exponent"},PlotRange->{{2,3},{0,1.6}}],Plot[3/2(3-tau),{tau,2,3}]] +averagesExponents=Transpose[{tauValues,averagesFits[[All,2,1]]}]; +mediansExponents=Transpose[{tauValues,mediansFits[[All,2,1]]}]; +Show[ListPlot[{averagesExponents,mediansExponents},Joined->True,PlotMarkers->Automatic,AxesLabel->{"tau","exponent"},PlotRange->{{2,3},{0,1.6}}],Plot[3/2(3-tau),{tau,2,3}]] (* ::Subsection:: *) @@ -76,9 +89,11 @@ Show[ListPlot[exponents,Joined->True,PlotMarkers->Automatic,AxesLabel->{"tau","e tauValues=averagesGrouped[[All,1,1,1,2]]; -exponentsErrorBars=Map[{{#[[1]],#[[2]]["BestFitParameters"][[2]]},ErrorBar[#[[2]]["ParameterConfidenceIntervals"][[2]]-#[[2]]["BestFitParameters"][[2]]]}&, -Transpose[{tauValues,fitsExtra}]]; -plot2=Show[ErrorListPlot[exponentsErrorBars,Joined->True,PlotMarkers->Automatic,Frame->True,FrameLabel->{"tau","triangle exponent"},PlotRange->{{2,3},{0,1.6}},ImageSize->300],Plot[3/2(3-tau),{tau,2,3},PlotStyle->{Dashed}]] +averagesExponentsErrorBars=Map[{{#[[1]],#[[2]]["BestFitParameters"][[2]]},ErrorBar[#[[2]]["ParameterConfidenceIntervals"][[2]]-#[[2]]["BestFitParameters"][[2]]]}&, +Transpose[{tauValues,averagesFitsExtra}]]; +mediansExponentsErrorBars=Map[{{#[[1]],#[[2]]["BestFitParameters"][[2]]},ErrorBar[#[[2]]["ParameterConfidenceIntervals"][[2]]-#[[2]]["BestFitParameters"][[2]]]}&, +Transpose[{tauValues+0.01,mediansFitsExtra}]]; +plot2=Show[ErrorListPlot[{averagesExponentsErrorBars,mediansExponentsErrorBars},Joined->True,PlotMarkers->Automatic,Frame->True,FrameLabel->{"tau","triangle exponent"},PlotRange->{{2,3},{0,1.6}},ImageSize->300],Plot[3/2(3-tau),{tau,2,3},PlotStyle->{Dashed}]] Export[NotebookDirectory[]<>"plots/triangle_exponent.pdf",plot2]