|
25 | 25 | clims = (-0.4,0.4), frame = :none, ratio = 1, ylim = [0, Ny + 1], |
26 | 26 | title = latexstring("\\phi_{", i-1, "}"), titlefont = 12, |
27 | 27 | subplot = i) |
28 | | -end</code></pre><img src="491f1b17.svg" alt="Example block output"/><pre><code class="language-julia hljs">## 2D ordering: natural frequency ordering |
| 28 | +end</code></pre><img src="ba523c37.svg" alt="Example block output"/><pre><code class="language-julia hljs">## 2D ordering: natural frequency ordering |
29 | 29 | plot(layout = Plots.grid(3, 7)) |
30 | 30 | for i in 1:N |
31 | 31 | k = grid2eig_ind[i] |
32 | 32 | heatmap!(reshape(𝚽[:,k], (Nx, Ny))', c = :viridis, cbar = false, |
33 | 33 | clims = (-0.4,0.4), frame = :none, ratio = 1, ylim = [0, Ny + 1], |
34 | 34 | title = latexstring("\\varphi_{", string(eig2dct[k,1]), |
35 | 35 | ",", string(eig2dct[k,2]), "}"), titlefont = 12, subplot = i) |
36 | | -end</code></pre><img src="82d0565b.svg" alt="Example block output"/><p>What we really want to do is to <em>organize</em> those eigenvectors based on their natural frequencies or their behaviors instead of their eigenvalues. To do that, we utilize the metrics discussed in the <a href="https://www.math.ucdavis.edu/~saito/publications/metgraphlap.html">paper</a> as follows. But first, we create a custom plotting function for later use.</p><pre><code class="language-julia hljs">function grid7x3_mds_heatmaps(E, 𝚽; Nx = 7, Ny = 3, annotate_ind = 1:N, plotOrder = 1:N) |
| 36 | +end</code></pre><img src="28cd3208.svg" alt="Example block output"/><p>What we really want to do is to <em>organize</em> those eigenvectors based on their natural frequencies or their behaviors instead of their eigenvalues. To do that, we utilize the metrics discussed in the <a href="https://www.math.ucdavis.edu/~saito/publications/metgraphlap.html">paper</a> as follows. But first, we create a custom plotting function for later use.</p><pre><code class="language-julia hljs">function grid7x3_mds_heatmaps(E, 𝚽; Nx = 7, Ny = 3, annotate_ind = 1:N, plotOrder = 1:N) |
37 | 37 | # set up all heatmap plots' positions |
38 | 38 | max_x = maximum(E[1, :]); min_x = minimum(E[1, :]) |
39 | 39 | width_x = max_x - min_x |
|
67 | 67 | end</code></pre><h2 id="ROT-distance"><a class="docs-heading-anchor" href="#ROT-distance">ROT distance</a><a id="ROT-distance-1"></a><a class="docs-heading-anchor-permalink" href="#ROT-distance" title="Permalink"></a></h2><p>Before we measure the ROT distance between the eigenvectors, we convert them to probability mass functions by taking entrywise squares. After we got the ROT distance matrix of the eigenvectors, we visualize the arrangement of the eigenvectors in <span>$\mathbb{R}^{2}$</span> via <a href="https://en.wikipedia.org/wiki/Multidimensional_scaling#Classical_multidimensional_scaling">the classical MDS embedding</a>.</p><pre><code class="language-julia hljs">## ROT distance |
68 | 68 | D = natural_eigdist(𝚽, 𝛌, Q; α = 0.5, input_format = :pmf1, distance = :ROT) |
69 | 69 | E = transform(fit(MDS, D, maxoutdim=2, distances=true)) |
70 | | -grid7x3_mds_heatmaps(E, 𝚽)</code></pre><img src="a88af466.svg" alt="Example block output"/><h2 id="DAG-distance"><a class="docs-heading-anchor" href="#DAG-distance">DAG distance</a><a id="DAG-distance-1"></a><a class="docs-heading-anchor-permalink" href="#DAG-distance" title="Permalink"></a></h2><p>We organize the eigenvectors by the DAG distance.</p><pre><code class="language-julia hljs">D = natural_eigdist(𝚽, 𝛌, Q; distance = :DAG) |
| 70 | +grid7x3_mds_heatmaps(E, 𝚽)</code></pre><img src="d8b3e64c.svg" alt="Example block output"/><h2 id="DAG-distance"><a class="docs-heading-anchor" href="#DAG-distance">DAG distance</a><a id="DAG-distance-1"></a><a class="docs-heading-anchor-permalink" href="#DAG-distance" title="Permalink"></a></h2><p>We organize the eigenvectors by the DAG distance.</p><pre><code class="language-julia hljs">D = natural_eigdist(𝚽, 𝛌, Q; distance = :DAG) |
71 | 71 | E = transform(fit(MDS, D, maxoutdim=2, distances=true)) |
72 | | -grid7x3_mds_heatmaps(E, 𝚽)</code></pre><img src="899e207f.svg" alt="Example block output"/><h2 id="TSD-distance"><a class="docs-heading-anchor" href="#TSD-distance">TSD distance</a><a id="TSD-distance-1"></a><a class="docs-heading-anchor-permalink" href="#TSD-distance" title="Permalink"></a></h2><p>We organize the eigenvectors by the TSD distance with the parameter <span>$T = 0.1$</span>.</p><pre><code class="language-julia hljs">D = natural_eigdist(𝚽, 𝛌, Q; T = 0.1, distance = :TSD) # T = 0.1 |
| 72 | +grid7x3_mds_heatmaps(E, 𝚽)</code></pre><img src="f6f83f1a.svg" alt="Example block output"/><h2 id="TSD-distance"><a class="docs-heading-anchor" href="#TSD-distance">TSD distance</a><a id="TSD-distance-1"></a><a class="docs-heading-anchor-permalink" href="#TSD-distance" title="Permalink"></a></h2><p>We organize the eigenvectors by the TSD distance with the parameter <span>$T = 0.1$</span>.</p><pre><code class="language-julia hljs">D = natural_eigdist(𝚽, 𝛌, Q; T = 0.1, distance = :TSD) # T = 0.1 |
73 | 73 | E = transform(fit(MDS, D, maxoutdim=2, distances=true)) |
74 | | -grid7x3_mds_heatmaps(E, 𝚽)</code></pre><img src="1bd7ff4e.svg" alt="Example block output"/></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../P64/">« 1D Path</a><a class="docs-footer-nextpage" href="../Sunflower/">Sunflower Graph »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.14.1 on <span class="colophon-date" title="Tuesday 9 September 2025 23:49">Tuesday 9 September 2025</span>. Using Julia version 1.8.5.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> |
| 74 | +grid7x3_mds_heatmaps(E, 𝚽)</code></pre><img src="7948ec20.svg" alt="Example block output"/></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../P64/">« 1D Path</a><a class="docs-footer-nextpage" href="../Sunflower/">Sunflower Graph »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.14.1 on <span class="colophon-date" title="Wednesday 10 September 2025 00:42">Wednesday 10 September 2025</span>. Using Julia version 1.8.5.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> |
0 commit comments