recherche

Maison  >  Questions et réponses  >  le corps du texte

r2d3 dans R : Comment afficher deux tracés côte à côte sur la même ligne ?

<p>En utilisant le package r2d3, je peux restituer un simple graphique d3.js dans RMarkdown comme ceci : </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(hauteur / données.longueur); SVG .selectAll("rect") .data(données) .entrer() .append("rect") .attr("largeur", fonction (d) { retourner d * largeur ; }) .attr("hauteur", hauteur de la barre) .attr("y", fonction (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} bibliothèque (r2d3) r2d3(data=c(0.3, 0.6, 0.8, 0.95, 0.40, 0.20), script = "barchart.js")</pre> <p>Cependant, disons que je souhaite dessiner le même graphique simultanément dans RMarkdown (c'est-à-dire deux graphiques côte à côte). Y a-t-il un moyen de faire cela? L’utilisation simple de RMarkdown est simple puisque vous pouvez enregistrer le graphique puis l’organiser dans une grille. Mais existe-t-il un moyen pour r2d3 de faire cela ? Il n'enregistre pas chaque forme en tant qu'objet pouvant être disposé dans une grille. </p>
P粉543344381P粉543344381538 Il y a quelques jours729

répondre à tous(1)je répondrai

  • P粉786432579

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

    Je suppose qu'il existe plusieurs façons de procéder. Une option consiste à utiliser les colonnes Bootstrap implémentées dans le package crosstalk : 

    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)
    )

    BTW - bscols est également très utile pour planifier des widgets HTML interactifs, et peut résoudre la plupart des cas où la sortie Rmd "normale" ne peut pas être facilement planifiée.

    répondre
    0
  • Annulerrépondre