Maison >Périphériques technologiques >Industrie informatique >Shiny et R: comment ajouter des thèmes et personnaliser les messages d'erreur
Le but de Shiny est de fournir une interface intuitive et conviviale à R. R est un environnement statistique très populaire pour effectuer une analyse lourde des données et la construction de modèles statistiques, et est donc très populaire parmi les scientifiques des données. Cependant, pour un utilisateur avec un fond non codant, l'utilisation de R pour effectuer une telle analyse peut devenir assez intensive. C'est là que les applications Web brillantes entrent en jeu. Essentiellement, Shiny permet une interface utilisateur graphique plus intuitive qui est toujours capable de effectuer une analyse sophistiquée de données - sans avoir besoin d'un codage étendu de la partie de l'utilisateur final.
Dans mon article sur l'utilisation de Shiny avec R et HTML, j'ai illustré comment une application Web interactive peut être créée pour effectuer une analyse sans avoir besoin d'une manipulation directe du code. Dans cet article, j'utiliserai un modèle légèrement différent pour illustrer comment l'environnement brillant peut être personnalisé pour fonctionner avec l'utilisateur final d'une manière plus intuitive. Essentiellement, l'objectif de cet article est d'illustrer comment un utilisateur peut:
Le programme lui-même développé pour ce tutoriel est assez basique: une entrée de curseur permet à l'utilisateur de manipuler une variable au sein du programme par réactivité, ce qui provoque des changements instantanés dans la sortie de tracé de ligne qui est développée au moyen de la réactivité .
Cette fonction inhérente donne à Shiny un avantage significatif sur l'utilisation du code R comme autonome. Traditionnellement, afin d'analyser le changement d'une variable particulière, le code doit être manipulé directement (ou les données à partir desquelles le code lise), et cela peut finalement devenir très inefficace. Cependant, Shiny accélère considérablement ce processus en permettant à l'utilisateur de manipuler les variables de manière très intuitive, et les modifications sont reflétées instantanément.
Cependant, le but de Shiny est de rendre un script R aussi interactif que possible. À cet égard, l'utilisateur voudra pouvoir ajouter des fonctionnalités au programme qui va bien au-delà de la réactivité. Deux de ces aspects dont je discuterai dans ce tutoriel sont:
Dans l'interface utilisateur de notre programme d'origine, nous n'avons pas spécifié de thème, et nous nous sommes donc retrouvés avec une vue assez basique (bootstrap par défaut) de notre sortie:
Lorsque nous avons défini la fonction shinyui (fluidpage (…)), nous n'avons pas spécifié de thème. Dans ce cas, nous allons spécifier plusieurs des thèmes disponibles à partir du package de thèmes brillants.
Après avoir spécifié Shinyui (FluidPage (…)), nous spécifions également notre thème comme suit:
shinyUI(fluidPage(theme = shinytheme("cyborg")
À partir de ce qui précède, nous voyons que la sélection du thème Cyborg donne à notre application Web un fond sombre. Comme autre exemple, sélectionnons maintenant le thème SpaceLab et voyons ce que nous proposons:
Ces thèmes démontrent plus de niveaux de personnalisation en fonction des autres attributs du code brillant, tels que des boutons supplémentaires, des onglets, etc. N'hésitez pas à expérimenter les autres thèmes du compte Rstudio Github et voyez ce que vous proposez!
La fonction Validate est un outil indispensable lorsqu'il s'agit de travailler avec du code brillant. Essentiellement, Valider permet de déclencher un message d'alerte lorsqu'une certaine partie du programme brillant est manipulée.
Dans ce cas particulier, je discute de la façon dont nous pouvons utiliser les fonctions validées et avons besoin pour déclencher un message d'alerte lorsque nous manipulons le curseur dans notre programme.
Le programme lui-même, comme la dernière fois, est assez basique en termes de fonction. Essentiellement, notre programme brillant produit une valeur sur l'axe X entre 1 et 100 selon celui sélectionné par le curseur.
Nous utilisons ensuite la valeur Y correspondante pour produire un message d'erreur chaque fois que la pente calculée tombe en dessous de 5 - c'est-à-dire à une valeur de 29 ou plus. Notez que le programme ne calcule pas directement la pente, mais que l'utilisateur dans cette instance utilise la valeur de 29 comme point de coupure pour cette pente en fonction du calcul manuel.
Dans l'interface utilisateur, nous spécifions le déclencheur de validation sous notre Shinyui comme suit:
shinyUI(fluidPage(theme = shinytheme("cyborg")
Sous le serveur, nous spécifions les commandes Valider et avons besoin de la fonction d'entrée-sortie:
shinyUI(fluidPage(theme = shinytheme("spacelab"), tags$head( tags$style(HTML(" .shiny-output-error-validation { color: red; } ")) ),
L'interface utilisateur et le code du serveur dans son ensemble s'affiche ci-dessous:
function(input, output) { output$algebra < - renderPlot({ validate( need(input$lambda <= 28, "A value set at 29 or above produces a slope below 5. Please set a value below 29.") )
#Load libraries library(shiny) library(shinythemes) #Define Shiny theme and specify shiny-output-error-validation shinyUI(fluidPage(theme = shinytheme("spacelab"), tags$head( tags$style(HTML(" .shiny-output-error-validation { color: red; } ")) ), sidebarLayout( sidebarPanel( sliderInput("lambda", "Number of data points:", min = 1, max = 100, value = 1) ), mainPanel( h3("Slope of a line", style = "font-family: 'Jura'; color: blue; font-size: 32px;"), HTML("<p>Excluding slope below 5 where y = 2x + 3"), plotOutput("algebra") ) ) ))
En tant que récapitulatif rapide, nous exécutons le programme par:
Nous voyons que notre graphique de ligne se développe en points de données sur l'axe des x en fonction de la façon dont nous manipulons le curseur. Cependant, vous remarquerez qu'une fois que le curseur est déplacé vers une valeur de 29 ou plus, le message d'erreur s'affiche, «Une valeur définie à 29 ou plus produit une pente en dessous de 5. Veuillez définir une valeur inférieure à 29».
L'affichage de ces messages d'erreur peut être très utile lorsqu'un développeur souhaite diriger un utilisateur externe sur l'utilisation d'un tel programme. Par exemple, s'il était le cas qu'aucun message d'erreur ne devait être affiché, l'utilisateur a une file d'attente gratuite pour faire des entrées dans le programme qui pourrait ne pas nécessairement adapter. De cette façon, le développeur peut offrir de nouvelles garanties contre les entrées par inadvertance par un utilisateur externe, tandis que cela uniquement en code R laisse les entrées ouvertes à la manipulation.
Par exemple, le site Web brillant lui-même donne un exemple de la façon dont la fonction valide peut également être appliquée à une liste. L'interface utilisateur et le serveur produisent un histogramme comme sortie, mais le programme produit un message d'erreur lorsqu'un ensemble de données particulier est sélectionné dans la liste. De cette façon, la commande Validate fait exactement cela - valide une entrée particulière, tandis que la fonction de besoin est ce qui nous permet de personnaliser la même chose en personnalisant notre message d'erreur - c'est-à-dire l'entrée $ lambda
De plus, bien que nous ayons spécifié un seul message d'erreur, nous pourrions potentiellement spécifier plusieurs. Par exemple, supposons maintenant que nous voulons afficher un message d'erreur supplémentaire lorsque le curseur va au-dessus d'une valeur de 35:
shinyUI(fluidPage(theme = shinytheme("cyborg")
en utilisant une fonction de besoin supplémentaire dans le code du serveur, manipulant le curseur à une valeur supérieure à 35 signifie que nous affichons maintenant le message d'erreur supplémentaire: «Votre curseur est maintenant à une valeur supérieure à 35!»
Dans cet article, nous avons vu comment manipuler la conception de notre application brillante à l'aide de thèmes brillants, et appris à appliquer des filtres aux paramètres de notre code et afficher les messages d'erreur lorsque certaines conditions ont été violées.
En fin de compte, l'objectif de Shiny est de permettre une expérience bien plus grande et intuitive dans la réalisation d'analyses que ce qui serait possible en utilisant R seul, et minimise également le risque d'erreurs d'entrée utilisateur en spécifiant correctement les paramètres d'un programme particulier .
Ajouter un thème à votre application brillante dans R est un processus simple. Tout d'abord, vous devez installer et charger le package ShinyThemes. Vous pouvez le faire en exécutant les commandes suivantes dans votre console R: install.packages ("ShinyThemes") et bibliothèque (ShinyThemes). Une fois le package chargé, vous pouvez ajouter un thème à votre application brillante en incluant l'argument du thème dans votre fonction FluidPage ou Navbarpage. Par exemple, FluidPage (thème = ShinyTheme ("Cerulean")). Cela appliquera le thème «Cerulean» à votre application brillante.
Oui, vous pouvez personnaliser les messages d'erreur dans votre application brillante. Shiny fournit une fonction appelée valider que vous pouvez utiliser pour vérifier certaines conditions et afficher les messages d'erreur personnalisés lorsque ces conditions ne sont pas remplies. Par exemple, si vous avez un champ de saisie où l'utilisateur est censé entrer un nombre et que vous souhaitez afficher un message d'erreur personnalisé lorsque l'entrée n'est pas un nombre, vous pouvez faire quelque chose comme ceci: valider (besoin (est.numérique ( entrée $ mynumber), "Veuillez saisir un nombre")). Cela affichera le message «Veuillez saisir un nombre» lorsque l'entrée n'est pas une valeur numérique.
Changer le schéma de couleurs de votre votre L'application brillante peut être effectuée en utilisant CSS. Vous pouvez inclure un fichier CSS dans votre application en utilisant la fonction inclusecss dans votre fonction d'interface utilisateur. Par exemple, inclusecss ("Styles.css"). Dans votre fichier CSS, vous pouvez définir les couleurs pour différents éléments de votre application. Par exemple, pour modifier la couleur d'arrière-plan de votre application en bleu, vous pouvez inclure ce qui suit dans votre fichier CSS: Body {Background-Color: Blue;}.
Oui, vous pouvez utiliser des polices personnalisées dans votre application brillante. Cela peut être fait en incluant un fichier CSS dans votre application et en utilisant la règle @ FONT-FACE pour définir votre police personnalisée. Par exemple, si vous avez un fichier de police personnalisé appelé «myfont.woff», vous pouvez inclure ce qui suit dans votre fichier CSS: @ font-face {Font-Family: "MyFont"; src: url ("myfont.woff");}. Ensuite, vous pouvez utiliser la police dans votre CSS en définissant la propriété Font-Family sur «MyFont».
Ajout d'un logo personnalisé À votre application brillante peut être effectuée en utilisant la fonction NavBarpage et en incluant votre logo comme argument. Par exemple, navbarpage (title = "mon application", windowtitle = "mon application", tagList (tags $ img (src = "mylogo.png", height = "50px", width = "50px"))). Cela affichera votre logo dans la barre navale de votre application.
Oui, vous pouvez utiliser des thèmes bootstrap dans votre application brillante. Le package ShinyThemes fournit plusieurs thèmes bootstrap pré-préparés que vous pouvez utiliser. Vous pouvez également utiliser des thèmes de bootstrap personnalisés en incluant le fichier CSS du thème de votre application.
Changer la mise en page de votre application brillante peut être fait en utilisant les différentes fonctions de mise en page fournies par Shiny. Par exemple, vous pouvez utiliser les fonctions Fluidrow et Colonne pour créer une disposition de grille, ou les fonctions SidebarLayout, Sidebarpanel et MainPanel pour créer une disposition avec une barre latérale.
Oui, vous pouvez utiliser JavaScript dans votre application brillante. Cela peut être fait en incluant un fichier JavaScript dans votre application à l'aide de la fonction includecript, ou en utilisant la fonction de script tags $ pour inclure le code JavaScript en ligne.
Rendre votre application brillante réactive peut être effectuée en utilisant la fonction FluidPage pour votre interface utilisateur. Cette fonction crée une disposition qui s'adapte automatiquement à la taille de l'écran de l'utilisateur. Vous pouvez également utiliser l'argument Responsive = True dans votre fonction NavBarpage pour rendre le Navbar réactif.
Oui, vous pouvez utiliser des widgets brillants dans votre application . Shiny fournit une variété de widgets, tels que des curseurs, des cases à cocher et des entrées de texte, que vous pouvez utiliser pour créer des éléments interactifs dans votre application. Vous pouvez ajouter un widget à votre application en incluant la fonction correspondante dans votre fonction d'interface utilisateur. Par exemple, SliderInput ("Myslider", "Mon curseur", min = 0, max = 100, valeur = 50) ajoutera un curseur à votre application.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!