Ich lerne glänzende Anwendungen und habe einige grundlegende Fragen über das Layout, insbesondere Stil und Schriftart zu optimieren. Ich wäre dankbar für Hinweise oder explizite Antworten, danke!R glänzend mainPanel Display-Stil und Schriftart
Betrachten Sie eine grundlegende Eingabe-Ausgabe-App: Der Benutzer gibt Daten in das SidebarPanel ein und gibt ein Ergebnis im mainPanel reaktiv aus.
Wie konnte ich die Ausgabetabelle in der Mainpanel-Format mehr wie die sidebarPanel aussehen? sagen Sie ein Rechteck von etwa der gleichen Größe mit einem farbigen Hintergrund (vielleicht eine andere Farbe) und die Daten in einer Box ähnlicher Größe erscheinen.
Wie kann ich die Schriftart, Schriftgröße und Schriftgröße in den Panels steuern?
Wie Sie aus dem Code sehen (vgl runGist Details ein paar Zeilen weiter unten), ich habe die Größe der numericInput-Box in der sidebarPanel im Customizing erfolgreich gewesen, aber ich habe nicht in der Lage gewesen, das zu kontrollieren Schriftstile (ist mein Tag $ style code falsch platziert?).
Noch wichtiger für ästhetische Zwecke konnte ich nicht herausfinden, wie das MainPanel formatiert wird, damit es wie das SidebarPanel aussehen. Meistens modifizierte ich Beispiele von der glänzenden Website, aber offensichtlich verpasste ich einige wichtige Dinge.
Edit 1:
library("shiny")
runGist("gist.github.com/annoporci/7313856")
Edit 2: Nach Scott Chamberlain Vorschlag habe ich die server.R und ui.R Dateien auf GitHub kopiert Scott mit vorgeschlagen Chrome/Firefox "Inspect Element" (Rechtsklick auf body of html Seite, andere Browser können die gleiche Funktion haben). Unten ist ein Screenshot:
Inspect Element
Scotts Vorschlag der "Inspect Element" Werkzeug sehr fruchtbar erwiesen zu verwenden.
Hier ist, was ich gelernt (wenn ich mich nicht irre):
container-fluid
undrow-fluid
Kontrolle der Gesamtbehälter.span12
steuert dieheaderPanel
span4
steuert diesidebarPanel
span8
steuert diemainPanel
shiny-bound-input
für die Eingangsseite istshiny-bound-output
undshiny-html-output
(beide erscheinen als gültig) sind für die Ausgangsseite
Basierend auf diesen Ergebnissen, I p schnürte die HTML-Stile im mainPanel, weil es wie ein offensichtlicher Ort schien, aber es scheint auch innerhalb des SidebarPanel zu funktionieren.Es wäre intuitiver (für mich), es sofort in die pageWithSidebar() einzufügen, aber das hat nicht funktioniert.
ist die editierten glänzend:
runGist("https://gist.github.com/annoporci/7346772")
Hier werden die HTML-Stile sind:
HTML('<style type="text/css">
.row-fluid { width: 50%; }
.well { background-color: #99CCFF; }
.shiny-html-output { font-size: 20px; line-height: 21px; }
</style>')
I 50% für die gesamte Behälterbreite gewählt, es klein zu halten.
Ich habe die selbe Farbe für das sidebarPanel und mainPanel ausgewählt.
Ich habe eine größere Schriftart für die Ausgabe ausgewählt, die hier nicht schön ist, aber in meiner Real-Life-App sinnvoll ist. Außerdem experimentiere ich mehr als alles andere.
Ich wählte eine Zeilenhöhe von 21px anstelle der Standard 20px, nur um die Höhe der Ausgabebox so zu verändern, dass sie der Eingabebox entspricht. Wieder ein Experiment.
Ich habe auch das Anzeigeformat in server.R, nämlich
output$myResults <- renderText({
r <- myFunction(input$myinput)
c("My Output:","<br><br>",r)
})
Das ist, weil ich das Ergebnis angezeigt unten die Worte „My Output“ haben wollte. Durch Versuch und Irrtum entdeckte ich, dass ich Strings in einem Vektor c()
mit <br><br>
als Trennzeichen drücken konnte, um einen Zeilenumbruch zu erzwingen. Ich wäre schockiert, wenn dies der empfohlene Ansatz wäre, also bitte, wenn Sie die richtige Vorgehensweise kennen.
Follow-up-Fragen von geringerer Bedeutung:
ich werden sehen, ob ich einen Weg finden kann mein Ausgangsergebnis zu haben scheinen in einem weißfarbenen Box ähnlich die Eingangsnummer im sidebarPanel. Irgendwelche Vorschläge willkommen.
Könnte es möglich sein, alle HTML-Änderungen in der gleichen, separaten Datei zu sammeln, die zusammen mit server.R und ui.R gespeichert werden?
Ich wähle Scotts Antwort, weil er geholfen hat, genug zu entdecken, um meine Ausgabe genau so zu bekommen, wie ich es wollte. Aber bitte editieren Sie, wenn Sie Fehler oder Ungenauigkeiten in meiner obigen Beschreibung sehen.
Sie könnten diese beiden Dateien in einem Kern setzen, dann könnten wir es einfach testen, wie so https: //gist.github. com/SChamberlain/7309662, Dann können wir Bibliothek (glänzend) tun; runGist ("https://gist.github.com/SChamberlain/7309662") – sckott
Das hat sehr gut funktioniert, danke Scott! __library ("shiny") runGist ("https://gist.github.com/annoporci/7313856") __ – PatrickT