r2d3 in R: Wie zeige ich zwei Diagramme nebeneinander auf derselben Linie an?
P粉543344381
P粉543344381 2023-09-03 16:23:03
0
1
675
<p>Mit dem Paket r2d3 kann ich ein einfaches d3.js-Diagramm in RMarkdown wie folgt rendern: </p> <p><strong>barchart.js</strong>:</p> <pre class="brush:php;toolbar:false;">// !preview r2d3 data=c(0.3, 0.6, 0.8, 0.95, 0.40, 0.20) var barHeight = Math.floor(height / data.length); SVG .selectAll("rect") .data(Daten) .eingeben() .append("rect") .attr("width", Funktion (d) { return d * width; }) .attr("height", barHeight) .attr("y", Funktion (d, i) { return i * barHeight; }) .attr("fill", "steelblue");</pre> <p><strong>RMarkdown</strong>: </p> <pre class="brush:php;toolbar:false;">{r out.width='100%', fig.height=4} Bibliothek(r2d3) r2d3(data=c(0.3, 0.6, 0.8, 0.95, 0.40, 0.20), script = "barchart.js")</pre> <p>Nehmen wir jedoch an, ich möchte dasselbe Diagramm gleichzeitig in RMarkdown zeichnen (d. h. zwei Diagramme nebeneinander). Gibt es eine Möglichkeit, dies zu tun? Die Verwendung von einfachem RMarkdown ist einfach, da Sie das Diagramm speichern und dann in einem Raster anordnen können. Aber gibt es für r2d3 eine Möglichkeit, dies zu tun? Es speichert nicht jede Form als Objekt, das in einem Raster angeordnet werden kann. </p>
P粉543344381
P粉543344381

Antworte allen(1)
P粉786432579

我猜有多种方法可以做到这一点。一种选择是使用在crosstalk包中实现的Bootstrap Columns:

library(r2d3)
library(crosstalk)

crosstalk::bscols(
  widths = c(6, 6),
   r2d3(data=c(0.3, 0.6, 0.8, 0.95, 0.40, 0.20), script = "barchart.js", 
        width = 300, height = 200),
   r2d3(data=c(0.3, 0.6, 0.8, 0.95, 0.40, 0.20), script = "barchart.js", 
        width = 300, height = 200)
)

顺便说一句 - bscols对于安排任何交互式的html小部件也非常有用,并且可以解决大多数情况下无法轻松安排“正常”Rmd输出的问题。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage