From 66c9490ea8287b196298d045d1e595adba77bf0d Mon Sep 17 00:00:00 2001 From: mpadge Date: Tue, 1 Oct 2019 22:39:59 +0200 Subject: [PATCH] goodbye tikz images; hello png; closes #93 --- .Rbuildignore | 6 +-- vignettes/dodgr.Rmd | 23 ++------- vignettes/fig1.png | Bin 0 -> 14937 bytes vignettes/fig1.tex | 47 ++++++++++------- vignettes/fig2.png | Bin 0 -> 17825 bytes vignettes/fig2.tex | 89 ++++++++++++++++++--------------- vignettes/fig3.png | Bin 0 -> 34579 bytes vignettes/fig3.tex | 119 +++++++++++++++++++++++--------------------- vignettes/makefile | 35 +++++++++++++ 9 files changed, 180 insertions(+), 139 deletions(-) create mode 100644 vignettes/fig1.png create mode 100644 vignettes/fig2.png create mode 100644 vignettes/fig3.png diff --git a/.Rbuildignore b/.Rbuildignore index 60dd1fc45..e515d4568 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -8,12 +8,10 @@ ^CONTRIBUTING\.md$ ^cran-comments.md$ ^vignettes/makefile$ -^vignettes/bencharm_data.rds$ -^vignettes/bencharm.Rmd$ docs/ data-raw/ -tests/valgrind-script.R$ -tests/valgrind-test.R$ +^tests/valgrind-script.R$ +^tests/valgrind-test.R$ ^_pkgdown\.yml$ ^appveyor\.yml$ ^.*\.Rproj$ diff --git a/vignettes/dodgr.Rmd b/vignettes/dodgr.Rmd index 2341790d5..eabe620cd 100644 --- a/vignettes/dodgr.Rmd +++ b/vignettes/dodgr.Rmd @@ -9,9 +9,6 @@ output: toc_float: true number_sections: false theme: flatly -header-includes: - - \usepackage{tikz} - - \usetikzlibrary{arrows} vignette: > %\VignetteIndexEntry{1 dodgr} %\VignetteEngine{knitr::rmarkdown} @@ -34,13 +31,8 @@ A. In Fig. 1, for example, the weights between the graph vertices (A, B, C, and D) differ depending on the direction of travel, and it is only possible to traverse the entire graph in an anti-clockwise direction. -```{r fig1, fig.align="center", echo=FALSE, engine='tikz',fig.ext='svg', code=readLines("fig1.tex"), fig.cap="Figure 1: A weighted, directed graph"} -``` -(Note that this image does not currently render on the github-hosted version of -this site, for reasons currently [beyond our -control](https://github.com/ATFutures/dodgr/issues/93); a properly rendered -version can be seen on the equivalent [CRAN -vignette](https://cran.r-project.org/package=dodgr/vignettes/dodgr.html).) +![](fig1.png) + Graphs in `dodgr` are represented by simple flat `data.frame` objects, so the graph of Fig. 1, presuming the edge weights to take values of 1, 2, and 3, would @@ -69,13 +61,7 @@ other **R** packages, such as through its ability to trace paths through *dual-weighted* directed graphs, illustrated in Fig. 2. -```{r fig2, fig.align="center", echo=FALSE, engine='tikz',fig.ext='svg', code=readLines("fig2.tex"), fig.cap="Figure 2: A **dual**-weighted, directed graph in which the weights (represented by thicknesses) of the grey arrows differ from those of the black arrows."} -``` -(As above, this image also does not currently render on the github-hosted -version of this site, for reasons currently [beyond our -control](https://github.com/ATFutures/dodgr/issues/93); a properly rendered -version can be seen on the equivalent [CRAN -vignette](https://cran.r-project.org/package=dodgr/vignettes/dodgr.html).) +![](fig2.png) Dual-weighted directed graphs are common in many areas, a foremost example being routing through street networks. Routes through street networks depends on @@ -550,8 +536,7 @@ d <- igraph::distances (igr, v = pts, to = pts, mode = "out") A further unique feature of `dodgr` is the ability to remove redundant vertices from graphs (see Fig. 3), thereby speeding up routing calculations. -```{r fig3, fig.align="center", echo=FALSE, engine='tikz',fig.ext='svg', code=readLines("fig3.tex"), fig.cap="Figure 3: **(A)** Vertex#2 is redundant for routing calculations from anywhere other than that point itself. (**B**) Equivalent graph to (**A**) contracted through removal of vertex#2. (**C**) Vertex#2 is not redundant."} -``` +![](fig3.png) In Fig. 3(A), the only way to get from vertex 1 to 3, 4 or 5 is through C. The intermediate vertex B is redundant for routing purposes (and than to or from diff --git a/vignettes/fig1.png b/vignettes/fig1.png new file mode 100644 index 0000000000000000000000000000000000000000..5cbe54f5fcb8168d2b8f96a9bcfc1f809e614b17 GIT binary patch literal 14937 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 E0tDlV{{R30 literal 0 HcmV?d00001 diff --git a/vignettes/fig1.tex b/vignettes/fig1.tex index d2184d6b3..34a50db73 100644 --- a/vignettes/fig1.tex +++ b/vignettes/fig1.tex @@ -1,22 +1,31 @@ -\begin{tikzpicture}[font=\tiny] - \tikzstyle{node_style} = [draw=white, very thick, circle, fill=orange] - \tikzstyle{arrow_style1} = [->, black, line width=1, >=latex] - \tikzstyle{arrow_style2} = [->, black, line width=2, >=latex] - \tikzstyle{arrow_style3} = [->, black, line width=3, >=latex] - \tikzstyle{edge_style2} = [lightgray, line width=1] +%\documentclass[tikz,convert={outfile=\jobname.svg},border=5pt]{standalone} +\documentclass[tikz,border=5pt]{standalone} +\usepackage[utf8x]{inputenc} +% To create the .png: +% > pdflatex fig1.tex +% > convert -density 300 fig1.pdf -quality 100 fig1.png +\begin{document} + \begin{tikzpicture}[font=\tiny] + \tikzstyle{node_style} = [draw=white, very thick, circle, fill=orange] + \tikzstyle{arrow_style1} = [->, black, line width=1, >=latex] + \tikzstyle{arrow_style2} = [->, black, line width=2, >=latex] + \tikzstyle{arrow_style3} = [->, black, line width=3, >=latex] - \node[node_style] (n1) at (0,0) {A}; - \node[node_style] (n2) at (4,0) {B}; - \node[node_style] (n3) at (4,2) {C}; - \node[node_style] (n4) at (0,2) {D}; - \draw[arrow_style1] (n1) edge [bend left=20] (n2); - \draw[arrow_style2] (n2) edge [bend left=20] (n1); - \draw[arrow_style1] (n2) edge [bend left=20] (n3); - \draw[arrow_style2] (n3) edge [bend left=20] (n2); - \draw[arrow_style1] (n3) edge [bend left=20] (n4); - \draw[arrow_style2] (n4) edge [bend left=20] (n3); - \draw[arrow_style1] (n4) edge (n1); - \draw[arrow_style3, shorten <=2pt, shorten >=2pt] (n2) edge [out=140, in=-60] (n4); -\end{tikzpicture} + \node[node_style] (n1) at (0,0) {A}; + \node[node_style] (n2) at (4,0) {B}; + \node[node_style] (n3) at (4,2) {C}; + \node[node_style] (n4) at (0,2) {D}; + + \draw[arrow_style1] (n1) edge [bend left=20] (n2); + \draw[arrow_style2] (n2) edge [bend left=20] (n1); + \draw[arrow_style1] (n2) edge [bend left=20] (n3); + \draw[arrow_style2] (n3) edge [bend left=20] (n2); + \draw[arrow_style1] (n3) edge [bend left=20] (n4); + \draw[arrow_style2] (n4) edge [bend left=20] (n3); + \draw[arrow_style1] (n4) edge (n1); + \draw[arrow_style3, shorten <=2pt, shorten >=2pt] (n2) edge [out=140, in=-60] (n4); + \end{tikzpicture} + +\end{document} diff --git a/vignettes/fig2.png b/vignettes/fig2.png new file mode 100644 index 0000000000000000000000000000000000000000..4be026e669bcf3514421c6d5d893be6b88561e4d GIT binary patch literal 17825 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, shorten >=5pt, shorten <=5pt] - \tikzstyle{nonode} = [] - \tikzstyle{node_style} = [draw=white, very thick, circle, fill=orange] - \tikzstyle{black_arrow1} = [->, black, line width=1] - \tikzstyle{black_arrow2} = [->, black, line width=2] - \tikzstyle{black_arrow3} = [->, black, line width=3] - \tikzstyle{grey_arrow} = [->, lightgray, dashed, line width=1] - - \node[nonode] (nAd) at (0,-0.1) {}; - \node[nonode] (nAl) at (-0.1,0) {}; - \node[nonode] (nBd) at (4,-0.1) {}; - \node[nonode] (nBr) at (4.1,0) {}; - \node[nonode] (nCd) at (4,1.9) {}; - \node[nonode] (nCr) at (4.1,2) {}; - \node[nonode] (nDd) at (0,1.9) {}; - \node[nonode] (nDl) at (-0.1,2) {}; - - \draw[grey_arrow] (nAd) edge [bend left=10] (nBd); - \draw[grey_arrow] (nBd) edge [bend left=10] (nAd); - \draw[grey_arrow] (nBr) edge [bend left=10] (nCr); - \draw[grey_arrow] (nCr) edge [bend left=10] (nBr); - \draw[grey_arrow] (nCd) edge [bend left=10] (nDd); - \draw[grey_arrow] (nDd) edge [bend left=10] (nCd); - \draw[grey_arrow] (nDl) edge [bend right=10] (nAl); - \draw[grey_arrow] (nBd) edge [out=120, in=-40] (nDl); - - \node[node_style] (nA) at (0,0) {A}; - \node[node_style] (nB) at (4,0) {B}; - \node[node_style] (nC) at (4,2) {C}; - \node[node_style] (nD) at (0,2) {D}; - - \draw[black_arrow1] (nA) edge [bend left=10] (nB); - \draw[black_arrow2] (nB) edge [bend left=10] (nA); - \draw[black_arrow1] (nB) edge [bend left=10] (nC); - \draw[black_arrow2] (nC) edge [bend left=10] (nB); - \draw[black_arrow1] (nC) edge [bend left=10] (nD); - \draw[black_arrow2] (nD) edge [bend left=10] (nC); - \draw[black_arrow1] (nD) edge (nA); - - \draw[black_arrow3, shorten <=2pt, shorten >=2pt] (nB) edge [out=140, in=-60] (nD); -\end{tikzpicture} +\documentclass[tikz,border=5pt]{standalone} +\usepackage[utf8x]{inputenc} + +\begin{document} + + \begin{tikzpicture}[font=\tiny, >=latex, shorten >=5pt, shorten <=5pt] + \tikzstyle{nonode} = [] + \tikzstyle{node_style} = [draw=white, very thick, circle, fill=orange] + \tikzstyle{black_arrow1} = [->, black, line width=1] + \tikzstyle{black_arrow2} = [->, black, line width=2] + \tikzstyle{black_arrow3} = [->, black, line width=3] + \tikzstyle{grey_arrow} = [->, black!50, dashed, line width=1] + + \node[nonode] (nAd) at (0,-0.1) {}; + \node[nonode] (nAl) at (-0.1,0) {}; + \node[nonode] (nBd) at (4,-0.1) {}; + \node[nonode] (nBr) at (4.1,0) {}; + \node[nonode] (nCd) at (4,1.9) {}; + \node[nonode] (nCr) at (4.1,2) {}; + \node[nonode] (nDd) at (0,1.9) {}; + \node[nonode] (nDl) at (-0.1,2) {}; + + \draw[grey_arrow] (nAd) edge [bend left=10] (nBd); + \draw[grey_arrow] (nBd) edge [bend left=10] (nAd); + \draw[grey_arrow] (nBr) edge [bend left=10] (nCr); + \draw[grey_arrow] (nCr) edge [bend left=10] (nBr); + \draw[grey_arrow] (nCd) edge [bend left=10] (nDd); + \draw[grey_arrow] (nDd) edge [bend left=10] (nCd); + \draw[grey_arrow] (nDl) edge [bend right=10] (nAl); + \draw[grey_arrow] (nBd) edge [out=120, in=-40] (nDl); + + \node[node_style] (nA) at (0,0) {A}; + \node[node_style] (nB) at (4,0) {B}; + \node[node_style] (nC) at (4,2) {C}; + \node[node_style] (nD) at (0,2) {D}; + + \draw[black_arrow1] (nA) edge [bend left=10] (nB); + \draw[black_arrow2] (nB) edge [bend left=10] (nA); + \draw[black_arrow1] (nB) edge [bend left=10] (nC); + \draw[black_arrow2] (nC) edge [bend left=10] (nB); + \draw[black_arrow1] (nC) edge [bend left=10] (nD); + \draw[black_arrow2] (nD) edge [bend left=10] (nC); + \draw[black_arrow1] (nD) edge (nA); + + \draw[black_arrow3, shorten <=2pt, shorten >=2pt] (nB) edge [out=140, in=-60] (nD); + \end{tikzpicture} + +\end{document} diff --git a/vignettes/fig3.png b/vignettes/fig3.png new file mode 100644 index 0000000000000000000000000000000000000000..5a27196de22fd04e0ad8276c38e7b66cf6f552f4 GIT binary patch literal 34579 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 literal 0 HcmV?d00001 diff --git a/vignettes/fig3.tex b/vignettes/fig3.tex index e8d8bb4af..b93fab10a 100644 --- a/vignettes/fig3.tex +++ b/vignettes/fig3.tex @@ -1,56 +1,63 @@ -\begin{tikzpicture}[scale=3] - \tikzstyle{node_style} = [thick, circle, fill=orange] - \tikzstyle{arrow_style1} = [->, black, line width=1, >=latex] - - % This is (C) at the top - \node[node_style] (n21) at (0,3) {1}; - \node[node_style] (n22) at (1,2.75) {2}; - \node[node_style] (n23) at (2,2.5) {3}; - \node[node_style] (n24) at (2.5,3) {4}; - \node[node_style] (n25) at (2.5,2) {5}; - - \draw[arrow_style1] (n21) edge [bend left=10] (n22); - \draw[arrow_style1] (n22) edge [bend left=10] (n21); - \draw[arrow_style1] (n22) edge [bend left=10] (n23); - \draw[arrow_style1] (n23) edge [bend left=10] (n22); - \draw[arrow_style1] (n23) edge [bend left=10] (n24); - \draw[arrow_style1] (n24) edge [bend left=20] (n23); - \draw[arrow_style1] (n23) edge [bend left=10] (n25); - \draw[arrow_style1] (n25) edge [bend left=20] (n23); - - % Then (B) in the middle - \node[node_style] (n1) at (1,2) {1}; - %\node[node_style] (n2) at (2,1.75) {2}; - \node[node_style] (n3) at (3,1.5) {3}; - \node[node_style] (n4) at (3.5,2) {4}; - \node[node_style] (n5) at (3.5,1) {5}; - - \draw[arrow_style1] (n1) edge [bend left=10] (n3); - \draw[arrow_style1] (n3) edge [bend left=10] (n1); - %\draw[arrow_style1] (n2) edge [bend left=10] (n3); - %\draw[arrow_style1] (n3) edge [bend left=10] (n2); - \draw[arrow_style1] (n3) edge [bend left=10] (n4); - \draw[arrow_style1] (n4) edge [bend left=20] (n3); - \draw[arrow_style1] (n3) edge [bend left=10] (n5); - \draw[arrow_style1] (n5) edge [bend left=20] (n3); - - % Then (A) at the bottom - \node[node_style] (n11) at (0,1) {1}; - \node[node_style] (n12) at (1,0.75) {2}; - \node[node_style] (n13) at (2,0.5) {3}; - \node[node_style] (n14) at (2.5,1) {4}; - \node[node_style] (n15) at (2.5,0) {5}; - - \draw[arrow_style1] (n11) edge [bend left=10] (n12); - \draw[arrow_style1] (n12) edge [bend left=10] (n11); - \draw[arrow_style1] (n12) edge [bend left=10] (n13); - %\draw[arrow_style1] (n13) edge [bend left=10] (n12); - \draw[arrow_style1] (n13) edge [bend left=10] (n14); - \draw[arrow_style1] (n14) edge [bend left=20] (n13); - \draw[arrow_style1] (n13) edge [bend left=10] (n15); - \draw[arrow_style1] (n15) edge [bend left=20] (n13); - - \node at (4, 2.5) {\bf\LARGE (A)}; - \node at (4, 1.5) {\bf\LARGE (B)}; - \node at (4, 0.5) {\bf\LARGE (C)}; -\end{tikzpicture} +\documentclass[tikz,border=5pt]{standalone} +\usepackage[utf8x]{inputenc} + +\begin{document} + + \begin{tikzpicture}[scale=3] + \tikzstyle{node_style} = [thick, circle, fill=orange] + \tikzstyle{arrow_style1} = [->, black, line width=1, >=latex] + + % This is (C) at the top + \node[node_style] (n21) at (0,3) {1}; + \node[node_style] (n22) at (1,2.75) {2}; + \node[node_style] (n23) at (2,2.5) {3}; + \node[node_style] (n24) at (2.5,3) {4}; + \node[node_style] (n25) at (2.5,2) {5}; + + \draw[arrow_style1] (n21) edge [bend left=10] (n22); + \draw[arrow_style1] (n22) edge [bend left=10] (n21); + \draw[arrow_style1] (n22) edge [bend left=10] (n23); + \draw[arrow_style1] (n23) edge [bend left=10] (n22); + \draw[arrow_style1] (n23) edge [bend left=10] (n24); + \draw[arrow_style1] (n24) edge [bend left=20] (n23); + \draw[arrow_style1] (n23) edge [bend left=10] (n25); + \draw[arrow_style1] (n25) edge [bend left=20] (n23); + + % Then (B) in the middle + \node[node_style] (n1) at (1,2) {1}; + %\node[node_style] (n2) at (2,1.75) {2}; + \node[node_style] (n3) at (3,1.5) {3}; + \node[node_style] (n4) at (3.5,2) {4}; + \node[node_style] (n5) at (3.5,1) {5}; + + \draw[arrow_style1] (n1) edge [bend left=10] (n3); + \draw[arrow_style1] (n3) edge [bend left=10] (n1); + %\draw[arrow_style1] (n2) edge [bend left=10] (n3); + %\draw[arrow_style1] (n3) edge [bend left=10] (n2); + \draw[arrow_style1] (n3) edge [bend left=10] (n4); + \draw[arrow_style1] (n4) edge [bend left=20] (n3); + \draw[arrow_style1] (n3) edge [bend left=10] (n5); + \draw[arrow_style1] (n5) edge [bend left=20] (n3); + + % Then (A) at the bottom + \node[node_style] (n11) at (0,1) {1}; + \node[node_style] (n12) at (1,0.75) {2}; + \node[node_style] (n13) at (2,0.5) {3}; + \node[node_style] (n14) at (2.5,1) {4}; + \node[node_style] (n15) at (2.5,0) {5}; + + \draw[arrow_style1] (n11) edge [bend left=10] (n12); + \draw[arrow_style1] (n12) edge [bend left=10] (n11); + \draw[arrow_style1] (n12) edge [bend left=10] (n13); + %\draw[arrow_style1] (n13) edge [bend left=10] (n12); + \draw[arrow_style1] (n13) edge [bend left=10] (n14); + \draw[arrow_style1] (n14) edge [bend left=20] (n13); + \draw[arrow_style1] (n13) edge [bend left=10] (n15); + \draw[arrow_style1] (n15) edge [bend left=20] (n13); + + \node at (4, 2.5) {\bf\LARGE (A)}; + \node at (4, 1.5) {\bf\LARGE (B)}; + \node at (4, 0.5) {\bf\LARGE (C)}; + \end{tikzpicture} + +\end{document} diff --git a/vignettes/makefile b/vignettes/makefile index 25bb57ed7..897f68f1b 100644 --- a/vignettes/makefile +++ b/vignettes/makefile @@ -14,3 +14,38 @@ open: $(LFILE).html clean: rm -rf *.html *.png + + + +fig1: pdflone convone rmone + +pdflone: fig1.tex + pdflatex fig1.tex + +convone: fig1.pdf + convert -density 300 fig1.pdf -quality 100 fig1.png + +rmone: + rm fig1.aux fig1.log fig1.pdf + +fig2: pdfltwo convtwo rmtwo + +pdfltwo: fig2.tex + pdflatex fig2.tex + +convtwo: fig2.pdf + convert -density 300 fig2.pdf -quality 100 fig2.png + +rmtwo: + rm fig2.aux fig2.log fig2.pdf + +fig3: pdflthree convthree rmthree + +pdflthree: fig3.tex + pdflatex fig3.tex + +convthree: fig3.pdf + convert -density 300 fig3.pdf -quality 100 fig3.png + +rmthree: + rm fig3.aux fig3.log fig3.pdf