<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Super Statisticienne &#187; DataVisualisation</title>
	<atom:link href="http://superstatisticienne.fr/tag/datavisualisation/feed/" rel="self" type="application/rss+xml" />
	<link>http://superstatisticienne.fr</link>
	<description>Statistiques, R et paillettes...</description>
	<lastBuildDate>Sat, 19 Nov 2016 14:52:42 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>R sur le web : le package “shiny”</title>
		<link>http://superstatisticienne.fr/r-sur-le-web-le-package-shiny/</link>
		<comments>http://superstatisticienne.fr/r-sur-le-web-le-package-shiny/#comments</comments>
		<pubDate>Sat, 06 Feb 2016 13:56:49 +0000</pubDate>
		<dc:creator><![CDATA[superstatisticienne]]></dc:creator>
				<category><![CDATA[R]]></category>
		<category><![CDATA[R-shiny]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Dashboard]]></category>
		<category><![CDATA[DataVisualisation]]></category>
		<category><![CDATA[Shiny]]></category>
		<category><![CDATA[WebApp]]></category>

		<guid isPermaLink="false">http://superstatisticienne.fr/?p=436</guid>
		<description><![CDATA[R est un super outil pour les analyses statistiques, qui permet notamment de réaliser tout un tas de graphiques hautement personnalisables afin de rendre la présentation de résultats attrayante et parlante. Un package indispensable pour venir compléter la puissance de R est, selon moi, le package &#171;&#160;shiny&#160;&#187; qui permet d’aller encore plus loin en publiant [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><strong>R</strong> est un super outil pour les analyses statistiques, qui permet notamment de réaliser tout un tas de graphiques hautement personnalisables afin de rendre la présentation de résultats attrayante et parlante.<br />
Un package indispensable pour venir compléter la puissance de R est, selon moi, le <span style="color: #923887;"><strong>package &laquo;&nbsp;shiny&nbsp;&raquo;</strong></span> qui permet d’aller encore plus loin en publiant vos résultats d’analyses sur le web ! Si vous ne le connaissez pas déjà, je vous conseille d’y jeter un oeil, ça va changer votre vie ;-)</p>
<p><span id="more-436"></span><br />
&nbsp;<br />
<span style="color: #923887;"><strong>- Shiny : qu’est-ce que c’est ? -</strong></span></p>
<p><a title="shiny_package" href="https://cran.r-project.org/web/packages/shiny/index.html" target="_blank">Shiny</a> est un package R, développé par <a title="rstudio" href="https://www.rstudio.com/" target="_blank">RStudio</a>, qui permet la création de pages web interactives sur lesquelles il est possible de réaliser toutes les analyses / actions disponibles sous R.</p>
<p>Sa grande force est le fait qu’il n’y a absolument pas besoin de connaître ni HTML, ni CSS, ni Javascript : tout se fait directement en R ! Cela fait de ce package un outil très puissant et très prisé des fans de R ^^<br />
&nbsp;</p>
<p><span style="color: #923887;"><strong>- Shiny : à quoi ça ressemble ? -</strong></span></p>
<p>Pour voir quelques exemples d’applications shiny, voici plusieurs liens :</p>
<ul>
<li>Galerie Shiny (avec des exemples de bases) : <a title="shiny_gallery" href="http://shiny.rstudio.com/gallery/" target="_blank">http://shiny.rstudio.com/gallery/</a></li>
<li>&laquo;&nbsp;Shiny user showcase&nbsp;&raquo; (avec des exemples un peu plus complexes et sophistiqués) : <a title="shiny-user-showcase" href="https://www.rstudio.com/products/shiny/shiny-user-showcase/" target="_blank">https://www.rstudio.com/products/shiny/shiny-user-showcase/</a></li>
<li>&laquo;&nbsp;Show me Shiny&nbsp;&raquo; (pas mal d&rsquo;autres exemples intéressants) : <a title="showmeshiny" href="http://www.showmeshiny.com/" target="_blank">http://www.showmeshiny.com/</a></li>
</ul>
<p>&nbsp;</p>
<p><span style="color: #923887;"><strong>- Shiny : comment ça marche ? -</strong></span></p>
<p>Après avoir installé et chargé le package &laquo;&nbsp;shiny&nbsp;&raquo; dans R (pour l’installation de package R, voir par exemple <a title="les-packages-r" href="http://superstatisticienne.fr/les-packages-r/" target="_blank">ici</a>), il faut créer son application shiny qui sera composée de deux fichiers : un fichier &laquo;&nbsp;<strong>ui.R</strong>&nbsp;&raquo; et un fichier &laquo;&nbsp;<strong>server.R</strong>&nbsp;&raquo; .</p>
<p>La partie &laquo;&nbsp;ui&nbsp;&raquo; : <u>U</u>ser <u>I</u>nterface script, contrôle la mise en page et l&rsquo;apparence de l&rsquo;application.<br />
La partie &laquo;&nbsp;server&nbsp;&raquo; : Server script, contient les instructions dont l&rsquo;ordinateur a besoin pour construire l&rsquo;application.</p>
<p><u>Exemple basique</u> (<em>issu du tutoriel officiel</em>) :</p>
<p>> &laquo;&nbsp;ui.R&nbsp;&raquo; :</p>
<p></p><pre class="crayon-plain-tag">library(shiny)

# Define UI for application that draws a histogram
shinyUI(fluidPage(

  # Application title
  titlePanel("Hello World!"),

  # Sidebar with a slider input for the number of bins
  sidebarLayout(
    sidebarPanel(
      sliderInput("bins",
                  "Number of bins:",
                  min = 5,
                  max = 50,
                  value = 30)
    ),

    # Show a plot of the generated distribution
    mainPanel(
      plotOutput("distPlot")
    )
  )
))</pre><p> </p>
<p>> &laquo;&nbsp;server.R&nbsp;&raquo; :</p>
<p></p><pre class="crayon-plain-tag">library(shiny)

# Define server logic required to draw a histogram
shinyServer(function(input, output) {

  # Expression that generates a histogram. The expression is
  # wrapped in a call to renderPlot to indicate that:
  #
  #  1) It is "reactive" and therefore should
  #     re-execute automatically when inputs change
  #  2) Its output type is a plot

  output$distPlot &lt;- renderPlot({
    x    &lt;- faithful[, 2]  # Old Faithful Geyser data
    bins &lt;- seq(min(x), max(x), length.out = input$bins + 1)

    # draw the histogram with the specified number of bins
    hist(x, breaks = bins, col = 'skyblue', border = 'white')
  })
})</pre><p> </p>
<p>Puis pour lancer l’application et la tester :</p><pre class="crayon-plain-tag">shinyApp(“C:/monchemin/mondossiercontenantlesfichiersR/”)</pre><p></p>
<p><a href="http://superstatisticienne.fr/wp-content/uploads/2016/02/demo1.jpg"><img src="http://superstatisticienne.fr/wp-content/uploads/2016/02/demo1.jpg" alt="demo1" width="976" height="571" class="alignnone size-full wp-image-580" /></a><br />
&nbsp;</p>
<p><span style="color: #923887;"><strong>- Shiny : et ensuite ? -</strong></span></p>
<p>Une fois qu’on est satisfait de son appli &laquo;&nbsp;shiny&nbsp;&raquo;, il va falloir procéder à son <strong>déploiement</strong>, c’est-à-dire la mettre sur le net (pour l’instant tout avait été fait en local).</p>
<p>Pour cela plusieurs options : soit passer par la plateforme <a title="shinyapps" href="http://www.shinyapps.io/" target="_blank">&laquo;&nbsp;shinyapps.io&nbsp;&raquo;</a> mise à disposition par RStudio (très pratique si on veut faire des tests ou partager rapidement son appli), soit passer par l’installation d’un serveur shiny (tout à fait faisable sur une instance AWS par exemple).</p>
<p>Pour plus de détails sur ces étapes, voir les liens suivants : <a title="shinyapps" href="http://www.shinyapps.io/" target="_blank">http://www.shinyapps.io/</a> et <a title="shiny-server" href="https://www.rstudio.com/products/shiny/shiny-server/" target="_blank">https://www.rstudio.com/products/shiny/shiny-server/</a>.</p>
<p>> Exemple avec le lien vers l&rsquo;appli de démo présentée plus haut, hébergée sur &laquo;&nbsp;shinyapps.io&nbsp;&raquo; : <a href="https://superstatisticienne.shinyapps.io/demo1/" title="demo1" target="_blank">https://superstatisticienne.shinyapps.io/demo1/</a><br />
&nbsp;</p>
<p><span style="color: #923887;"><strong>- Shiny : pour aller plus loin -</strong></span></p>
<p>Il existe également un autre package plus ou moins &laquo;&nbsp;dérivé&nbsp;&raquo; de celui-ci : le package <a title="shinydashboard" href="https://cran.r-project.org/web/packages/shinydashboard/index.html" target="_blank">&laquo;&nbsp;shinydashboard&nbsp;&raquo;</a>. Il présente des fonctionnalités similaires mais un &laquo;&nbsp;design de base&nbsp;&raquo; de l&rsquo;appli un peu différent, plus proche des &laquo;&nbsp;tableaux de bords&nbsp;&raquo; (d&rsquo;où son nom ^^) très à la mode en ce moment.</p>
<p>Et pour les graphiques, de nombreux packages permettent la mise en place de graphiques dynamiques basés sur du Javascript, tels que par exemple : &laquo;&nbsp;<em>ggvis</em>&nbsp;&raquo; , &laquo;&nbsp;<em>rCharts</em>&nbsp;&raquo; , &#8230;</p>
<p>A la recherche d’aide pour la création de votre appli &laquo;&nbsp;shiny&nbsp;&raquo; avec R ?<br />
Il y a plusieurs possibilités telles que par exemple :</p>
<ul>
<li>Pour commencer, le tutoriel &laquo;&nbsp;shiny&nbsp;&raquo; : <a title="shiny_tuto" href="http://shiny.rstudio.com/tutorial/" target="_blank">http://shiny.rstudio.com/tutorial/</a></li>
<li>Le support technique de RStudio (si besoin) : <a title="rstudio_support" href="https://support.rstudio.com/hc/en-us" target="_blank">https://support.rstudio.com/hc/en-us</a></li>
<li>Le Google Group &laquo;&nbsp;shiny-discuss&nbsp;&raquo; (pour des questions générales sur la création d’appli shiny) : <a title="shiny-discuss" href="https://groups.google.com/forum/#!forum/shiny-discuss" target="_blank">https://groups.google.com/forum/#!forum/shiny-discuss</a></li>
<li>Le Google Group &laquo;&nbsp;shinyapps-users&nbsp;&raquo; (pour des questions techniques plutôt liées au déploiement) : <a title="shinyapps-users" href="https://groups.google.com/forum/#!forum/shinyapps-users" target="_blank">https://groups.google.com/forum/#!forum/shinyapps-users</a></li>
<li>Et toujours, le forum &laquo;&nbsp;Développez.com&nbsp;&raquo; dédié à R : <a title="dvp_r" href="http://www.developpez.net/forums/f1179/autres-langages/autres-langages/r/" target="_blank">http://www.developpez.net/forums/f1179/autres-langages/autres-langages/r/</a></li>
</ul>
<p>[<a href="http://www.r-bloggers.com/shiny-0-13-0/" title="shiny-0-13-0" target="_blank">NEWS du 12/01/2016</a>] De nouvelles fonctionnalités très intéressantes ajoutées dans la dernière version de &laquo;&nbsp;shiny&nbsp;&raquo; (version 0.13.0), telles que par exemple des templates HTML, la possibilité de créer des événements Javascript et aussi des &laquo;&nbsp;gadgets shiny&nbsp;&raquo; (voir <a href="http://shiny.rstudio.com/articles/gadgets.html" title="shiny-gadgets" target="_blank">ici</a>) ^^</p>
<p>&nbsp;</p>
<p>Sinon, de mon côté, j’ai déjà réalisé quelques applis shiny de tests et je travaille encore sur d’autres actuellement, je vous en reparle un de ces jours ;-)</p>
<p><span style="color: #923887;"><strong>&#8211;&gt; Et vous, avez-vous déjà testé le package R &laquo;&nbsp;shiny&nbsp;&raquo; ? Avez-vous des exemples d’appli à nous faire partager ?</strong></span></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://superstatisticienne.fr/r-sur-le-web-le-package-shiny/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Wordcloud avec R</title>
		<link>http://superstatisticienne.fr/wordcloud-avec-r/</link>
		<comments>http://superstatisticienne.fr/wordcloud-avec-r/#comments</comments>
		<pubDate>Sun, 29 Nov 2015 15:30:43 +0000</pubDate>
		<dc:creator><![CDATA[superstatisticienne]]></dc:creator>
				<category><![CDATA[DataViz]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[DataVisualisation]]></category>
		<category><![CDATA[Text-mining]]></category>
		<category><![CDATA[Wordcloud]]></category>

		<guid isPermaLink="false">http://superstatisticienne.fr/?p=506</guid>
		<description><![CDATA[Un wordcloud (ou nuage de mots-clés / nuage de tags) est une répresentation visuelle de mots dont la taille est proportionelle à la fréquence de ce mot dans un texte donné. Exemple : Avec R, il est assez facile de réaliser des wordcloud plutôt chouettes (je vous l&#8217;ai déjà dit, R c&#8217;est bien ;) ), [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Un <span style="color: #923887;"><strong>wordcloud</strong></span> (ou nuage de mots-clés / nuage de tags) est une répresentation visuelle de mots dont la taille est proportionelle à la fréquence de ce mot dans un texte donné.</p>
<p><u>Exemple</u> :</p>
<p><a href="http://superstatisticienne.fr/wp-content/uploads/2015/11/exWordcloud.png"><img src="http://superstatisticienne.fr/wp-content/uploads/2015/11/exWordcloud.png" alt="exemple_wordcloud" width="600" height="550" class="alignnone size-full wp-image-509" /></a></p>
<p>Avec R, il est assez facile de réaliser des wordcloud plutôt chouettes (je vous l&rsquo;ai déjà dit, <a href="http://superstatisticienne.fr/r-cest-bien/" title="r-cest-bien" target="_blank">R c&rsquo;est bien</a> ;) ), je vais donc vous montrer comment, avec un petit exemple en relation avec l&rsquo;actualité.</p>
<p><span id="more-506"></span></p>
<p>&nbsp;</p>
<p><span style="color: #923887;"><strong>- Charger les données -</strong></span></p>
<p></p><pre class="crayon-plain-tag">Texte <- readLines("HommageNationalHollande-27112015.txt", encoding = "utf-8")</pre><p> </p>
<p>> Il s&rsquo;agit du texte complet de l&rsquo;hommage aux victimes des attentats du 13 novembre 2015, fait par le président François Hollande le 27 novembre (disponible sur internet).</p>
<p>&nbsp;<br />
<span style="color: #923887;"><strong>- Charger les packages -</strong></span></p>
<p></p><pre class="crayon-plain-tag">library(tm)  # ce package propose un ensemble de fonctions facilitant le traitement de donnees textuelles
library(wordcloud)  # ce package permet la creation de wordcloud</pre><p> </p>
<p>&nbsp;<br />
<span style="color: #923887;"><strong>- Travail sur les données -</strong></span></p>
<p></p><pre class="crayon-plain-tag">text_corpus <- Corpus(VectorSource(Texte))
text_corpus <- tm_map(text_corpus, content_transformer(tolower))
text_corpus <- tm_map(text_corpus, removePunctuation)
text_corpus <- tm_map(text_corpus, function(x)removeWords(x,stopwords(kind = "fr")))</pre><p> </p>
<p>> <u>Explications</u> :</p>
<p>&#8211; La 1ère instruction permet de transformer le texte &laquo;&nbsp;brut&nbsp;&raquo; en un élément de classe &laquo;&nbsp;corpus&nbsp;&raquo; (classe du package &laquo;&nbsp;tm&nbsp;&raquo;), sur lequel un ensemble de fonctions de traitement de texte pourront être directement appliquées.<br />
&#8211; La 2nde instruction permet de transformer toutes les lettres majuscules en lettres minuscules (afin par exemple que &laquo;&nbsp;Hommes&nbsp;&raquo; et &laquo;&nbsp;hommes&nbsp;&raquo; soient traités pareil).<br />
&#8211; La 3ème instruction permet de supprimer automatiquement tous les caractères de ponctuations.<br />
&#8211; La dernière instruction permet de supprimer automatiquement une grande partie des mots &laquo;&nbsp;de base&nbsp;&raquo; d&rsquo;une langue donnée (ici le français avec l&rsquo;instruction : <em>kind = &laquo;&nbsp;fr&nbsp;&raquo;</em>, par défaut il s&rsquo;agit de l&rsquo;anglais), tels que par exemple : le, la, les, de, des, à, où, &#8230;</p>
<p>&nbsp;<br />
<span style="color: #923887;"><strong>- Wordcloud -</strong></span></p>
<p></p><pre class="crayon-plain-tag">set.seed(123456)  # permet de "fixer un graine" pour l'alea, afin de pouvoir regenerer plusieurs fois le meme wordcloud

wordcloud(text_corpus, max.words = 200, colors = brewer.pal(8, "Dark2"),  rot.per=0)</pre><p> </p>
<p><a href="http://superstatisticienne.fr/wp-content/uploads/2015/11/Wordcloud1.png"><img src="http://superstatisticienne.fr/wp-content/uploads/2015/11/Wordcloud1.png" alt="wordcloud1" width="642" height="382" class="alignnone size-full wp-image-518" /></a></p>
<p><u>Remarque</u> : On voit ici qu&rsquo;il reste encore certains mots qui ne sont pas particulièrement utiles pour ce wordcloud visant à mettre en valeurs les &laquo;&nbsp;grands thèmes&nbsp;&raquo; de ce discours d&rsquo;hommage. On va donc tenter d&rsquo;en supprimer quelques-uns pour voir si on obtient quelque chose de mieux.</p>
<p>&nbsp;<br />
<span style="color: #923887;"><strong>- Wordcloud : version 2 -</strong></span></p>
<p></p><pre class="crayon-plain-tag">text_corpus2 <- tm_map(text_corpus, function(x)removeWords(x,c("quils", "cestadire", "tout", "dun", "cest", "etaient", "etre", "parce", "ete", "sais")))  # n'importe quelle liste de mots peut egalement etre passee en argument de la fonction "removeWords"

set.seed(123456)
wordcloud(text_corpus2, max.words = 200, colors = brewer.pal(8, "Dark2"),  rot.per=0)</pre><p> </p>
<p><a href="http://superstatisticienne.fr/wp-content/uploads/2015/11/Wordcloud2.png"><img src="http://superstatisticienne.fr/wp-content/uploads/2015/11/Wordcloud2.png" alt="wordcloud2" width="642" height="382" class="alignnone size-full wp-image-519" /></a></p>
<p>> Ce wordcloud pourrait encore être retravaillé mais il est assez intéressant, notamment si on se concentre sur les mots apparaissant en bleu : <em>hommes</em>, <em>femmes</em>, <em>tous</em>, <em>comme</em>, <em>meme</em>, <em>nation</em>, retranscrivant bien le message général d&rsquo;unité et d&rsquo;égalité de ce discours.</p>
<p>&nbsp;<br />
<span style="color: #923887;"><strong>- Enregistrer son wordcloud dans un fichier externe -</strong></span></p>
<p></p><pre class="crayon-plain-tag">png("monwordcloud.png")
wordcloud(text_corpus2, max.words = 200, colors = brewer.pal(8, "Dark2"),  rot.per=0)
dev.off()</pre><p> </p>
<p>> Fonctionne aussi en remplaçant &laquo;&nbsp;png&nbsp;&raquo; par &laquo;&nbsp;jpeg&nbsp;&raquo;, &laquo;&nbsp;pdf&nbsp;&raquo;, &#8230;</p>
<p>&nbsp;<br />
<span style="color: #923887;"><strong>- Pour aller plus loin : personnalisation du wordcloud -</strong></span></p>
<p>La fonction &laquo;&nbsp;wordcloud&nbsp;&raquo; du package éponyme possède un certain nombre de paramètres permettant de personnaliser ses wordcloud :</p>
<ul>
<li>Tailles maxi et mini des mots affichés :<br />
<pre class="crayon-plain-tag">scale = c(4,0.5)</pre>
</li>
<li>Fréquence à partir de laquelle un mot sera retenu :<br />
<pre class="crayon-plain-tag">min.freq = 3</pre>
</li>
<li>Nombre maximum de mots à afficher :<br />
<pre class="crayon-plain-tag">max.words = Inf</pre>
</li>
<li>Affichage des mots dans un ordre aléatoire :<br />
<pre class="crayon-plain-tag">random.order = TRUE</pre>
</li>
<li>Choix de couleur de mot aléatoire :<br />
<pre class="crayon-plain-tag">random.color = FALSE</pre>
</li>
<li>Proportion de mots tournés à 90 degrés :<br />
<pre class="crayon-plain-tag">rot.per = 0.1</pre>
</li>
<li>Couleur des mots (du moins au plus fréquent) :<br />
<pre class="crayon-plain-tag">colors = "black"</pre>
</li>
<li>Autres paramètres pour le style des mots : type de police, taille des caractères, &#8230;</li>
</ul>
<p><u>Exemple</u> :</p>
<p></p><pre class="crayon-plain-tag">set.seed(123456)
wordcloud(text_corpus, max.words = 200, scale = c(5,0.2), colors = brewer.pal(8, "Paired"), vfont = c("gothic english","plain"), rot.per = 0.3)</pre><p> </p>
<p><a href="http://superstatisticienne.fr/wp-content/uploads/2015/11/Wordcloud3.png"><img src="http://superstatisticienne.fr/wp-content/uploads/2015/11/Wordcloud3.png" alt="wordcloud3" width="605" height="362" class="alignnone size-full wp-image-532" /></a></p>
<p><u>Remarque</u> : Pour le choix des couleurs, il est possible d&rsquo;obtenir facilement des dégradés (ou palettes) &laquo;&nbsp;tout prêts&nbsp;&raquo; grâce au package &laquo;&nbsp;<strong>RColorBrewer</strong>&nbsp;&raquo; (installé avec le package &laquo;&nbsp;wordcloud&nbsp;&raquo;) et à la fonction &laquo;&nbsp;<em>brewer.pal</em>&nbsp;&raquo; utilisée ici dans les exemples.<br />
Ci-dessous les différentes palettes de couleurs disponibles :<br />
<a href="http://superstatisticienne.fr/wp-content/uploads/2015/11/RColorBrewer.png"><img src="http://superstatisticienne.fr/wp-content/uploads/2015/11/RColorBrewer.png" alt="RColorBrewer" width="1366" height="651" class="alignnone size-full wp-image-534" /></a><br />
<span style="color: #923887;"><strong><em>Et vous, avez-vous des exemples de wordcloud particulièrement réussis à partager ?</em></strong></span></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://superstatisticienne.fr/wordcloud-avec-r/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
