diff --git a/.gitignore b/.gitignore index 542b420..45c6747 100644 --- a/.gitignore +++ b/.gitignore @@ -108,20 +108,21 @@ simulations/ !**/LaTeX/*.bib **/LaTeX/*-blx.bib -# Include subfolders for images and plots -!**/LaTeX/plots/ -**/LaTeX/plots/* -!**/LaTeX/plots/*.tex -!**/LaTeX/images/ -**/LaTeX/images/* -!**/LaTeX/images/*.tex - mlda_analysis/ References/ dataAnalysis/ *.csv *.csv.log +# Include subfolders for images and plots +!**/LaTeX/plots/ +**/LaTeX/plots/* +!**/LaTeX/plots/*.tex +!**/LaTeX/plots/*.csv +!**/LaTeX/images/ +**/LaTeX/images/* +!**/LaTeX/images/*.tex + # Images (except images used in LaTeX) *.png *.svg diff --git a/LaTeX/images/TorustangentSpace.tex b/LaTeX/images/TorustangentSpace.tex new file mode 100644 index 0000000..57e4a91 --- /dev/null +++ b/LaTeX/images/TorustangentSpace.tex @@ -0,0 +1,125 @@ +\documentclass{standalone} + +\usepackage{pgfplots} % TikZ (TeX ist kein Zeichenprogramm) +\usetikzlibrary{calc} % for vector arithmetics + +\usepackage{amssymb, bm} + +\renewcommand{\t}[1]{{#1}^{T}} +\newcommand{\mat}[1]{\boldsymbol{#1}} +\newcommand{\manifold}[1]{\mathfrak{#1}} + +% PGF-Plot / TikZ config +\usetikzlibrary{% + calc, through, intersections, patterns, patterns.meta, pgfplots.colormaps +} +\pgfplotsset{ + compat = newest, + colormap = {grayscale}{color=(lightgray) color=(white) color=(lightgray)}, + colormap = {blackscale}{color=(black!70) color=(black!50) color=(black!70)}, + colormap = {redscale}{color=(black!70!red) color=(black!50!red) color=(black!70!red)}, + colormap = {bluescale}{color=(black!70!blue) color=(black!50!blue) color=(black!70!blue)}, +} + +\begin{document} +\begin{tikzpicture}[ + >=latex, + scale = 1, + declare function = { % Note: NO spaces in function argument list! + X(\u,\v) = (2 + cos(\u)) * cos(\v); + Y(\u,\v) = (2 + cos(\u)) * sin(\v); + Z(\u,\v) = sin(\u); + tx(\u,\v,\x,\y) = - sin(\u) * cos(\u) * \x - (2 + cos(\u)) * sin(\v) * \y; + ty(\u,\v,\x,\y) = - sin(\u) * cos(\u) * \x + (2 + cos(\u)) * cos(\v) * \y; + tz(\u,\v,\x,\y) = + cos(\u) * \x; + } +] + \begin{axis}[ + axis equal image, + hide axis, + view = {120}{30}, + scale = 2 + ] + \addplot3[ + surf, + shader = faceted interp, + samples = 20, + samples y = 40, + domain = 0:360, + domain y = 0:360, + z buffer = sort, + colormap name = grayscale, + thin + ] + ({X(\x, \y)}, {Y(\x, \y)}, {Z(\x, \y)}); + + % at = (1.433013, 2.482051, 0.5) // \u, \v = (30, 60) + % into = (-0.4330127, -0.4330127, 0.8660254) + % and = (-2.482051, 1.433013, 0) + + % X <- c(1.433013, 2.482051, 0.5) + % dx <- c(-0.4330127, -0.4330127, 0.8660254) + % dy <- c(-2.482051, 1.433013, 0) + + \addplot3[ + mesh, + shader = interp, + patch type = line, + variable = t, + domain = -44:210.5, + samples = 64, + samples y = 1, + colormap name = redscale + ] + ({X(\t, \t + 30)}, {Y(\t, \t + 30)}, {Z(\t, \t + 30)}); + + \addplot3[ + mesh, + shader = interp, + patch type = line, + variable = t, + domain = -50:119, + samples = 64, + samples y = 1, + colormap name = bluescale + ] + ({X(\t, -0.3 * \t + 69)}, {Y(\t, -0.3 * \t + 69)}, {Z(\t, -0.3 * \t + 69)}); + + \coordinate (x) at ({X(30, 60)}, {Y(30, 60)}, {Z(30, 60)}); + + \draw[dashed, fill = gray, opacity = 0.4] ( + {X(30, 60) + tx(30, 60, 0.4 + 0.8, 0.4 - 0.24)}, + {Y(30, 60) + ty(30, 60, 0.4 + 0.8, 0.4 - 0.24)}, + {Z(30, 60) + tz(30, 60, 0.4 + 0.8, 0.4 - 0.24)} + ) -- ( + {X(30, 60) + tx(30, 60, -0.4 + 0.8, -0.4 - 0.24)}, + {Y(30, 60) + ty(30, 60, -0.4 + 0.8, -0.4 - 0.24)}, + {Z(30, 60) + tz(30, 60, -0.4 + 0.8, -0.4 - 0.24)} + ) node[anchor = west, opacity = 1, outer sep=0.5em] {$T_{\mat{x}}\manifold{A}$} -- ( + {X(30, 60) + tx(30, 60, -0.4 - 0.8, -0.4 + 0.24)}, + {Y(30, 60) + ty(30, 60, -0.4 - 0.8, -0.4 + 0.24)}, + {Z(30, 60) + tz(30, 60, -0.4 - 0.8, -0.4 + 0.24)} + ) -- ( + {X(30, 60) + tx(30, 60, 0.4 - 0.8, 0.4 + 0.24)}, + {Y(30, 60) + ty(30, 60, 0.4 - 0.8, 0.4 + 0.24)}, + {Z(30, 60) + tz(30, 60, 0.4 - 0.8, 0.4 + 0.24)} + ) -- cycle; + + \draw[->, black!50!red] (x) -- ( + {X(30, 60) + tx(30, 60, 0.4, 0.4)}, + {Y(30, 60) + ty(30, 60, 0.4, 0.4)}, + {Z(30, 60) + tz(30, 60, 0.4, 0.4)} + ) node[pos = 0.7, anchor = north west, inner sep = 0pt] {$\t{\nabla\gamma_1(0)}$}; + + \draw[->, black!50!blue] (x) -- ( + {X(30, 60) + tx(30, 60, 0.8, -0.24)}, % -0.24 = 0.8 * -0.3 + {Y(30, 60) + ty(30, 60, 0.8, -0.24)}, + {Z(30, 60) + tz(30, 60, 0.8, -0.24)} + ) node[pos = 0.7, anchor = south west, inner sep = 0pt] {$\t{\nabla\gamma_2(0)}$}; + + \node[anchor = north] at (x) {$\mat{x}$}; + \node[circle, inner sep={1pt}, outer sep={0pt}, fill=black] at (x) {}; + + \end{axis} +\end{tikzpicture} +\end{document} diff --git a/LaTeX/images/embeddImage.tex b/LaTeX/images/embeddImage.tex new file mode 100644 index 0000000..6ef33ae --- /dev/null +++ b/LaTeX/images/embeddImage.tex @@ -0,0 +1,118 @@ +\documentclass{standalone} + +\usepackage{pgfplots} % TikZ (TeX ist kein Zeichenprogramm) +\usetikzlibrary{calc, perspective, pgfplots.colormaps} % PGF-Plot / TikZ config + +\pgfplotsset{ + compat = newest, + colormap = {grayscale}{color=(lightgray) color=(white) color=(lightgray)}, + colormap = {blackscale}{color=(black!70) color=(black!50) color=(black!70)}, +} + +% Define the (component) embedding into the torus +\tikzset{declare function = { % Note: NO spaces in function argument list! + Z(\u,\v) = 0.4 * \u * \u * cos(\v * 120); + bx(\t) = -0.5 + 0.3 * cos(\t) + 0.05 * sin(3 * \t); + by(\t) = 0.2 + 0.3 * sin(\t); +}} + +% Further packages and macros +\usepackage{amssymb, bm} + +\renewcommand{\t}[1]{{#1}^{T}} +\newcommand{\mat}[1]{\boldsymbol{#1}} +\newcommand{\manifold}[1]{\mathfrak{#1}} + + + +\begin{document} +\begin{tikzpicture}[>=latex] + + \begin{axis}[ + axis equal image, + hide axis, + view = {120}{30}, + scale = 1, + clip = false + ] + \coordinate (O) at (0, 0, 0); + + \draw[->] (-0.1, 0, 0) -- (0.6, 0, 0) node[pos = 1.1] {}; + \draw[->] (0, -0.1, 0) -- (0, 1.2, 0) node[pos = 1.1] {}; + \draw[->] (0, 0, -0.1) -- (0, 0, 1.0) node[pos = 1.1] {}; + + \addplot3[ + surf, + shader = faceted interp, + samples = 16, + samples y = 16, + domain = -1:0.4, + domain y = -0.5:1, + z buffer = sort, + colormap name = grayscale, + thin + ] + ({\x}, {\y}, {Z(\x, \y)}); + + \addplot3[ + samples = 64, + samples y = 0, + domain = 0:360, + color = black!40!gray, + fill = black, + fill opacity = 0.1, + colormap name = blackscale, + thick + ] + ({bx(\x)}, {by(\x)}, {Z(bx(\x), by(\x))}); + + \coordinate (coordU) at ({bx(150)}, {by(150)}, {Z(bx(150), by(150))}); + + \node[anchor = south west] (U) at (coordU) {$U$}; + + \node[ + circle, fill=black, inner sep=0.75pt, label={$\mat{\theta}_0$} + ] (theta0) at (-0.5, 0.2, {Z(-0.5, 0.2)}) {}; + + \node at (0, 0.5, 1.2) {$\Theta\subseteq\mathbb{R}^p$}; + + \node (UU) at ({bx(0)}, {by(0)}, {Z(bx(0), by(0))}) {}; + + \end{axis} + + \begin{scope}[shift = {(11cm, 2cm)}, scale = 2.5] + + \coordinate (O) at (-1.1, -0.3); + + \draw[step=0.1, lightgray!80, thin] (O) grid +(1.2, 1.2); + + \draw[->] ($(O) - (0.05, 0)$) -- +(1.4, 0) node[pos=1.1] {}; + \draw[->] ($(O) - (0, 0.05)$) -- +(0, 1.4) node[pos=1.1] {}; + + \draw[domain=0:360, smooth, variable=\x, fill=black, fill opacity = 0.1, thick] plot ({bx(\x)}, {by(\x)}); + + \node[ + circle, fill=black, inner sep=0.75pt, label={$\mat{s}_0$} + ] (s0) at (-0.5, 0.2) {}; + + \coordinate (coordPhiU) at ({bx(90)}, {by(90)}); + + \node[anchor = south east, outer sep = 0pt] (phiU) at (coordPhiU) {$\varphi(U)$}; + + \node at (-0.5, 1.28) {$\varphi(U)\subseteq\mathbb{R}^d$}; + + \node (phiUU) at ({bx(270)}, {by(270)}) {}; + + \end{scope} + + + \draw[->, out = 20, in = 160] (U.north east) to node[above, pos = 0.5] {$\varphi$} (phiU.north west); + \draw[->, out = 200, in = 340] (phiU.south west) to node[above, pos = 0.5] {$\varphi^{-1}$} (U.south east); + + \node (R) at (6.1, 0) {$\mathbb{R}$}; + + \draw[->, out = 270, in = 180] (UU) to node[below left, pos = 0.6] {$M$} (R); + \draw[->, out = 270, in = 0] (phiUU) to node[below right, pos = 0.4] {$M_{\varphi}$} (R); + +\end{tikzpicture} +\end{document} diff --git a/LaTeX/images/reduction.tex b/LaTeX/images/reduction.tex new file mode 100644 index 0000000..292f52a --- /dev/null +++ b/LaTeX/images/reduction.tex @@ -0,0 +1,36 @@ +\begin{tikzpicture}[scale = \tikzscale], line width = 1pt] + + \def\rect#1#2#3{ + \draw (0, 0, 0) -- (#1, 0, 0) -- (#1, #2, 0) -- (0, #2, 0) -- cycle; + + \draw[ ] (#1, 0, -#3) -- (#1, #2, -#3) -- (0, #2, -#3); + \draw[dashed] (#1, 0, -#3) -- (0, 0, -#3) -- (0, #2, -#3); + + \draw[dashed] (0, 0, 0) -- (0, 0, -#3); + \draw[ ] (0, #2, 0) -- (0, #2, -#3); + \draw[ ] (#1, 0, 0) -- (#1, 0, -#3); + \draw[ ] (#1, #2, 0) -- (#1, #2, -#3); + } + + \begin{scope}[yshift = 1cm, line width = 1pt] + \rect{1.5}{1}{2} + \node[font = \boldmath] at (1, 0.5) {$\ten{R}(\ten{X})$}; + \end{scope} + \rect{3}{2}{4} + \node at (2, 0.5) {$\ten{X} - \E\ten{X}$}; + + \draw[lightgray, line width = 0.7pt] (-2.1, 2) arc (180:270:2); + \draw[fill = lightgray, fill opacity = 0.7] (-2.1, 1) rectangle +(2, 1) + node [pos = 0.5] {$\t{\mat{\beta}_1}$}; + + \draw[lightgray, line width = 0.7pt, domain = 0:1, smooth, variable = \t] + plot ({0}, {2.1 + 4 * cos(90 * \t)}, {-4 * sin(90 * \t)}); + \draw[fill = lightgray, fill opacity = 0.7] + (0, 2.1, 0) -- (0, 2.1, -2) -- (0, 6.1, -2) -- (0, 6.1, 0) -- cycle; + \node[opacity = 0.7, cm={0.66, 0.66, 0, 1, (0, 0)}] + at (0, 4.1, -1.1) {$\t{\mat{\beta}_3}$}; + + \draw[lightgray, line width = 0.7pt] (0, 5.1) arc (90:0:3); + \draw[fill = lightgray, fill opacity = 0.7] (0, 2.1) rectangle +(1.5, 3) + node [pos = 0.5] {$\t{\mat{\beta}_2}$}; +\end{tikzpicture} diff --git a/LaTeX/images/sim-normal.tex b/LaTeX/images/sim-normal.tex new file mode 100644 index 0000000..5711b03 --- /dev/null +++ b/LaTeX/images/sim-normal.tex @@ -0,0 +1,91 @@ +\begin{tikzpicture}[x = 4pt, y = 1.3pt, scale = \tikzscale] + +\path[use as bounding box] (12, 10) rectangle (181, 290); + +\begin{scope}[inner sep = 0pt, outer sep = 0pt, line width = 0.4pt] + \draw ( 44.64, 73.03) -- (132.42, 73.03); + \draw ( 44.64, 73.03) -- ( 44.64, 68.05); + \draw ( 59.27, 73.03) -- ( 59.27, 68.05); + \draw ( 73.90, 73.03) -- ( 73.90, 68.05); + \draw ( 88.53, 73.03) -- ( 88.53, 68.05); + \draw (103.16, 73.03) -- (103.16, 68.05); + \draw (117.79, 73.03) -- (117.79, 68.05); + \draw (132.42, 73.03) -- (132.42, 68.05); + + \node[anchor=base, scale = 0.83] at ( 44.64, 50) {100}; + \node[anchor=base, scale = 0.83] at ( 73.90, 50) {300}; + \node[anchor=base, scale = 0.83] at (103.16, 50) {500}; + \node[anchor=base, scale = 0.83] at (132.42, 50) {700}; + + \draw (40.84, 79.52) -- (40.84, 241.75); + \draw (40.84, 79.52) -- (35.86, 79.52); + \draw (40.84, 111.97) -- (35.86, 111.97); + \draw (40.84, 144.42) -- (35.86, 144.42); + \draw (40.84, 176.86) -- (35.86, 176.86); + \draw (40.84, 209.31) -- (35.86, 209.31); + \draw (40.84, 241.75) -- (35.86, 241.75); + + \node[anchor=west, scale = 0.83] at (26, 79.52) {0}; + \node[anchor=west, scale = 0.83] at (26, 111.97) {0.2}; + \node[anchor=west, scale = 0.83] at (26, 144.42) {0.4}; + \node[anchor=west, scale = 0.83] at (26, 176.86) {0.6}; + \node[anchor=west, scale = 0.83] at (26, 209.31) {0.8}; + \node[anchor=west, scale = 0.83] at (26, 241.75) {1}; +\end{scope} + +\begin{scope}[inner sep = 0pt, outer sep = 0pt] + \node[anchor = base, scale = 1.00] at (92.19, 265.23) {{\bfseries Subspace Distance}}; + \node[anchor = base, scale = 0.83] at (92.19, 20) {Sample Size}; + \node[rotate = 90.00, anchor = base, scale = 0.83] at (20, 160.64) {$d(\mat{B}_0, \widehat{\mat{B}})$}; +\end{scope} + +\begin{scope}[xscale = 0.5, xshift = 800pt, yshift = 330pt] + \begin{scope} + \definecolor{drawColor}{RGB}{42,98,182} + \path[draw=drawColor,line width= 0.7pt,line join=round,line cap=round] ( 89.72, 14) -- (104.66, 14); + \node[text=black,anchor=base west,inner sep=0pt, outer sep=0pt, scale= 0.83] at (112.13, 8.26) {HOPCA}; + \end{scope} + + \begin{scope}[yshift = -3em] + \definecolor{drawColor}{RGB}{147,19,185} + \path[draw=drawColor,line width= 0.7pt,line join=round,line cap=round] ( 89.72, 14) -- (104.66, 14); + \node[text=black,anchor=base west,inner sep=0pt, outer sep=0pt, scale= 0.83] at (112.13, 8.26) {TSIR}; + \end{scope} + + \begin{scope}[yshift = -6em] + \definecolor{drawColor}{RGB}{36,116,7} + \path[draw=drawColor,line width= 0.7pt,line join=round,line cap=round] ( 89.72, 14) -- (104.66, 14); + \node[text=black,anchor=base west,inner sep=0pt, outer sep=0pt, scale= 0.83] at (112.13, 8.26) {\bf GMLM}; + \end{scope} +\end{scope} + + +\begin{scope} + +\definecolor{drawColor}{RGB}{36,116,7} + +\path[draw=drawColor,line width= 0.7pt,line join=round,line cap=round] ( 44.64,119.77) -- ( 59.27,107.60) -- ( 73.90,103.65) -- (103.16, 97.80) -- (139.74, 95.44); +\definecolor{drawColor}{RGB}{42,98,182} + +\path[draw=drawColor,line width= 0.7pt,line join=round,line cap=round] ( 44.64,229.99) -- ( 59.27,229.84) -- ( 73.90,229.81) -- (103.16,229.85) -- (139.74,229.94); + + +\definecolor{drawColor}{RGB}{147,19,185} + +\path[draw=drawColor,line width= 0.7pt,line join=round,line cap=round] ( 44.64,157.45) -- ( 59.27,128.85) -- ( 73.90,116.33) -- (103.16,104.70) -- (139.74, 99.52); +\definecolor{fillColor}{RGB}{36,116,7} + +\path[fill=fillColor,fill opacity=0.30] ( 44.64,127.46) -- ( 59.27,112.88) -- ( 73.90,107.67) -- (103.16,101.24) -- (139.74, 97.90) -- (139.74, 91.72) -- (103.16, 93.73) -- ( 73.90, 98.51) -- ( 59.27,101.87) -- ( 44.64,112.70) -- + cycle; +\definecolor{fillColor}{RGB}{42,98,182} + +\path[fill=fillColor,fill opacity=0.30] ( 44.64,230.71) -- ( 59.27,230.36) -- ( 73.90,230.07) -- (103.16,230.23) -- (139.74,230.15) -- (139.74,229.65) -- (103.16,229.53) -- ( 73.90,229.54) -- ( 59.27,229.25) -- ( 44.64,229.22) -- + cycle; + +\definecolor{fillColor}{RGB}{147,19,185} + +\path[fill=fillColor,fill opacity=0.30] ( 44.64,172.90) -- ( 59.27,140.34) -- ( 73.90,122.60) -- (103.16,109.34) -- (139.74,103.80) -- (139.74, 95.11) -- (103.16, 99.59) -- ( 73.90,105.02) -- ( 59.27,114.84) -- ( 44.64,142.20) -- + cycle; +\end{scope} + +\end{tikzpicture} diff --git a/LaTeX/plots/aggr-1a-normal.csv b/LaTeX/plots/aggr-1a-normal.csv new file mode 100644 index 0000000..8c5918d --- /dev/null +++ b/LaTeX/plots/aggr-1a-normal.csv @@ -0,0 +1,6 @@ +sample.size time.gmlm dist.subspace.gmlm dist.projection.gmlm time.pca dist.subspace.pca dist.projection.pca time.hopca dist.subspace.hopca dist.projection.hopca time.tsir dist.subspace.tsir dist.projection.tsir time.mgcca dist.subspace.mgcca dist.projection.mgcca +100 0.03385 0.2433541701 0.2433541701 0.00226 0.863261257 0.863261257 0.00132 0.961234054 0.961234054 0.01148 0.27002415 0.27002415 0.02002 0.726356935 0.726356935 +200 0.05152 0.1649899379 0.1649899379 0.00217 0.852767026 0.852767026 0.00266 0.960479878 0.960479878 0.01373 0.1884941138 0.1884941138 0.01991 0.713602535 0.713602535 +300 0.06495 0.1336658703 0.1336658703 0.00486 0.843714531 0.843714531 0.01064 0.958630831 0.958630831 0.01328 0.1526304709 0.1526304709 0.02 0.71557788 0.71557788 +500 0.13549 0.1032317816 0.1032317816 0.00938 0.846591187 0.846591187 0.01447 0.959566069 0.959566069 0.01722 0.1208618464 0.1208618464 0.05966 0.713613799 0.713613799 +750 0.19323 0.0920445927 0.0920445927 0.00751 0.843049644 0.843049644 0.02065 0.95998194 0.95998194 0.02132 0.1040318623 0.1040318623 0.06884 0.708925464 0.708925464 diff --git a/LaTeX/plots/aggr-1b-normal.csv b/LaTeX/plots/aggr-1b-normal.csv new file mode 100644 index 0000000..ecd6ac5 --- /dev/null +++ b/LaTeX/plots/aggr-1b-normal.csv @@ -0,0 +1,6 @@ +sample.size rep time.gmlm dist.subspace.gmlm dist.projection.gmlm time.pca dist.subspace.pca dist.projection.pca time.hopca dist.subspace.hopca dist.projection.hopca time.tsir dist.subspace.tsir dist.projection.tsir time.mgcca dist.subspace.mgcca dist.projection.mgcca +100 50.5 0.14271 0.1354623792 0.1798569269 0.0025 0.805020847 0.999758145 0.00145 0.761295768 0.954043725 0.0099 0.1994699895 0.265283655 0.56208 0.770351142 0.999521275 +200 50.5 0.31697 0.091214259 0.1210839439 0.00241 0.802922368 0.999879665 0.00257 0.730120539 0.925368399 0.0111 0.1483718847 0.1994800746 0.59856 0.758579776 0.999522252 +300 50.5 0.39396 0.0726682553 0.0971497767 0.00586 0.806481505 0.999904273 0.00971 0.749474609 0.94434003 0.01265 0.1159595746 0.1577793427 0.56191 0.761351696 0.999435422 +500 50.5 0.83078 0.0580925082 0.0779289812 0.00612 0.80574294 0.999944057 0.01732 0.751571927 0.947305126 0.01541 0.0917985004 0.12450158 2.16411 0.755277454 0.999081992 +750 50.5 1.34147 0.0461519857 0.0610860564 0.00908 0.805450073 0.999961492 0.02064 0.749556315 0.945706618 0.02024 0.0797286457 0.1077928847 2.6289 0.750454219 0.999378091 diff --git a/LaTeX/plots/aggr-1c-normal.csv b/LaTeX/plots/aggr-1c-normal.csv new file mode 100644 index 0000000..cc48db8 --- /dev/null +++ b/LaTeX/plots/aggr-1c-normal.csv @@ -0,0 +1,6 @@ +sample.size rep time.gmlm dist.subspace.gmlm time.pca dist.subspace.pca time.hopca dist.subspace.hopca time.tsir dist.subspace.tsir time.mgcca dist.subspace.mgcca +100 50.5 0.53147 0.225507724 0.00215 0.268624529 0.00122 0.268631852 0.00953 0.975552785 0.01743 0.268634801 +200 50.5 0.93729 0.1462304967 0.00228 0.268618192 0.00255 0.268627434 0.01032 0.969086651 0.01508 0.268616289 +300 50.5 1.25449 0.118119137 0.0047 0.268672296 0.00937 0.268679546 0.01236 0.937344184 0.01812 0.268678444 +500 50.5 2.61149 0.0925056109 0.00598 0.268620612 0.01592 0.268627137 0.01491 0.920788974 0.04995 0.268609548 +750 50.5 3.62933 0.0734930824 0.00608 0.268629405 0.0213 0.26863585 0.01911 0.895542158 0.05447 0.268624504 diff --git a/LaTeX/plots/aggr-1d-normal.csv b/LaTeX/plots/aggr-1d-normal.csv new file mode 100644 index 0000000..e162526 --- /dev/null +++ b/LaTeX/plots/aggr-1d-normal.csv @@ -0,0 +1,6 @@ +sample.size rep time.gmlm dist.subspace.gmlm dist.projection.gmlm time.pca dist.subspace.pca dist.projection.pca time.hopca dist.subspace.hopca dist.projection.hopca time.tsir dist.subspace.tsir dist.projection.tsir time.mgcca dist.subspace.mgcca dist.projection.mgcca +100 50.3838383838384 0.19140404040404 0.159429996868687 0.217885249393939 0.00227272727272727 0.81991723030303 0.999889914141414 0.00136363636363636 0.7542142 0.956573433333333 0.00942424242424242 0.312921257070707 0.425537564949495 0.260232323232323 0.763839525252525 0.998650488888889 +200 50.5 0.29272 0.1106441325 0.1502575874 0.00215 0.817273094 0.999952668 0.00267 0.756428697 0.961631268 0.01125 0.2406254633 0.3291691439 0.25668 0.752812085 0.997789874 +300 50.5 0.40969 0.0942165171 0.1284457744 0.00577 0.817365328 0.99997193 0.00976 0.755867381 0.962490478 0.01219 0.2079868565 0.287219385 0.25407 0.744109244 0.997966974 +500 50.5 0.80715 0.0671783369 0.092410679 0.00584 0.815885787 0.99998542 0.01576 0.745753387 0.955364336 0.01536 0.1719722289 0.2389028516 0.99684 0.74347681 0.998687779 +750 50.5 1.30069 0.0560128971 0.077140984 0.00736 0.817057557 0.999983813 0.02158 0.745917278 0.955524558 0.01902 0.1544664904 0.2144889183 1.26885 0.742632193 0.998826916 diff --git a/LaTeX/plots/aggr-1e-normal.csv b/LaTeX/plots/aggr-1e-normal.csv new file mode 100644 index 0000000..482a1ee --- /dev/null +++ b/LaTeX/plots/aggr-1e-normal.csv @@ -0,0 +1,6 @@ +sample.size time.gmlm dist.subspace.gmlm dist.projection.gmlm time.pca dist.subspace.pca dist.projection.pca time.hopca dist.subspace.hopca dist.projection.hopca time.tsir dist.subspace.tsir dist.projection.tsir time.mgcca dist.subspace.mgcca dist.projection.mgcca +100 0.02532 0.736796092 1 0.00209 0.900231255 0.999317475 0.00057 0.844797856 1 0.01269 0.768475572 1 0.03429 0.801702356 0.996195093 +200 0.02118 0.723026339 1 0.00202 0.897808634 0.999511768 0.00076 0.821791902 1 0.01143 0.729274976 1 0.03156 0.754417729 0.993998159 +300 0.02073 0.719268149 1 0.00253 0.896381124 0.999790203 0.00086 0.810580445 1 0.0108 0.723298879 1 0.03314 0.730024383 0.994609905 +500 0.06797 0.714404844 1 0.00556 0.894836313 0.999794819 0.00472 0.806682723 1 0.01003 0.719358531 1 0.08743 0.70385003 0.990669984 +750 0.08089 0.712524515 1 0.00652 0.894548046 0.999845024 0.00646 0.800351207 1 0.011 0.716469876 1 0.10204 0.687227594 0.991626558 diff --git a/LaTeX/plots/aggr-2a-ising.csv b/LaTeX/plots/aggr-2a-ising.csv new file mode 100644 index 0000000..f4cc660 --- /dev/null +++ b/LaTeX/plots/aggr-2a-ising.csv @@ -0,0 +1,6 @@ +sample.size rep time.gmlm dist.subspace.gmlm time.tnormal dist.subspace.tnormal time.pca dist.subspace.pca time.hopca dist.subspace.hopca time.lpca dist.subspace.lpca time.clpca dist.subspace.clpca time.tsir dist.subspace.tsir time.mgcca dist.subspace.mgcca +100 50.5 3.45133 0.337616233 -1 0.3481195602 0.00072 0.895240418 0.00078 0.895726045 0.03836 0.940902054 0.01723 0.905975108 0.01174 0.4840146138 0.01181 0.552492798 +200 50.5 3.53892 0.2469025607 -1 0.258109693 0.00072 0.899078549 0.00073 0.898430313 0.0454 0.96077596 0.0172 0.909073167 0.01033 0.3767345117 0.00636 0.529634143 +300 50.5 3.32198 0.1973335545 -1 0.2202339413 7e-04 0.894730117 0.00099 0.89457278 0.04582 0.96650364 0.01672 0.906092011 0.01085 0.2945936124 0.00647 0.506940794 +500 50.5 3.47776 0.1560136925 -1 0.178495357 0.00081 0.897138615 0.00142 0.896433003 0.05409 0.982097991 0.01885 0.907027647 0.01102 0.2348182831 0.00751 0.504727342 +750 50.5 3.63432 0.1338283596 -1 0.1501165074 0.00091 0.896805421 0.00194 0.896259394 0.06547 0.98164125 0.0208 0.906989078 0.01159 0.2264630936 0.00888 0.525239052 diff --git a/LaTeX/plots/aggr-2b-ising.csv b/LaTeX/plots/aggr-2b-ising.csv new file mode 100644 index 0000000..5c88c01 --- /dev/null +++ b/LaTeX/plots/aggr-2b-ising.csv @@ -0,0 +1,6 @@ +sample.size rep time.gmlm dist.subspace.gmlm dist.projection.gmlm time.tnormal dist.subspace.tnormal dist.projection.tnormal time.pca dist.subspace.pca dist.projection.pca time.hopca dist.subspace.hopca dist.projection.hopca time.lpca dist.subspace.lpca dist.projection.lpca time.clpca dist.subspace.clpca dist.projection.clpca time.tsir dist.subspace.tsir dist.projection.tsir time.mgcca dist.subspace.mgcca dist.projection.mgcca +100 50.5 2.61295 0.3403757357 0.3403757357 -1 0.3479059356 0.3479059356 6e-04 0.825472384 0.985301393 0.00064 0.898420853 0.898420853 0.03221 0.819788638 0.984818682 0.08248 0.830116397 0.985435015 0.00525 0.5383179747 0.5383179747 0.03822 0.684322002 0.87142619 +200 50.5 2.69877 0.2336318211 0.2336318211 -1 0.2242954626 0.2242954626 0.00062 0.805871266 0.986137373 0.00083 0.894115576 0.894115576 0.04415 0.805329005 0.98705536 0.09073 0.813651382 0.988806844 0.00584 0.3463104772 0.3463104772 0.03612 0.607852417 0.779137501 +300 50.5 2.84797 0.17056658598 0.17056658598 -1 0.177746684 0.177746684 0.00065 0.809654889 0.993082221 0.00099 0.901032982 0.901032982 0.05754 0.809330963 0.994445446 0.09848 0.817965106 0.995003702 0.00587 0.23915106584 0.23915106584 0.03905 0.564592137 0.722673845 +500 50.5 2.99338 0.1421103262 0.1421103262 -1 0.14097689578 0.14097689578 8e-04 0.801989292 0.996579785 0.00143 0.911579678 0.911579678 0.06962 0.804787754 0.997525521 0.11444 0.814022873 0.99807076 0.00645 0.1904496139 0.1904496139 0.04446 0.506345649 0.646893436 +750 50.5 3.13791 0.1099093089 0.1099093089 -1 0.11200510849 0.11200510849 0.00085 0.803412662 0.997339272 0.0018 0.90974563 0.90974563 0.06278 0.805842802 0.998157979 0.12508 0.816324572 0.998309878 0.00736 0.14247728474 0.14247728474 0.04683 0.488465089 0.623423991 diff --git a/LaTeX/plots/aggr-2c-ising.csv b/LaTeX/plots/aggr-2c-ising.csv new file mode 100644 index 0000000..c29a696 --- /dev/null +++ b/LaTeX/plots/aggr-2c-ising.csv @@ -0,0 +1,6 @@ +sample.size rep time.gmlm dist.subspace.gmlm time.tnormal dist.subspace.tnormal time.pca dist.subspace.pca time.hopca dist.subspace.hopca time.lpca dist.subspace.lpca time.clpca dist.subspace.clpca time.tsir dist.subspace.tsir time.mgcca dist.subspace.mgcca +100 50.5 3.09356 0.3156118185 -1 0.333911302 0.00073 0.878676674 0.00075 0.896222186 0.09113 0.806536411 0.04383 0.896834118 0.01101 0.497285466 0.01193 0.575079476 +200 50.5 3.12299 0.2077510819 -1 0.2436035005 0.00066 0.874724783 0.00079 0.889384878 0.09807 0.733886862 0.04732 0.894434769 0.01046 0.324664115 0.00669 0.576863144 +300 50.5 3.16421 0.1861360687 -1 0.2008576102 0.00078 0.870909384 0.00102 0.886922724 0.11782 0.7481989 0.0503 0.893348533 0.01119 0.2976653034 0.00771 0.585351528 +500 50.5 3.2918 0.1462556459 -1 0.1719980649 0.00085 0.874809929 0.00141 0.888039936 0.16421 0.725505512 0.06 0.894785099 0.01279 0.2572542268 0.00873 0.585034361 +750 50.5 3.34843 0.1180667497 -1 0.1269961448 0.00084 0.87183362 0.00184 0.888721897 0.22709 0.667001863 0.07148 0.891578538 0.01242 0.2446346482 0.00958 0.589975817 diff --git a/LaTeX/plots/aggr-2d-ising.csv b/LaTeX/plots/aggr-2d-ising.csv new file mode 100644 index 0000000..005d256 --- /dev/null +++ b/LaTeX/plots/aggr-2d-ising.csv @@ -0,0 +1,6 @@ +sample.size rep time.gmlm dist.subspace.gmlm dist.projection.gmlm time.tnormal dist.subspace.tnormal dist.projection.tnormal time.pca dist.subspace.pca dist.projection.pca time.hopca dist.subspace.hopca dist.projection.hopca time.lpca dist.subspace.lpca dist.projection.lpca time.clpca dist.subspace.clpca dist.projection.clpca time.tsir dist.subspace.tsir dist.projection.tsir time.mgcca dist.subspace.mgcca dist.projection.mgcca +100 50.5 3.03076 0.3036349361 0.3036349361 -1 0.2868643362 0.2868643362 0.00073 0.818177689 0.984435713 0.00063 0.755946643 0.755946643 0.05648 0.819181741 0.953681387 0.0867 0.822312566 0.986781953 0.00613 0.4019671947 0.4019671947 0.04573 0.588313518 0.75377487 +200 50.5 3.10805 0.1992945381 0.1992945381 -1 0.2020230182 0.2020230182 0.00074 0.814338816 0.987890451 0.00093 0.690811228 0.690811228 0.05801 0.81457008 0.961377759 0.08991 0.825394861 0.991647771 0.00599 0.2511707246 0.2511707246 0.04656 0.476761868 0.629632653 +300 50.5 3.3052 0.1546113425 0.1546113425 -1 0.1537117318 0.1537117318 0.00075 0.798497064 0.993693989 0.00099 0.729634976 0.729634976 0.05696 0.820224046 0.982252313 0.09375 0.806834524 0.992228985 0.00636 0.1790215654 0.1790215654 0.04835 0.37049092 0.4917621054 +500 50.5 3.88258 0.1130383355 0.1130383355 -1 0.11118393534 0.11118393534 0.00095 0.817445534 0.996960022 0.00148 0.651972301 0.651972301 0.07627 0.816560225 0.989645322 0.11561 0.837453121 0.996154736 0.00715 0.1217933129 0.1217933129 0.06199 0.2348135641 0.3010364601 +750 50.5 3.97107 0.09585699718 0.09585699718 -1 0.09463671116 0.09463671116 0.00106 0.829576522 0.996509465 0.00179 0.6203066621 0.6203066621 0.09122 0.820908322 0.988956119 0.13158 0.849250091 0.997066922 0.00765 0.10393120662 0.10393120662 0.06512 0.1950222554 0.2482127769 diff --git a/LaTeX/plots/aggr-ising-perft-m2.csv b/LaTeX/plots/aggr-ising-perft-m2.csv new file mode 100644 index 0000000..44d9052 --- /dev/null +++ b/LaTeX/plots/aggr-ising-perft-m2.csv @@ -0,0 +1,36 @@ +dim exact MC MCthrd +1 73.5012 2479.1000 5306.4984 +2 59.9796 8664.1598 9779.8466 +3 64.5056 12914.5464 16183.0764 +4 53.2328 16508.2854 17870.7350 +5 96.9536 24127.6058 21767.8086 +6 63.4716 28597.2378 26124.3540 +7 72.9282 40515.4708 29894.6794 +8 104.7062 50231.4678 38400.2156 +9 92.1626 63120.4664 43210.9808 +10 137.0708 78229.7892 45129.4508 +11 199.2572 90637.2042 52743.8126 +12 416.4218 110416.5194 53946.7448 +13 1300.8774 113405.5306 62789.0696 +14 1613.6268 147592.3898 65697.4700 +15 4308.1456 150118.8002 77611.7774 +16 6218.6118 169137.1948 79600.3404 +17 19130.1692 193395.2364 84645.9674 +18 35013.7520 191694.0282 89612.3666 +19 79783.0592 219430.7520 89025.0298 +20 164029.9676 221552.7670 97877.6912 +21 344260.9886 NaN NaN +22 727962.7158 NaN NaN +23 1575072.6418 NaN NaN +24 3408482.1812 NaN NaN +30 NaN 432889.7808 159195.6658 +40 NaN 675539.2932 227844.4468 +50 NaN 921443.9964 322103.8008 +60 NaN 1249191.1684 365132.1606 +70 NaN 1634723.4776 463334.2788 +80 NaN 2020644.9422 517770.1918 +90 NaN 2341498.2072 608483.0752 +100 NaN 2912498.1526 720652.3034 +110 NaN 3485288.1716 872467.7020 +120 NaN 4134359.9114 985625.2118 +130 NaN 4619163.4688 1064965.6310 diff --git a/LaTeX/plots/aggr-tsir.csv b/LaTeX/plots/aggr-tsir.csv new file mode 100644 index 0000000..f2fac2c --- /dev/null +++ b/LaTeX/plots/aggr-tsir.csv @@ -0,0 +1,55 @@ +rho order beta.version dist.subspace.gmlm dist.subspace.tsir dist.subspace.sir +0 2 1 0.05706344996 0.04870725477 0.02949768844 +0.1 2 1 0.06099344597 0.0544879924 0.1443251451 +0.2 2 1 0.06006975287 0.04853609519 0.278326568 +0.3 2 1 0.06258542237 0.0577666547 0.398026673 +0.4 2 1 0.0630860656 0.06434322354 0.50784661 +0.5 2 1 0.0681407852 0.06660780135 0.600152663 +0.6 2 1 0.0704756441 0.08007941831 0.678782131 +0.7 2 1 0.07399226468 0.09624028404 0.741513693 +0.8 2 1 0.08696351437 0.1434422575 0.792636477 +0 3 1 0.03884761964 0.05075637043 0.01559641056 +0.1 3 1 0.04181920387 0.04806015013 0.172176562 +0.2 3 1 0.04446027941 0.05200675213 0.33300157 +0.3 3 1 0.04431383228 0.06116237486 0.477540231 +0.4 3 1 0.04913731328 0.0818369603 0.599066199 +0.5 3 1 0.0508888889 0.109494101 0.698420153 +0.6 3 1 0.0650707898 0.164995207 0.776338247 +0.7 3 1 0.0722256221 0.2796157782 0.83533372 +0.8 3 1 0.111673742 0.5800304654 0.879376086 +0 4 1 0.0310105382 0.0730134344 0.0071848475 +0.1 4 1 0.03266222395 0.0768687025 0.197565596 +0.2 4 1 0.03283241074 0.0918531581 0.381220751 +0.3 4 1 0.03606864228 0.1271383726 0.539976855 +0.4 4 1 0.0439046288 0.1889255293 0.669113261 +0.5 4 1 0.0541551555 0.300616954 0.768377223 +0.6 4 1 0.06073810269 0.518481551 0.841219015 +0.7 4 1 0.08029184283 0.844190422 0.892810124 +0.8 4 1 0.1426333851 0.97160198 0.928311852 +0 2 2 0.04698636073 0.0520330931 0.0149037134 +0.1 2 2 0.04930602754 0.05971055866 0.01176055483 +0.2 2 2 0.0533056929 0.06564519596 0.00926994104 +0.3 2 2 0.05912356401 0.08914725578 0.007123095258 +0.4 2 2 0.07063246582 0.11735093643 0.00570685511 +0.5 2 2 0.08335540383 0.1632686417 0.003445887997 +0.6 2 2 0.09303190179 0.2411664985 0.002556417498 +0.7 2 2 0.12298692 0.3419166697 0.001596502137 +0.8 2 2 0.1628933779 0.574004413 0.000854865949 +0 3 2 0.0378753001 0.0922734022 0.00524888557 +0.1 3 2 0.03919134772 0.1392374104 0.00405657452 +0.2 3 2 0.0512381601 0.2187110985 0.002917695203 +0.3 3 2 0.05320741753 0.339382769 0.001845247336 +0.4 3 2 0.05652189257 0.476061088 0.00128800652 +0.5 3 2 0.0782460901 0.653943167 0.000821208511 +0.6 3 2 0.0986561143 0.834839108 0.000482747573 +0.7 3 2 0.1380699767 0.967224131 0.000250640226 +0.8 3 2 0.1784597136 0.997450021 0.000106823797 +0 4 2 0.03222682489 0.2450182862 0.00188728903 +0.1 4 2 0.03486174389 0.4142114066 0.00115216396 +0.2 4 2 0.03931006383 0.669792609 0.00078017042 +0.3 4 2 0.0481088931 0.853140232 0.00048375608 +0.4 4 2 0.0598583401 0.968730327 0.000294225075 +0.5 4 2 0.0747933415 0.99692433 0.0001634921303 +0.6 4 2 0.1156758178 0.999887965 8.50620125e-05 +0.7 4 2 0.1841296132 0.99999922 3.88864634e-05 +0.8 4 2 0.0601816739 1 1.275924145e-05 diff --git a/LaTeX/plots/sim-ising-perft-m2.tex b/LaTeX/plots/sim-ising-perft-m2.tex new file mode 100644 index 0000000..aab0b76 --- /dev/null +++ b/LaTeX/plots/sim-ising-perft-m2.tex @@ -0,0 +1,95 @@ +%%% R code to generate the input data files from corresponding simulation logs +% R> setwd("~/Work/tensorPredictors") +% R> +% R> for (sim.name in c("2a")) { +% R> pattern <- paste0("sim\\_", sim.name, "\\_ising\\-[0-9T]*\\.csv") +% R> log.file <- sort( +% R> list.files(path = "sim/", pattern = pattern, full.names = TRUE), +% R> decreasing = TRUE +% R> )[[1]] +% R> +% R> sim <- read.csv(log.file) +% R> +% R> aggr <- aggregate(sim[, names(sim) != "sample.size"], list(sample.size = sim$sample.size), mean) +% R> +% R> write.table(aggr, file = paste0("LaTeX/plots/aggr-", sim.name, "-ising.csv"), row.names = FALSE, quote = FALSE) +% R> } +\documentclass[border=0cm]{standalone} + +\usepackage{tikz} +\usepackage{pgfplots} +\usepackage{amssymb, bm} + +\definecolor{exact}{RGB}{230,0,0} +\definecolor{MC}{RGB}{30,180,30} +\definecolor{MCthrd}{RGB}{0,0,230} + +\pgfplotsset{ + compat=newest, + grid=both, + grid style={gray!15} +} +\tikzset{ + legend entry/.style={ + mark = *, + mark size = 1pt, + mark indices = {2}, + line width=0.8pt + } +} + +\begin{document} +\begin{tikzpicture}[>=latex] + + \begin{axis}[ + name=perft, + xmode = normal, ymode = log, + xtick={10, 30, 50, 70, 90, 110, 130}, + mark = *, + mark size = 1pt, + ytick={1,1e1,1e2,1e3,1e4,1e5,1e6,1e7}, + yticklabels={$1\mu s$,$10\mu s$,$100\mu s$,$1 ms$,$10 ms$,$100 ms$,$1 s$,$10 s$}, + xlabel = {Dimension $p$}, + ylabel = {Time} + ] + \addplot[ + only marks, + color = exact + ] table[x = dim, y = exact] {aggr-ising-perft-m2.csv}; + \addplot[ + only marks, + color = MC + ] table[x = dim, y = MC] {aggr-ising-perft-m2.csv}; + \addplot[ + only marks, + color = MCthrd + ] table[x = dim, y = MCthrd] {aggr-ising-perft-m2.csv}; + + \addplot[smooth, domain = 8:25, color = exact, samples = 64] { 2^(x - 3) }; + \addplot[smooth, domain = 1:130, color = MC, samples = 64] { + -18340.8 + 7557.0 * x + 200.3 * x^2 + }; + \addplot[smooth, domain = 1:130, color = MCthrd, samples = 64] { + 8413.21 + 3134.98 * x + 41.87 * x^2 + }; + \end{axis} + + \matrix[anchor = west] at (perft.east) { + \draw[color=exact, only marks, mark = *, mark size = 1pt, mark indices = {2}] plot coordinates {(0, 0) (.3, 0) (.6, 0)}; + & \node[anchor=west] {exact}; \\ + \draw[color=exact, line width = 0.8pt] plot coordinates {(0, 0) (.4, 0)}; + & \node[anchor=west] {$\mathcal{O}(2^p)$}; \\ + \draw[color=MC, only marks, mark = *, mark size = 1pt, mark indices = {2}] plot coordinates {(0, 0) (.3, 0) (.6, 0)}; + & \node[anchor=west] {MC}; \\ + \draw[color=MC, line width = 0.8pt] plot coordinates {(0, 0) (.4, 0)}; + & \node[anchor=west] {$\mathcal{O}(p^2)$}; \\ + \draw[color=MCthrd, only marks, mark = *, mark size = 1pt, mark indices = {2}] plot coordinates {(0, 0) (.3, 0) (.6, 0)}; + & \node[anchor=west] {MC (8 thrd)}; \\ + \draw[color=MCthrd, line width = 0.8pt] plot coordinates {(0, 0) (.4, 0)}; + & \node[anchor=west] {$\mathcal{O}(p^2)$}; \\ + }; + + \node[anchor = south] at (current bounding box.north) {Ising Second Moment Performance Test}; + +\end{tikzpicture} +\end{document} diff --git a/LaTeX/plots/sim-tsir.tex b/LaTeX/plots/sim-tsir.tex new file mode 100644 index 0000000..56cbf77 --- /dev/null +++ b/LaTeX/plots/sim-tsir.tex @@ -0,0 +1,114 @@ +%%% R code to generate the input data files from corresponding simulation logs +% R> setwd("~/Work/tensorPredictors") +% R> +% R> sim <- read.csv("sim/sim-tsir-20231123T1155.csv") +% R> +% R> aggr <- aggregate(sim[startsWith(names(sim), "dist")], sim[c("rho", "order", "beta.version")], mean) +% R> +% R> write.table(aggr, file = "LaTeX/plots/aggr-tsir.csv", row.names = FALSE, quote = FALSE) +\documentclass[border=0cm]{standalone} + +\usepackage{tikz} +\usepackage{pgfplots} +\usepackage{bm} + +\definecolor{gmlm}{RGB}{0,0,0} +% \definecolor{mgcca}{RGB}{86,180,233} +\definecolor{tsir}{RGB}{0,158,115} +\definecolor{sir}{RGB}{86,180,233} +% \definecolor{hopca}{RGB}{230,159,0} +% \definecolor{pca}{RGB}{240,228,66} +% \definecolor{lpca}{RGB}{0,114,178} +% \definecolor{clpca}{RGB}{213,94,0} + +\pgfplotsset{ + compat=newest, + every axis/.style={ + % grid, + % grid style={gray, dotted}, + 3d box = complete*, + xtick = {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8}, + ytick = {2, 3, 4}, + ymin = 1.5, ymax = 4.5, + ztick = {0.2, 0.4, 0.6, 0.8, 1}, + zmin = 0, zmax = 1, + xlabel = $\rho$, + ylabel = $r$ + } +} +\tikzset{ + legend entry/.style={ + mark = *, + mark size = 1pt, + mark indices = {2}, + line width=0.8pt + } +} + +\newcommand{\addarea}[4]{ + \addplot3[ + fill = #1, + draw = none, + fill opacity = 0.65, + y filter/.append expression={ + \thisrow{order} == #3 && \thisrow{beta.version} == #2 ? #4 : NaN + } + ] table [x = rho, y expr = NaN, z = dist.subspace.#1] {aggr-tsir.csv} \closedcycle; + \addplot3[ + color = #1, + line width = 0.8pt, + y filter/.append expression={ + \thisrow{order} == #3 && \thisrow{beta.version} == #2 ? #4 : NaN + } + ] table [x = rho, y expr = NaN, z = dist.subspace.#1] {aggr-tsir.csv}; +} + +\begin{document} +\begin{tikzpicture}[>=latex] + + \begin{axis}[ + name=v1 + ] + \addarea{sir}{1}{4}{4.05}; + \addarea{tsir}{1}{4}{4.0}; + \addarea{gmlm}{1}{4}{3.95}; + + \addarea{sir}{1}{3}{3.05}; + \addarea{tsir}{1}{3}{3.0}; + \addarea{gmlm}{1}{3}{2.95}; + + \addarea{sir}{1}{2}{2.05}; + \addarea{tsir}{1}{2}{2.0}; + \addarea{gmlm}{1}{2}{1.95}; + \end{axis} + \node[anchor = south] at (v1.north) {V1}; + + \begin{axis}[ + name=v2, + xshift = 8cm + ] + \addarea{tsir}{2}{4}{4.05}; + \addarea{gmlm}{2}{4}{4.0}; + \addarea{sir}{2}{4}{3.95}; + + \addarea{tsir}{2}{3}{3.05}; + \addarea{gmlm}{2}{3}{3.0}; + \addarea{sir}{2}{3}{2.95}; + + \addarea{tsir}{2}{2}{2.05}; + \addarea{gmlm}{2}{2}{2.0}; + \addarea{sir}{2}{2}{1.95}; + \end{axis} + \node[anchor = south] at (v2.north) {V2}; + + \matrix[anchor = north] at (current bounding box.south) { + \fill[color = gmlm, opacity = 0.65] (0, -.1) rectangle (.6, .1); \draw[color=gmlm, line width = 0.8pt] (0, .1) -- (.6, .1); & \node[anchor=west] {GMLM}; & + \fill[color = tsir, opacity = 0.65] (0, -.1) rectangle (.6, .1); \draw[color=tsir, line width = 0.8pt] (0, .1) -- (.6, .1); & \node[anchor=west] {TSIR}; & + \fill[color = sir, opacity = 0.65] (0, -.1) rectangle (.6, .1); \draw[color=sir, line width = 0.8pt] (0, .1) -- (.6, .1); & \node[anchor=west] {SIR}; \\ + }; + + \node[anchor = south, rotate = 90, yshift = 1.5em] at (v1.west) {Subspace Distance $d(\boldsymbol{B}, \widehat{\boldsymbol{B}})$}; + \node[anchor = south, rotate = -90, yshift = 1.5em] at (v2.east) {\phantom{Subspace Distance $d(\boldsymbol{B}, \widehat{\boldsymbol{B}})$}}; + +\end{tikzpicture} +\end{document}