620 lines
360 KiB
HTML
Raw Normal View History

2025-01-12 00:52:51 +08:00
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Aesthetic specifications</title>
<script>// Pandoc 2.9 adds attributes on both header and div. We remove the former (to
// be compatible with the behavior of Pandoc < 2.8).
document.addEventListener('DOMContentLoaded', function(e) {
var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
var i, h, a;
for (i = 0; i < hs.length; i++) {
h = hs[i];
if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
a = h.attributes;
while (a.length > 0) h.removeAttribute(a[0].name);
}
});
</script>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
</style>
<style type="text/css">
code {
white-space: pre;
}
.sourceCode {
overflow: visible;
}
</style>
<style type="text/css" data-origin="pandoc">
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; }
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.at { color: #7d9029; }
code span.bn { color: #40a070; }
code span.bu { color: #008000; }
code span.cf { color: #007020; font-weight: bold; }
code span.ch { color: #4070a0; }
code span.cn { color: #880000; }
code span.co { color: #60a0b0; font-style: italic; }
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.do { color: #ba2121; font-style: italic; }
code span.dt { color: #902000; }
code span.dv { color: #40a070; }
code span.er { color: #ff0000; font-weight: bold; }
code span.ex { }
code span.fl { color: #40a070; }
code span.fu { color: #06287e; }
code span.im { color: #008000; font-weight: bold; }
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.kw { color: #007020; font-weight: bold; }
code span.op { color: #666666; }
code span.ot { color: #007020; }
code span.pp { color: #bc7a00; }
code span.sc { color: #4070a0; }
code span.ss { color: #bb6688; }
code span.st { color: #4070a0; }
code span.va { color: #19177c; }
code span.vs { color: #4070a0; }
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; }
</style>
<script>
// apply pandoc div.sourceCode style to pre.sourceCode instead
(function() {
var sheets = document.styleSheets;
for (var i = 0; i < sheets.length; i++) {
if (sheets[i].ownerNode.dataset["origin"] !== "pandoc") continue;
try { var rules = sheets[i].cssRules; } catch (e) { continue; }
var j = 0;
while (j < rules.length) {
var rule = rules[j];
// check if there is a div.sourceCode rule
if (rule.type !== rule.STYLE_RULE || rule.selectorText !== "div.sourceCode") {
j++;
continue;
}
var style = rule.style.cssText;
// check if color or background-color is set
if (rule.style.color === '' && rule.style.backgroundColor === '') {
j++;
continue;
}
// replace div.sourceCode by a pre.sourceCode rule
sheets[i].deleteRule(j);
sheets[i].insertRule('pre.sourceCode{' + style + '}', j);
}
}
})();
</script>
<style type="text/css">body {
background-color: #fff;
margin: 1em auto;
max-width: 700px;
overflow: visible;
padding-left: 2em;
padding-right: 2em;
font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
line-height: 1.35;
}
#TOC {
clear: both;
margin: 0 0 10px 10px;
padding: 4px;
width: 400px;
border: 1px solid #CCCCCC;
border-radius: 5px;
background-color: #f6f6f6;
font-size: 13px;
line-height: 1.3;
}
#TOC .toctitle {
font-weight: bold;
font-size: 15px;
margin-left: 5px;
}
#TOC ul {
padding-left: 40px;
margin-left: -1.5em;
margin-top: 5px;
margin-bottom: 5px;
}
#TOC ul ul {
margin-left: -2em;
}
#TOC li {
line-height: 16px;
}
table {
margin: 1em auto;
border-width: 1px;
border-color: #DDDDDD;
border-style: outset;
border-collapse: collapse;
}
table th {
border-width: 2px;
padding: 5px;
border-style: inset;
}
table td {
border-width: 1px;
border-style: inset;
line-height: 18px;
padding: 5px 5px;
}
table, table th, table td {
border-left-style: none;
border-right-style: none;
}
table thead, table tr.even {
background-color: #f7f7f7;
}
p {
margin: 0.5em 0;
}
blockquote {
background-color: #f6f6f6;
padding: 0.25em 0.75em;
}
hr {
border-style: solid;
border: none;
border-top: 1px solid #777;
margin: 28px 0;
}
dl {
margin-left: 0;
}
dl dd {
margin-bottom: 13px;
margin-left: 13px;
}
dl dt {
font-weight: bold;
}
ul {
margin-top: 0;
}
ul li {
list-style: circle outside;
}
ul ul {
margin-bottom: 0;
}
pre, code {
background-color: #f7f7f7;
border-radius: 3px;
color: #333;
white-space: pre-wrap;
}
pre {
border-radius: 3px;
margin: 5px 0px 10px 0px;
padding: 10px;
}
pre:not([class]) {
background-color: #f7f7f7;
}
code {
font-family: Consolas, Monaco, 'Courier New', monospace;
font-size: 85%;
}
p > code, li > code {
padding: 2px 0px;
}
div.figure {
text-align: center;
}
img {
background-color: #FFFFFF;
padding: 2px;
border: 1px solid #DDDDDD;
border-radius: 3px;
border: 1px solid #CCCCCC;
margin: 0 5px;
}
h1 {
margin-top: 0;
font-size: 35px;
line-height: 40px;
}
h2 {
border-bottom: 4px solid #f7f7f7;
padding-top: 10px;
padding-bottom: 2px;
font-size: 145%;
}
h3 {
border-bottom: 2px solid #f7f7f7;
padding-top: 10px;
font-size: 120%;
}
h4 {
border-bottom: 1px solid #f7f7f7;
margin-left: 8px;
font-size: 105%;
}
h5, h6 {
border-bottom: 1px solid #ccc;
font-size: 105%;
}
a {
color: #0033dd;
text-decoration: none;
}
a:hover {
color: #6666ff; }
a:visited {
color: #800080; }
a:visited:hover {
color: #BB00BB; }
a[href^="http:"] {
text-decoration: underline; }
a[href^="https:"] {
text-decoration: underline; }
code > span.kw { color: #555; font-weight: bold; }
code > span.dt { color: #902000; }
code > span.dv { color: #40a070; }
code > span.bn { color: #d14; }
code > span.fl { color: #d14; }
code > span.ch { color: #d14; }
code > span.st { color: #d14; }
code > span.co { color: #888888; font-style: italic; }
code > span.ot { color: #007020; }
code > span.al { color: #ff0000; font-weight: bold; }
code > span.fu { color: #900; font-weight: bold; }
code > span.er { color: #a61717; background-color: #e3d2d2; }
</style>
</head>
<body>
<h1 class="title toc-ignore">Aesthetic specifications</h1>
<p>This vignette summarises the various formats that grid drawing
functions take. Most of this information is available scattered
throughout the R documentation. This appendix brings it all together in
one place.</p>
<div id="colour-and-fill" class="section level2">
<h2>Colour and fill</h2>
<p>Almost every geom has either colour, fill, or both. Colours and fills
can be specified in the following ways:</p>
<ul>
<li><p>A <strong>name</strong>, e.g., <code>&quot;red&quot;</code>. R has 657
built-in named colours, which can be listed with
<code>colours()</code>.</p></li>
<li><p>An <strong>rgb specification</strong>, with a string of the form
<code>&quot;#RRGGBB&quot;</code> where each of the pairs <code>RR</code>,
<code>GG</code>, <code>BB</code> consists of two hexadecimal digits
giving a value in the range <code>00</code> to <code>FF</code></p>
<p>You can optionally make the colour transparent by using the form
<code>&quot;#RRGGBBAA&quot;</code>.</p></li>
<li><p>An <strong>NA</strong>, for a completely transparent
colour.</p></li>
<li><p>The <a href="https://github.com/cwickham/munsell">munsell</a>
package, by Charlotte Wickham, makes it easy to choose specific colours
using a system designed by Albert H. Munsell. If you invest a little in
learning the system, it provides a convenient way of specifying
aesthetically pleasing colours.</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb1-1"><a href="#cb1-1" tabindex="-1"></a>munsell<span class="sc">::</span><span class="fu">mnsl</span>(<span class="st">&quot;5PB 5/10&quot;</span>)</span>
<span id="cb1-2"><a href="#cb1-2" tabindex="-1"></a><span class="co">#&gt; [1] &quot;#447DBF&quot;</span></span></code></pre></div></li>
</ul>
</div>
<div id="lines" class="section level2">
<h2>Lines</h2>
<p>As well as <code>colour</code>, the appearance of a line is affected
by <code>linewidth</code>, <code>linetype</code>, <code>linejoin</code>
and <code>lineend</code>.</p>
<div id="sec:line-type-spec" class="section level3">
<h3>Line type</h3>
<p>Line types can be specified with:</p>
<ul>
<li><p>An <strong>integer</strong> or <strong>name</strong>: 0 = blank,
1 = solid, 2 = dashed, 3 = dotted, 4 = dotdash, 5 = longdash, 6 =
twodash, as shown below:</p>
<div class="sourceCode" id="cb2"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb2-1"><a href="#cb2-1" tabindex="-1"></a>lty <span class="ot">&lt;-</span> <span class="fu">c</span>(<span class="st">&quot;solid&quot;</span>, <span class="st">&quot;dashed&quot;</span>, <span class="st">&quot;dotted&quot;</span>, <span class="st">&quot;dotdash&quot;</span>, <span class="st">&quot;longdash&quot;</span>, <span class="st">&quot;twodash&quot;</span>)</span>
<span id="cb2-2"><a href="#cb2-2" tabindex="-1"></a>linetypes <span class="ot">&lt;-</span> <span class="fu">data.frame</span>(</span>
<span id="cb2-3"><a href="#cb2-3" tabindex="-1"></a> <span class="at">y =</span> <span class="fu">seq_along</span>(lty),</span>
<span id="cb2-4"><a href="#cb2-4" tabindex="-1"></a> <span class="at">lty =</span> lty</span>
<span id="cb2-5"><a href="#cb2-5" tabindex="-1"></a>) </span>
<span id="cb2-6"><a href="#cb2-6" tabindex="-1"></a><span class="fu">ggplot</span>(linetypes, <span class="fu">aes</span>(<span class="dv">0</span>, y)) <span class="sc">+</span> </span>
<span id="cb2-7"><a href="#cb2-7" tabindex="-1"></a> <span class="fu">geom_segment</span>(<span class="fu">aes</span>(<span class="at">xend =</span> <span class="dv">5</span>, <span class="at">yend =</span> y, <span class="at">linetype =</span> lty)) <span class="sc">+</span> </span>
<span id="cb2-8"><a href="#cb2-8" tabindex="-1"></a> <span class="fu">scale_linetype_identity</span>() <span class="sc">+</span> </span>
<span id="cb2-9"><a href="#cb2-9" tabindex="-1"></a> <span class="fu">geom_text</span>(<span class="fu">aes</span>(<span class="at">label =</span> lty), <span class="at">hjust =</span> <span class="dv">0</span>, <span class="at">nudge_y =</span> <span class="fl">0.2</span>) <span class="sc">+</span></span>
<span id="cb2-10"><a href="#cb2-10" tabindex="-1"></a> <span class="fu">scale_x_continuous</span>(<span class="cn">NULL</span>, <span class="at">breaks =</span> <span class="cn">NULL</span>) <span class="sc">+</span> </span>
<span id="cb2-11"><a href="#cb2-11" tabindex="-1"></a> <span class="fu">scale_y_reverse</span>(<span class="cn">NULL</span>, <span class="at">breaks =</span> <span class="cn">NULL</span>)</span></code></pre></div>
<p><img src="data:image/png;base64,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
<li><p>The lengths of on/off stretches of line. This is done with a
string containing 2, 4, 6, or 8 hexadecimal digits which give the
lengths of consecutive lengths. For example, the string
<code>&quot;33&quot;</code> specifies three units on followed by three off and
<code>&quot;3313&quot;</code> specifies three units on followed by three off
followed by one on and finally three off.</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb3-1"><a href="#cb3-1" tabindex="-1"></a>lty <span class="ot">&lt;-</span> <span class="fu">c</span>(<span class="st">&quot;11&quot;</span>, <span class="st">&quot;18&quot;</span>, <span class="st">&quot;1f&quot;</span>, <span class="st">&quot;81&quot;</span>, <span class="st">&quot;88&quot;</span>, <span class="st">&quot;8f&quot;</span>, <span class="st">&quot;f1&quot;</span>, <span class="st">&quot;f8&quot;</span>, <span class="st">&quot;ff&quot;</span>)</span>
<span id="cb3-2"><a href="#cb3-2" tabindex="-1"></a>linetypes <span class="ot">&lt;-</span> <span class="fu">data.frame</span>(</span>
<span id="cb3-3"><a href="#cb3-3" tabindex="-1"></a> <span class="at">y =</span> <span class="fu">seq_along</span>(lty),</span>
<span id="cb3-4"><a href="#cb3-4" tabindex="-1"></a> <span class="at">lty =</span> lty</span>
<span id="cb3-5"><a href="#cb3-5" tabindex="-1"></a>) </span>
<span id="cb3-6"><a href="#cb3-6" tabindex="-1"></a><span class="fu">ggplot</span>(linetypes, <span class="fu">aes</span>(<span class="dv">0</span>, y)) <span class="sc">+</span> </span>
<span id="cb3-7"><a href="#cb3-7" tabindex="-1"></a> <span class="fu">geom_segment</span>(<span class="fu">aes</span>(<span class="at">xend =</span> <span class="dv">5</span>, <span class="at">yend =</span> y, <span class="at">linetype =</span> lty)) <span class="sc">+</span> </span>
<span id="cb3-8"><a href="#cb3-8" tabindex="-1"></a> <span class="fu">scale_linetype_identity</span>() <span class="sc">+</span> </span>
<span id="cb3-9"><a href="#cb3-9" tabindex="-1"></a> <span class="fu">geom_text</span>(<span class="fu">aes</span>(<span class="at">label =</span> lty), <span class="at">hjust =</span> <span class="dv">0</span>, <span class="at">nudge_y =</span> <span class="fl">0.2</span>) <span class="sc">+</span></span>
<span id="cb3-10"><a href="#cb3-10" tabindex="-1"></a> <span class="fu">scale_x_continuous</span>(<span class="cn">NULL</span>, <span class="at">breaks =</span> <span class="cn">NULL</span>) <span class="sc">+</span> </span>
<span id="cb3-11"><a href="#cb3-11" tabindex="-1"></a> <span class="fu">scale_y_reverse</span>(<span class="cn">NULL</span>, <span class="at">breaks =</span> <span class="cn">NULL</span>)</span></code></pre></div>
<p><img src="data:image/png;base64,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
<p>The five standard dash-dot line types described above correspond to
44, 13, 1343, 73, and 2262.</p></li>
</ul>
</div>
<div id="linewidth" class="section level3">
<h3>Linewidth</h3>
<p>Due to a historical error, the unit of linewidth is roughly 0.75 mm.
Making it exactly 1 mm would change a very large number of existing
plots, so were stuck with this mistake.</p>
</div>
<div id="line-endjoin-paramters" class="section level3">
<h3>Line end/join paramters</h3>
<ul>
<li><p>The appearance of the line end is controlled by the
<code>lineend</code> paramter, and can be one of “round”, “butt” (the
default), or “square”.</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb4-1"><a href="#cb4-1" tabindex="-1"></a>df <span class="ot">&lt;-</span> <span class="fu">data.frame</span>(<span class="at">x =</span> <span class="dv">1</span><span class="sc">:</span><span class="dv">3</span>, <span class="at">y =</span> <span class="fu">c</span>(<span class="dv">4</span>, <span class="dv">1</span>, <span class="dv">9</span>))</span>
<span id="cb4-2"><a href="#cb4-2" tabindex="-1"></a>base <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(df, <span class="fu">aes</span>(x, y)) <span class="sc">+</span> <span class="fu">xlim</span>(<span class="fl">0.5</span>, <span class="fl">3.5</span>) <span class="sc">+</span> <span class="fu">ylim</span>(<span class="dv">0</span>, <span class="dv">10</span>)</span>
<span id="cb4-3"><a href="#cb4-3" tabindex="-1"></a>base <span class="sc">+</span> </span>
<span id="cb4-4"><a href="#cb4-4" tabindex="-1"></a> <span class="fu">geom_path</span>(<span class="at">linewidth =</span> <span class="dv">10</span>) <span class="sc">+</span> </span>
<span id="cb4-5"><a href="#cb4-5" tabindex="-1"></a> <span class="fu">geom_path</span>(<span class="at">linewidth =</span> <span class="dv">1</span>, <span class="at">colour =</span> <span class="st">&quot;red&quot;</span>)</span>
<span id="cb4-6"><a href="#cb4-6" tabindex="-1"></a></span>
<span id="cb4-7"><a href="#cb4-7" tabindex="-1"></a>base <span class="sc">+</span> </span>
<span id="cb4-8"><a href="#cb4-8" tabindex="-1"></a> <span class="fu">geom_path</span>(<span class="at">linewidth =</span> <span class="dv">10</span>, <span class="at">lineend =</span> <span class="st">&quot;round&quot;</span>) <span class="sc">+</span> </span>
<span id="cb4-9"><a href="#cb4-9" tabindex="-1"></a> <span class="fu">geom_path</span>(<span class="at">linewidth =</span> <span class="dv">1</span>, <span class="at">colour =</span> <span class="st">&quot;red&quot;</span>)</span>
<span id="cb4-10"><a href="#cb4-10" tabindex="-1"></a></span>
<span id="cb4-11"><a href="#cb4-11" tabindex="-1"></a>base <span class="sc">+</span> </span>
<span id="cb4-12"><a href="#cb4-12" tabindex="-1"></a> <span class="fu">geom_path</span>(<span class="at">linewidth =</span> <span class="dv">10</span>, <span class="at">lineend =</span> <span class="st">&quot;square&quot;</span>) <span class="sc">+</span> </span>
<span id="cb4-13"><a href="#cb4-13" tabindex="-1"></a> <span class="fu">geom_path</span>(<span class="at">linewidth =</span> <span class="dv">1</span>, <span class="at">colour =</span> <span class="st">&quot;red&quot;</span>)</span></code></pre></div>
<p><img src="data:image/png;base64,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
<li><p>The appearance of line joins is controlled by
<code>linejoin</code> and can be one of “round” (the default), “mitre”,
or “bevel”.</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb5-1"><a href="#cb5-1" tabindex="-1"></a>df <span class="ot">&lt;-</span> <span class="fu">data.frame</span>(<span class="at">x =</span> <span class="dv">1</span><span class="sc">:</span><span class="dv">3</span>, <span class="at">y =</span> <span class="fu">c</span>(<span class="dv">9</span>, <span class="dv">1</span>, <span class="dv">9</span>))</span>
<span id="cb5-2"><a href="#cb5-2" tabindex="-1"></a>base <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(df, <span class="fu">aes</span>(x, y)) <span class="sc">+</span> <span class="fu">ylim</span>(<span class="dv">0</span>, <span class="dv">10</span>)</span>
<span id="cb5-3"><a href="#cb5-3" tabindex="-1"></a>base <span class="sc">+</span> </span>
<span id="cb5-4"><a href="#cb5-4" tabindex="-1"></a> <span class="fu">geom_path</span>(<span class="at">linewidth =</span> <span class="dv">10</span>) <span class="sc">+</span> </span>
<span id="cb5-5"><a href="#cb5-5" tabindex="-1"></a> <span class="fu">geom_path</span>(<span class="at">linewidth =</span> <span class="dv">1</span>, <span class="at">colour =</span> <span class="st">&quot;red&quot;</span>)</span>
<span id="cb5-6"><a href="#cb5-6" tabindex="-1"></a></span>
<span id="cb5-7"><a href="#cb5-7" tabindex="-1"></a>base <span class="sc">+</span> </span>
<span id="cb5-8"><a href="#cb5-8" tabindex="-1"></a> <span class="fu">geom_path</span>(<span class="at">linewidth =</span> <span class="dv">10</span>, <span class="at">linejoin =</span> <span class="st">&quot;mitre&quot;</span>) <span class="sc">+</span> </span>
<span id="cb5-9"><a href="#cb5-9" tabindex="-1"></a> <span class="fu">geom_path</span>(<span class="at">linewidth =</span> <span class="dv">1</span>, <span class="at">colour =</span> <span class="st">&quot;red&quot;</span>)</span>
<span id="cb5-10"><a href="#cb5-10" tabindex="-1"></a></span>
<span id="cb5-11"><a href="#cb5-11" tabindex="-1"></a>base <span class="sc">+</span> </span>
<span id="cb5-12"><a href="#cb5-12" tabindex="-1"></a> <span class="fu">geom_path</span>(<span class="at">linewidth =</span> <span class="dv">10</span>, <span class="at">linejoin =</span> <span class="st">&quot;bevel&quot;</span>) <span class="sc">+</span> </span>
<span id="cb5-13"><a href="#cb5-13" tabindex="-1"></a> <span class="fu">geom_path</span>(<span class="at">linewidth =</span> <span class="dv">1</span>, <span class="at">colour =</span> <span class="st">&quot;red&quot;</span>)</span></code></pre></div>
<p><img src="data:image/png;base64,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3eeff+4mTpzYhBCKaaONNnJ4ViKdO3d2999/f9P54Ms777zjdtxxx+Cnl+711193m2++edOx2267zZEOwbmsb9++TedyfcEBDVlqqaVyJSnJ8d/+thHm4LMkhWYpBBzxhsbrOknhOsqFWdL14HENbsE9mBRulM/9lvT1lKNvwAzBw7nQTKSQo2JZFFCHDh28Bj/22GPeZ/DfRx995PDeDQRvUZRUpnz88ceOc4Hwfc6cOcFP7/OVV15xTz/9tPcdT81+/fo1O5/tR/CgBp7K2dKU4lhQT9IKiLZSRzkepnJhVo566J/goSpFf2crgzpqrW942RWSQh7mZVFAuRpJp4f3R7GHCRf8TImS7uyzz26WDeVWSNiKwRvps88+K5S0qPM8RNyA2LKSlNatW3vTU4z9Scpyyy3nvvjiiySr8O6DZZddNvG+CbZiJL1FolWrVt5WjK+//jpR3MrRN9zP1MNgodAIByXFc5ZLymIDylU5nRLeNMr3VVZZpUXyFVdcsUW6VVddtUU6O2AIGALpQqCiCqhLly5u+vTp7v3333eMfu677z7XtWtXD0GW5INl+W222cY98MAD3u5bjrEUv8kmm6QLaWutIWAItECgolMwbDlHHnmkO+KII9zyyy/v1lprLde7d2+vkddcc41ntDvhhBPcDjvs4PkAsUqGfWP//fd3bdq0aXExdsAQMATShcBC1UDLg2Mhxqp8cUOAlWV8bERRjLlxbEAYuZMUswHFR5d+xgYUpR/jl74gh9mAFmAR9VtgA/rkk08i2YAYXOSSio6AgkaxPBksiQfHsn0mvYSZrU47ZggYAskhUFEbUHKXZSUbAoZAGhAwBZSGXrI2GgI1ioApoBrtWLssQyANCJgCSkMvWRsNgRpFwBRQjXasXZYhkAYETAGloZesjYZAjSJgCqhGO9YuyxBIAwKmgGL0EhvvXnvttRg5LKkhUP0IEFKjUve1KaCI98cLL7zgdtllF/enP/3JffrppxFzWTJDoPoRuP766714WwMHDswaDifJKzAFVABdQnWwH23PPfd0r776qiNswxlnnFEgl502BNKBwJdffumFRGYURDTSrbfe2l177bXNwuQkeSWmgHKgy+78f/3rX16HjB8/vlkq4lo/99xzzY7ZD0MgjQice+65zULdQIV9yimnuJ133tmVI+yxKaAsdw3hPtiBz0gnM451kJwQs+FgasFx+zQE0oIAdp+bb745a3M5t/fee7vjjjvOsek0KTEFFEL2ww8/dEcddZTbZ5993FtvvRU60/IrHXT11Ve3PGFHDIGUIMBLtFBEwzvuuMObBVxxxRWJ0GGZApKb5eeff3YXX3yxI/DZvffeG/n2ueCCC8putIvcOEtoCORBAKaZqGYE7J5nnnmm23777T0WmzzFxj5V9wro+bPPdY913MSdd955sWM2M18+66yzYoNuGQyBSiJAzHDu97gC68yAXr3ctI6d3QfPlIYWq24VEASIU9tv7Dqffpb76zffu72dDgrogGDkMDEE0oLAqFGj1K4kF7rfum0/+MgttUV398Axx3mBBIu5bt1TV0yNFc4LM8WYMWNc9+7d3W1z3mtqzUgBtjDJSFPypi8sXw4ZMqQgP1JTBvtiCFQQgbfffttbZtc0obtbSF7UjZxg/3MN
</ul>
<p>Mitre joins are automatically converted to bevel joins whenever the
angle is too small (which would create a very long bevel). This is
controlled by the <code>linemitre</code> parameter which specifies the
maximum ratio between the line width and the length of the mitre.</p>
</div>
</div>
<div id="polygons" class="section level2">
<h2>Polygons</h2>
<p>The border of the polygon is controlled by the <code>colour</code>,
<code>linetype</code>, and <code>linewidth</code> aesthetics as
described above. The inside is controlled by <code>fill</code>.</p>
</div>
<div id="point" class="section level2">
<h2>Point</h2>
<div id="sec:shape-spec" class="section level3">
<h3>Shape</h3>
<p>Shapes take five types of values:</p>
<ul>
<li><p>An <strong>integer</strong> in <span class="math inline">\([0,
25]\)</span>:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb6-1"><a href="#cb6-1" tabindex="-1"></a>shapes <span class="ot">&lt;-</span> <span class="fu">data.frame</span>(</span>
<span id="cb6-2"><a href="#cb6-2" tabindex="-1"></a> <span class="at">shape =</span> <span class="fu">c</span>(<span class="dv">0</span><span class="sc">:</span><span class="dv">19</span>, <span class="dv">22</span>, <span class="dv">21</span>, <span class="dv">24</span>, <span class="dv">23</span>, <span class="dv">20</span>),</span>
<span id="cb6-3"><a href="#cb6-3" tabindex="-1"></a> <span class="at">x =</span> <span class="dv">0</span><span class="sc">:</span><span class="dv">24</span> <span class="sc">%/%</span> <span class="dv">5</span>,</span>
<span id="cb6-4"><a href="#cb6-4" tabindex="-1"></a> <span class="at">y =</span> <span class="sc">-</span>(<span class="dv">0</span><span class="sc">:</span><span class="dv">24</span> <span class="sc">%%</span> <span class="dv">5</span>)</span>
<span id="cb6-5"><a href="#cb6-5" tabindex="-1"></a>)</span>
<span id="cb6-6"><a href="#cb6-6" tabindex="-1"></a><span class="fu">ggplot</span>(shapes, <span class="fu">aes</span>(x, y)) <span class="sc">+</span> </span>
<span id="cb6-7"><a href="#cb6-7" tabindex="-1"></a> <span class="fu">geom_point</span>(<span class="fu">aes</span>(<span class="at">shape =</span> shape), <span class="at">size =</span> <span class="dv">5</span>, <span class="at">fill =</span> <span class="st">&quot;red&quot;</span>) <span class="sc">+</span></span>
<span id="cb6-8"><a href="#cb6-8" tabindex="-1"></a> <span class="fu">geom_text</span>(<span class="fu">aes</span>(<span class="at">label =</span> shape), <span class="at">hjust =</span> <span class="dv">0</span>, <span class="at">nudge_x =</span> <span class="fl">0.15</span>) <span class="sc">+</span></span>
<span id="cb6-9"><a href="#cb6-9" tabindex="-1"></a> <span class="fu">scale_shape_identity</span>() <span class="sc">+</span></span>
<span id="cb6-10"><a href="#cb6-10" tabindex="-1"></a> <span class="fu">expand_limits</span>(<span class="at">x =</span> <span class="fl">4.1</span>) <span class="sc">+</span></span>
<span id="cb6-11"><a href="#cb6-11" tabindex="-1"></a> <span class="fu">theme_void</span>()</span></code></pre></div>
<p><img src="data:image/png;base64,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
<li><p>The <strong>name</strong> of the shape:</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb7-1"><a href="#cb7-1" tabindex="-1"></a>shape_names <span class="ot">&lt;-</span> <span class="fu">c</span>(</span>
<span id="cb7-2"><a href="#cb7-2" tabindex="-1"></a> <span class="st">&quot;circle&quot;</span>, <span class="fu">paste</span>(<span class="st">&quot;circle&quot;</span>, <span class="fu">c</span>(<span class="st">&quot;open&quot;</span>, <span class="st">&quot;filled&quot;</span>, <span class="st">&quot;cross&quot;</span>, <span class="st">&quot;plus&quot;</span>, <span class="st">&quot;small&quot;</span>)), <span class="st">&quot;bullet&quot;</span>,</span>
<span id="cb7-3"><a href="#cb7-3" tabindex="-1"></a> <span class="st">&quot;square&quot;</span>, <span class="fu">paste</span>(<span class="st">&quot;square&quot;</span>, <span class="fu">c</span>(<span class="st">&quot;open&quot;</span>, <span class="st">&quot;filled&quot;</span>, <span class="st">&quot;cross&quot;</span>, <span class="st">&quot;plus&quot;</span>, <span class="st">&quot;triangle&quot;</span>)),</span>
<span id="cb7-4"><a href="#cb7-4" tabindex="-1"></a> <span class="st">&quot;diamond&quot;</span>, <span class="fu">paste</span>(<span class="st">&quot;diamond&quot;</span>, <span class="fu">c</span>(<span class="st">&quot;open&quot;</span>, <span class="st">&quot;filled&quot;</span>, <span class="st">&quot;plus&quot;</span>)),</span>
<span id="cb7-5"><a href="#cb7-5" tabindex="-1"></a> <span class="st">&quot;triangle&quot;</span>, <span class="fu">paste</span>(<span class="st">&quot;triangle&quot;</span>, <span class="fu">c</span>(<span class="st">&quot;open&quot;</span>, <span class="st">&quot;filled&quot;</span>, <span class="st">&quot;square&quot;</span>)),</span>
<span id="cb7-6"><a href="#cb7-6" tabindex="-1"></a> <span class="fu">paste</span>(<span class="st">&quot;triangle down&quot;</span>, <span class="fu">c</span>(<span class="st">&quot;open&quot;</span>, <span class="st">&quot;filled&quot;</span>)),</span>
<span id="cb7-7"><a href="#cb7-7" tabindex="-1"></a> <span class="st">&quot;plus&quot;</span>, <span class="st">&quot;cross&quot;</span>, <span class="st">&quot;asterisk&quot;</span></span>
<span id="cb7-8"><a href="#cb7-8" tabindex="-1"></a>)</span>
<span id="cb7-9"><a href="#cb7-9" tabindex="-1"></a></span>
<span id="cb7-10"><a href="#cb7-10" tabindex="-1"></a>shapes <span class="ot">&lt;-</span> <span class="fu">data.frame</span>(</span>
<span id="cb7-11"><a href="#cb7-11" tabindex="-1"></a> <span class="at">shape_names =</span> shape_names,</span>
<span id="cb7-12"><a href="#cb7-12" tabindex="-1"></a> <span class="at">x =</span> <span class="fu">c</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">7</span>, <span class="dv">1</span><span class="sc">:</span><span class="dv">6</span>, <span class="dv">1</span><span class="sc">:</span><span class="dv">3</span>, <span class="dv">5</span>, <span class="dv">1</span><span class="sc">:</span><span class="dv">3</span>, <span class="dv">6</span>, <span class="dv">2</span><span class="sc">:</span><span class="dv">3</span>, <span class="dv">1</span><span class="sc">:</span><span class="dv">3</span>),</span>
<span id="cb7-13"><a href="#cb7-13" tabindex="-1"></a> <span class="at">y =</span> <span class="sc">-</span><span class="fu">rep</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">6</span>, <span class="fu">c</span>(<span class="dv">7</span>, <span class="dv">6</span>, <span class="dv">4</span>, <span class="dv">4</span>, <span class="dv">2</span>, <span class="dv">3</span>))</span>
<span id="cb7-14"><a href="#cb7-14" tabindex="-1"></a>)</span>
<span id="cb7-15"><a href="#cb7-15" tabindex="-1"></a></span>
<span id="cb7-16"><a href="#cb7-16" tabindex="-1"></a><span class="fu">ggplot</span>(shapes, <span class="fu">aes</span>(x, y)) <span class="sc">+</span></span>
<span id="cb7-17"><a href="#cb7-17" tabindex="-1"></a> <span class="fu">geom_point</span>(<span class="fu">aes</span>(<span class="at">shape =</span> shape_names), <span class="at">fill =</span> <span class="st">&quot;red&quot;</span>, <span class="at">size =</span> <span class="dv">5</span>) <span class="sc">+</span></span>
<span id="cb7-18"><a href="#cb7-18" tabindex="-1"></a> <span class="fu">geom_text</span>(<span class="fu">aes</span>(<span class="at">label =</span> shape_names), <span class="at">nudge_y =</span> <span class="sc">-</span><span class="fl">0.3</span>, <span class="at">size =</span> <span class="fl">3.5</span>) <span class="sc">+</span></span>
<span id="cb7-19"><a href="#cb7-19" tabindex="-1"></a> <span class="fu">scale_shape_identity</span>() <span class="sc">+</span></span>
<span id="cb7-20"><a href="#cb7-20" tabindex="-1"></a> <span class="fu">theme_void</span>()</span></code></pre></div>
<p><img src="data:image/png;base64,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
<li><p>A <strong>single character</strong>, to use that character as a
plotting symbol.</p></li>
<li><p>A <code>.</code> to draw the smallest rectangle that is visible,
usually 1 pixel.</p></li>
<li><p>An <code>NA</code>, to draw nothing.</p></li>
</ul>
</div>
<div id="colour-and-fill-1" class="section level3">
<h3>Colour and fill</h3>
<p>Note that shapes 21-24 have both stroke <code>colour</code> and a
<code>fill</code>. The size of the filled part is controlled by
<code>size</code>, the size of the stroke is controlled by
<code>stroke</code>. Each is measured in mm, and the total size of the
point is the sum of the two. Note that the size is constant along the
diagonal in the following figure.</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb8-1"><a href="#cb8-1" tabindex="-1"></a>sizes <span class="ot">&lt;-</span> <span class="fu">expand.grid</span>(<span class="at">size =</span> (<span class="dv">0</span><span class="sc">:</span><span class="dv">3</span>) <span class="sc">*</span> <span class="dv">2</span>, <span class="at">stroke =</span> (<span class="dv">0</span><span class="sc">:</span><span class="dv">3</span>) <span class="sc">*</span> <span class="dv">2</span>)</span>
<span id="cb8-2"><a href="#cb8-2" tabindex="-1"></a><span class="fu">ggplot</span>(sizes, <span class="fu">aes</span>(size, stroke, <span class="at">size =</span> size, <span class="at">stroke =</span> stroke)) <span class="sc">+</span> </span>
<span id="cb8-3"><a href="#cb8-3" tabindex="-1"></a> <span class="fu">geom_abline</span>(<span class="at">slope =</span> <span class="sc">-</span><span class="dv">1</span>, <span class="at">intercept =</span> <span class="dv">6</span>, <span class="at">colour =</span> <span class="st">&quot;white&quot;</span>, <span class="at">linewidth =</span> <span class="dv">6</span>) <span class="sc">+</span> </span>
<span id="cb8-4"><a href="#cb8-4" tabindex="-1"></a> <span class="fu">geom_point</span>(<span class="at">shape =</span> <span class="dv">21</span>, <span class="at">fill =</span> <span class="st">&quot;red&quot;</span>) <span class="sc">+</span></span>
<span id="cb8-5"><a href="#cb8-5" tabindex="-1"></a> <span class="fu">scale_size_identity</span>()</span></code></pre></div>
<p><img src="data:image/png;base64,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
</div>
</div>
<div id="text" class="section level2">
<h2>Text</h2>
<div id="font-family" class="section level3">
<h3>Font family</h3>
<p>There are only three fonts that are guaranteed to work everywhere:
“sans” (the default), “serif”, or “mono”:</p>
<div class="sourceCode" id="cb9"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb9-1"><a href="#cb9-1" tabindex="-1"></a>df <span class="ot">&lt;-</span> <span class="fu">data.frame</span>(<span class="at">x =</span> <span class="dv">1</span>, <span class="at">y =</span> <span class="dv">3</span><span class="sc">:</span><span class="dv">1</span>, <span class="at">family =</span> <span class="fu">c</span>(<span class="st">&quot;sans&quot;</span>, <span class="st">&quot;serif&quot;</span>, <span class="st">&quot;mono&quot;</span>))</span>
<span id="cb9-2"><a href="#cb9-2" tabindex="-1"></a><span class="fu">ggplot</span>(df, <span class="fu">aes</span>(x, y)) <span class="sc">+</span> </span>
<span id="cb9-3"><a href="#cb9-3" tabindex="-1"></a> <span class="fu">geom_text</span>(<span class="fu">aes</span>(<span class="at">label =</span> family, <span class="at">family =</span> family))</span></code></pre></div>
<p><img src="data:image/png;base64,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
<p>Its trickier to include a system font on a plot because text drawing
is done differently by each graphics device (GD). There are five GDs in
common use (<code>png()</code>, <code>pdf()</code>, on screen devices
for Windows, Mac and Linux), so to have a font work everywhere you need
to configure five devices in five different ways. Two packages simplify
the quandary a bit:</p>
<ul>
<li><p><code>showtext</code> makes GD-independent plots by rendering all
text as polygons.</p></li>
<li><p><code>extrafont</code> converts fonts to a standard format that
all devices can use.</p></li>
</ul>
<p>Both approaches have pros and cons, so you will to need to try both
of them and see which works best for your needs.</p>
</div>
<div id="font-face" class="section level3">
<h3>Font face</h3>
<div class="sourceCode" id="cb10"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb10-1"><a href="#cb10-1" tabindex="-1"></a>df <span class="ot">&lt;-</span> <span class="fu">data.frame</span>(<span class="at">x =</span> <span class="dv">1</span><span class="sc">:</span><span class="dv">4</span>, <span class="at">fontface =</span> <span class="fu">c</span>(<span class="st">&quot;plain&quot;</span>, <span class="st">&quot;bold&quot;</span>, <span class="st">&quot;italic&quot;</span>, <span class="st">&quot;bold.italic&quot;</span>))</span>
<span id="cb10-2"><a href="#cb10-2" tabindex="-1"></a><span class="fu">ggplot</span>(df, <span class="fu">aes</span>(<span class="dv">1</span>, x)) <span class="sc">+</span> </span>
<span id="cb10-3"><a href="#cb10-3" tabindex="-1"></a> <span class="fu">geom_text</span>(<span class="fu">aes</span>(<span class="at">label =</span> fontface, <span class="at">fontface =</span> fontface))</span></code></pre></div>
<p><img src="data:image/png;base64,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
</div>
<div id="font-size" class="section level3">
<h3>Font size</h3>
<p>The <code>size</code> of text is measured in mm by default. This is
unusual, but makes the size of text consistent with the size of lines
and points. Typically you specify font size using points (or pt for
short), where 1 pt = 0.35mm. In <code>geom_text()</code> and
<code>geom_label()</code>, you can set <code>size.unit = &quot;pt&quot;</code> to
use points instead of millimeters. In addition, ggplot2 provides a
conversion factor as the variable <code>.pt</code>, so if you want to
draw 12pt text, you can also set <code>size = 12 / .pt</code>.</p>
</div>
<div id="justification" class="section level3">
<h3>Justification</h3>
<p>Horizontal and vertical justification have the same parameterisation,
either a string (“top”, “middle”, “bottom”, “left”, “center”, “right”)
or a number between 0 and 1:</p>
<ul>
<li>top = 1, middle = 0.5, bottom = 0</li>
<li>left = 0, center = 0.5, right = 1</li>
</ul>
<div class="sourceCode" id="cb11"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb11-1"><a href="#cb11-1" tabindex="-1"></a>just <span class="ot">&lt;-</span> <span class="fu">expand.grid</span>(<span class="at">hjust =</span> <span class="fu">c</span>(<span class="dv">0</span>, <span class="fl">0.5</span>, <span class="dv">1</span>), <span class="at">vjust =</span> <span class="fu">c</span>(<span class="dv">0</span>, <span class="fl">0.5</span>, <span class="dv">1</span>))</span>
<span id="cb11-2"><a href="#cb11-2" tabindex="-1"></a>just<span class="sc">$</span>label <span class="ot">&lt;-</span> <span class="fu">paste0</span>(just<span class="sc">$</span>hjust, <span class="st">&quot;, &quot;</span>, just<span class="sc">$</span>vjust)</span>
<span id="cb11-3"><a href="#cb11-3" tabindex="-1"></a></span>
<span id="cb11-4"><a href="#cb11-4" tabindex="-1"></a><span class="fu">ggplot</span>(just, <span class="fu">aes</span>(hjust, vjust)) <span class="sc">+</span></span>
<span id="cb11-5"><a href="#cb11-5" tabindex="-1"></a> <span class="fu">geom_point</span>(<span class="at">colour =</span> <span class="st">&quot;grey70&quot;</span>, <span class="at">size =</span> <span class="dv">5</span>) <span class="sc">+</span> </span>
<span id="cb11-6"><a href="#cb11-6" tabindex="-1"></a> <span class="fu">geom_text</span>(<span class="fu">aes</span>(<span class="at">label =</span> label, <span class="at">hjust =</span> hjust, <span class="at">vjust =</span> vjust))</span></code></pre></div>
<p><img src="data:image/png;base64,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
<p>Note that you can use numbers outside the range (0, 1), but its not
recommended.</p>
</div>
</div>
<!-- code folding -->
<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script>
</body>
</html>