在 Shiny App 中更改文本的颜色和字体

Posted

技术标签:

【中文标题】在 Shiny App 中更改文本的颜色和字体【英文标题】:Change the color and font of text in Shiny App 【发布时间】:2014-07-25 19:05:19 【问题描述】:

我在server.R 中使用以下代码在主面板中显示文本。这正是它应该工作的方式。

output$text1 <- renderText(
  if(input$ag == 0) return(NULL)
  return('First 20 rows for requested AG')
)

有什么办法可以改变文字的字体和颜色吗?

【问题讨论】:

AFAIK renderText 只是像 cat 一样输出它的文本。您可能需要使用 CSS 来更改文本样式。请参阅此处了解(我认为)包含您的问题的 Google 网上论坛讨论。 刚刚意识到我没有提供网址:/here it is(乍一看,它可能不在renderText 的上下文中)。 【参考方案1】:

您可以按照@jbaums 的指示使用css

library(shiny)
runApp(list(
  ui = bootstrapPage(
    numericInput('n', 'Number of obs', 100),
    textOutput('text1'),
    tags$head(tags$style("#text1color: red;
                                 font-size: 20px;
                                 font-style: italic;
                                 "
                         )
              )
  ),
  server = function(input, output) 
    output$text1 <- renderText( paste("hello input is",input$n) )
  
))

通常您会将其包含在styles.css 文件中,但此处显示为内联以自包含。 #text1 指的是带有id=text1 的DOM 元素,大括号的内容就是相关的样式。

【讨论】:

对于任何确实想要分离 R 和 CSS 的人,此博客包含如何使用单独的 CSS 文件执行此操作的好示例:shiny.rstudio.com/articles/css.html【参考方案2】:

ui.r:

span(textOutput("message"), style="color:red")

server.r:

output$message <- renderText("This is some red text")

【讨论】:

【参考方案3】:

如果只想更改返回字符串的某一部分,可以使用htmlOutput而不是textOutput

在服务器端返回

output$text1 <- renderText( paste("hello input is","<font color=\"#FF0000\"><b>", input$n, "</b></font>") )

这样,Shiny UI 将执行 HTML。

【讨论】:

【参考方案4】:

@MikeP 的解决方案也适用于p()、fx p("some text", style = "color:red),因此如果您想动态显示它,也可以将其包装在来自服务器的renderText() 中。

【讨论】:

太糟糕了,这在?p 中没有得到很好的记录。

以上是关于在 Shiny App 中更改文本的颜色和字体的主要内容,如果未能解决你的问题,请参考以下文章

更改 UIBarButtonItem 文本字体大小和颜色

如何使用 react 和 javascript 每秒更改部分文本的字体颜色?

如何在grapesjs的默认富文本编辑器上添加颜色选择器来更改字体颜色?

使用 jquery 更改占位符文本字体和颜色

vscodemarkdown模式下更改字体颜色

React Native TouchableHighlight 字体颜色文本更改