Heim  >  Fragen und Antworten  >  Hauptteil

r2d3 in R: Wie zeige ich zwei Diagramme nebeneinander auf derselben Linie an?

<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粉543344381P粉543344381412 Tage vor617

Antworte allen(1)Ich werde antworten

  • P粉786432579

    P粉7864325792023-09-04 14:21:52

    我猜有多种方法可以做到这一点。一种选择是使用在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输出的问题。

    Antwort
    0
  • StornierenAntwort