小编ixo*_*did的帖子

鼠标悬停填充区域时突出显示边框 - Leaflet-R

在@TimSalabim的指导下,我将边界和填充的邻域多边形分开,以便我可以使用zIndex对它们进行适当的排序.

https://lawsblog.netlify.com/post/leaflet-map/

如果我将highlightOptions()函数放在addPolygons(neighbourhood fill)函数中,我不知道如何在鼠标悬停时增加多边形的边框.

如果我将highlightOptions()函数放在addPolylines(neighbourhood border)函数中,我可以小心地将鼠标悬停在边框上,并且宽度会增加.这是我想要的行为,当我鼠标移动到邻近区域的任何部分时.

现在我已经分离了多边形的填充和边框,当我将鼠标悬停在填充区域上时,如何增加边框宽度?

# Add hood borders
  addPolylines(data = borders, 
               color = "white",
               opacity = 1, 
               weight = 2,
               options = pathOptions(pane = "hood_borders")) %>% 

 # Add hood fill
  addPolygons(data = hood_shp,
              fillColor = ~pal(be_per_cap),
              fillOpacity = 1.0,
              color = NA,
              options = pathOptions(pane = "hoods",

              # Highlight neighbourhoods upon mouseover - NOT CORRECT
              highlight = highlightOptions(
                          stroke = 4),

              # Add label info when mouseover
              label = …
Run Code Online (Sandbox Code Playgroud)

r leaflet

13
推荐指数
1
解决办法
834
查看次数

无法抑制 blogdown/knitr 中的消息

这是用 blogdown 创建的博客文章

R 代码块以

```{r, echo = FALSE, message = FALSE, warning = FALSE}
Run Code Online (Sandbox Code Playgroud)

但是,每次我使用读取 shapefile 时都会出现三条消息 sf::st_read

如何防止这些消息出现在帖子中?

其答案是否是在页面大约knitr选择?

r knitr r-leaflet

6
推荐指数
1
解决办法
908
查看次数

脊线密度图顶部的线被截断

为什么情节的顶部被切断了,我该如何解决这个问题?我增加了利润率,但没有任何区别。

在此处输入图片说明

查看 1854 年的曲线,位于左侧驼峰的最顶端。看起来驼峰顶部的线条更细。对我来说,将大小更改为 0.8 无济于事。

这是生成此示例所需的代码:

library(tidyverse)
library(ggridges)

t2 <-   structure(list(Date = c("1853-01", "1853-02", "1853-03", "1853-04", 
                                "1853-05", "1853-06", "1853-07", "1853-08", "1853-09", "1853-10", 
                                "1853-11", "1853-12", "1854-01", "1854-02", "1854-03", "1854-04", 
                                "1854-05", "1854-06", "1854-07", "1854-08", "1854-09", "1854-10", 
                                "1854-11", "1854-12"), t = c(-5.6, -5.3, -1.5, 4.9, 9.8, 17.9, 
                                                             18.5, 19.9, 14.8, 6.2, 3.1, -4.3, -5.9, -7, -1.3, 4.1, 10, 16.8, 
                                                             22, 20, 16.1, 10.1, 1.8, -5.6), year = c("1853", "1853", "1853", 
                                                                                                      "1853", "1853", "1853", "1853", "1853", "1853", "1853", "1853", 
                                                                                                      "1853", "1854", "1854", "1854", …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 ggridges ridgeline-plot

5
推荐指数
2
解决办法
1607
查看次数

使用 Reactable 和 Blogdown 进行条件格式化

使用 R 的Reactable包和 RMarkdown 我想创建一个表,其中列的状态 <= 2 为绿色方块,否则为红色方块。

如果我尝试根据状态列的值设置其格式,它会创建一个非彩色方块。参见图片。

在此输入图像描述

在下面的 .Rmd 文件中,仅当列没有值时,我才可以使用 css 在列中制作彩色方块。

总而言之,在“状态”列下,我想要没有可见数字的彩色方块(状态 <= 2 为绿色方块,否则为红色方块),与列的状态名称左对齐。

Flag 列只是为了显示 css 正在工作。

RMarkdown 文件

title: Conditional Colored Square in Reactable Table
author: IX
date: 'September 5, 2020'
slug: test
categories: []
tags: []
output: 
  html_document
---

```{css, echo=FALSE}
 .row {
    display : flex;
    align-items : center;
    margin-bottom: 15px;
  }
.box {
  height: 20px;
  width: 20px;
  border: 1px solid black;
  margin-right : 5px;
}

.red {
  background-color: red;
} …
Run Code Online (Sandbox Code Playgroud)

r r-markdown reactable

5
推荐指数
1
解决办法
951
查看次数

即使所有浏览器都关闭,库也保留在内存中

我在 RStudio 的免费闪亮服务器上有一个闪亮的应用程序,它使用大量的库,这导致计算时间很慢。UI 加载时间是可以接受的。我将这些库放在 global.R 文件中,以便可以在用户之间共享。

# All libraries are in global.R for faster start times
source("<path to global.R>", local = T)

ui <- fluidPage(
)

server <- function(input, output, session) {
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

通过此设置,第一个从浏览器访问应用程序的人需要等待很长时间(约 10 秒)才能进行第一次计算。该用户后续的计算以及不同用户的访问都很快。如果每个人都关闭浏览器,下一个用户将等待约 10 秒的时间让应用程序进行计算。

有没有一种方法可以进行配置,以便即使第一个用户也有很短的等待时间,因为库已经在内存中了?

我认为我正在寻找的结果就好像我一直打开一个浏览器选项卡指向我的公共闪亮应用程序,然后我点击重新加载并计算一次(添加用户界面启动时未添加的库) 。每当应用程序超时并变成灰色时,我都会重新加载并再次计算。

r shiny

5
推荐指数
1
解决办法
197
查看次数

Page.Title 与 Hugo Site 上的 Site.Title 相同

我正在与 Hugo 建立一个网站。在config.toml页面中有:

title = "mySite"

在“关于”页面的 markdown 文件中,有:

title: About

这会起作用并导致浏览器选项卡显示“关于 - mySite”。

问题出现在主页上,浏览器选项卡显示“mySite - mySite”。

Markdown 主页确实定义了标题:

title: long name of post

浏览 Hugo 文件,我看到 head.html 有这样一行:

<title>{{ if .Page.Title }}{{ .Page.Title }} - {{ end }}{{ .Site.Title }}</title>
Run Code Online (Sandbox Code Playgroud)

看来主页的 .Page.Title = .Site.Title 。如何将主页 .Page.Title 设置为“Home”,以便主页的浏览器选项卡显示为“Home - mySite”?

hugo

4
推荐指数
1
解决办法
4634
查看次数

闪亮仪表板中相同高度的框

在创建闪亮的仪表板时,我认为如果盒子的高度相等,它们的顶部和底部就会对齐。不是这种情况。这里顶部很好地对齐,而底部则不然:

\n\n

在此输入图像描述

\n\n

如何确保顶部和底部对齐?

\n\n

注意:即使两个盒子填充了完全相同的 ggplot ,底部也会发生相同的错位。

\n\n

这些说明意味着这非常简单。

\n\n
\n
\n

通过设置高度,可以强制所有盒子具有相同的高度。与使用 12 宽 Bootstrap 网格设置的宽度不同,高度以像素为单位指定。

\n
\n
\n\n

示例代码

\n\n
## app.R ##\nlibrary(shiny)\nlibrary(shinydashboard)\nlibrary(ggplot2)\n\nui <- dashboardPage(\n  dashboardHeader(title = "Box alignmnent test"),\n  dashboardSidebar(),\n  dashboardBody(\n    # Put boxes in a row\n    fluidRow(\n      box(tableOutput("pop_num"), height = 350),\n      box(plotOutput("speed_distbn", height = 350))\n    )\n  )\n)\n\nserver <- function(input, output) { \n\n  # Population numbers\n  output$pop_num <- renderTable({\n    df <- tibble(\n      x = c(1,2,3,4),\n      y = c(5, 6, 7, 8)\n    )\n …
Run Code Online (Sandbox Code Playgroud)

r shiny shinydashboard

3
推荐指数
1
解决办法
2627
查看次数

以编程方式更改 Shiny 脚本中的 css

我希望根据用户的输入更改 Shiny 应用程序中文本的颜色。这是一个简单的例子。这基本上是正确的方法吗?如果我对 CSS 进行硬编码,它就可以工作。例如,如果我改变:

div(style = css_stub,
Run Code Online (Sandbox Code Playgroud)

div(style = "inline-block;  red;",
Run Code Online (Sandbox Code Playgroud)

文本颜色发生变化。请解释如何以编程方式更改 Shiny 应用程序中的 css。

library(shiny)

css_stub <- paste0("'", "inline-block;  color:black;", "'")

ui <- fluidPage(

  titlePanel("Color Test"),
  sidebarLayout(
    sidebarPanel(

      selectInput(inputId = "colors",
                  label = "Choose a color:",
                  choices = c("red", "blue"))
    ),

    mainPanel(
      div(style = css_stub, 
          textOutput("text_out"))

    )
  )
)

server <- function(input, output) {
  observeEvent(input$colors, {
    if (input$colors == "red") {
      css_stub <- paste0("'", "inline-block;  color:red;", "'")
      output$text_out <- renderText({"hello - red"})
    } else {
      css_stub <- …
Run Code Online (Sandbox Code Playgroud)

r shiny

2
推荐指数
1
解决办法
1931
查看次数