小编nee*_*elp的帖子

Matplotlib:颜色和线条样式由两个带有单独图例的不同变量组成

我有一个绘图,其中每条线都由变量a的值着色,而线型由变量b的值:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# some data
x = np.array([[1, 2, 0.1, 0.5], [2, 3, 0.1, 0.5], 
              [1, 4, 0.4, 0.8], [2, 1, 0.4, 0.8],
              [1, 1, 0.1, 0.8], [2, 3, 0.1, 0.8], 
              [1, 3, 0.4, 0.5], [2, 3, 0.4, 0.5]])
df = pd.DataFrame(x)
df.columns = ["x", "y", "a", "b"]
df.head()

# define color scheme and line style
colors = ["C1", "C2", "C3"]
linestyles = ['-', "--", ":"]


for a_idx, a …
Run Code Online (Sandbox Code Playgroud)

python matplotlib legend

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

隐藏RMarkdown中的打印语句

有没有办法在RMarkdown中隐藏打印语句?我编写了一个函数,它将有关算法学习行为的进度打印到R控制台.这是一个例子:

f <- function() {
  print("Some printing")
  return(1)
}
Run Code Online (Sandbox Code Playgroud)

在RMarkdown我有

```{r, eval = TRUE, results = "show"}
res = f()
print(res)
```
Run Code Online (Sandbox Code Playgroud)

这会在RMarkdown输出文件中添加"Some printing"和1.有没有办法抑制"一些打印",但保持功能的输出(这里1)?对于警告,错误和消息,有选项,但我找不到打印语句.

r r-markdown

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

将 yEd 创建的 graphML 文件读入 R

我有这个graphML文件,它是用 yworks yEd 创建的。

在此处输入图片说明

现在我想将此文件读入 R 以通过visNetwork. 但是使用该igraph::read_graph函数将文件读入 R失败:

library(igraph)
example <- igraph::read_graph("data/graphml_example.graphml", format = "graphml")
Run Code Online (Sandbox Code Playgroud)

警告信息:

1:在 read.graph.graphml(file, ...) 中:在 foreign-graphml.c:651 中:由于缺少或未知的“attr.type”属性而忽略

...

这是graphml文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--Created by yFiles for HTML 2.0.1.4-->
<graphml xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml.html/2.0/ygraphml.xsd " xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:demostyle="http://www.yworks.com/yFilesHTML/demos/FlatDemoStyle/1.0" xmlns:bpmn="http://www.yworks.com/xml/yfiles-for-html/bpmn/2.0" xmlns:demotablestyle="http://www.yworks.com/yFilesHTML/demos/FlatDemoTableStyle/1.0" xmlns:compat="http://www.yworks.com/xml/yfiles-compat-arrows/1.0" xmlns:VuejsNodeStyle="http://www.yworks.com/demos/yfiles-vuejs-node-style/1.0" xmlns:y="http://www.yworks.com/xml/yfiles-common/3.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/3.0" xmlns:yjs="http://www.yworks.com/xml/yfiles-for-html/2.0/xaml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <key id="d0" for="node" attr.type="boolean" attr.name="Expanded" y:attr.uri="http://www.yworks.com/xml/yfiles-common/2.0/folding/Expanded">
        <default>true</default>
    </key>
    <key id="d1" for="node" attr.name="NodeLabels" y:attr.uri="http://www.yworks.com/xml/yfiles-common/2.0/NodeLabels"/>
    <key id="d2" for="node" attr.name="NodeGeometry" y:attr.uri="http://www.yworks.com/xml/yfiles-common/2.0/NodeGeometry"/>
    <key id="d3" for="all" attr.name="UserTags" y:attr.uri="http://www.yworks.com/xml/yfiles-common/2.0/UserTags"/>
    <key id="d4" …
Run Code Online (Sandbox Code Playgroud)

r graphml igraph visnetwork

5
推荐指数
0
解决办法
560
查看次数

仅当使用 LayersControl 缩放级别 &gt; 8 时,才在 Shiny 中显示传单地图中的图层?

我想仅当在 LayersControl 中单击图层并且缩放级别大于某个数字(例如 8)时才显示该图层。原因之一是,必须执行一些昂贵的计算才能获取图层坐标。我想使用图层控件而不是额外的输入按钮(出于光学原因)。

如果在图层控件中单击图层按钮,是否有办法检索该值?

这是一个简单的例子(不起作用):

library(leaflet) 
library(shiny)

ui <- fluidPage(
  leafletOutput("map", width = "100%", height = "700")
)

server <- function(input, output){
  output$map <- renderLeaflet({
    leaflet() %>% addTiles() %>% setView(10.4, 50.3, 7) %>%
      addLayersControl(overlayGroups = c("marker"),
                       options = layersControlOptions(collapsed = FALSE))
  })

  observe({
   # if (input$marker == TRUE){ # how to get value if layercontrol is clicked?
      if (input$map_zoom > 8) {
        leafletProxy("map") %>% addMarkers(lng = 10.5, lat = 50, group = "marker")
      }
  #  }
  })
}

shinyApp(ui …
Run Code Online (Sandbox Code Playgroud)

javascript r leaflet shiny shinyjs

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

将选项卡放在右侧的 Shiny tabsetPanel 中

默认情况下,atabsetPanel中的选项卡位于左侧。是否可以在右侧放置一个选项卡,而左侧仍然有其他选项卡?所以它看起来像这样?

在此处输入图片说明

library(shiny)

ui <- fluidPage(
  tabsetPanel(
    tabPanel("tab_left1"),
    tabPanel("tab_left2"),
    tabPanel("tab_right")
  )
)

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

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

css r shiny bootstrap-4

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

在 R 中运行并行计算时如何在工作线程上设置 .libPaths(检查点)

我使用检查点包进行可重复的数据分析。有些计算需要很长时间才能计算,所以我想并行运行它们。然而,当并行运行时,检查点未在工作线程上设置,因此我收到一条错误消息“没有名为 xy 的包”(因为它没有安装在我的默认库目录中)。

我如何确保每个工作人员都使用检查点文件夹中的包版本?我尝试在 foreach 代码中设置 .libPaths 但这似乎不起作用。我还希望在全局范围内设置检查点/libPaths 一次,而不是在每个 foreach 调用中设置一次。

另一种选择可能是更改 .Rprofile 文件,但我不想这样做。

checkpoint::checkpoint("2018-06-01")

library(foreach)
library(doFuture)
library(future)

doFuture::registerDoFuture()
future::plan("multisession")

l <- .libPaths()

# Code to run in parallel does not make much sense of course but I wanted to keep it simple.
res <- foreach::foreach(
  x = unique(iris$Species),
  lib.path = l
) %dopar% {
  .libPaths(lib.path)
  stringr::str_c(x, "_")
}
Run Code Online (Sandbox Code Playgroud)

{ 中的错误:任务 2 失败 - “没有名为‘stringr’的包”

parallel-processing foreach r checkpoint r-future

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

如何在管道工API中返回特定的错误代码?

我们如何从管道工 R API 返回特定的错误代码?

我们希望返回带有消息的 400 状态代码,例如“功能 x 丢失。”。我们阅读了管道工文档,但无法弄清楚这一点。

如果我们使用stop()500 内部服务器错误,则返回且没有具体消息。

#' predict
#' @param x Input feature
#'
#' @get /predict

function(x) {
  if (is.na(x)) {
    # error code 400 should be returned
  }

 # ... # else continue with prediction
}

Run Code Online (Sandbox Code Playgroud)

r plumber

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

如何在传单中拖动标记后更新坐标?

我想要一个应用程序,它会在点击时产生新的点,类似于这里: R传单如何点击地图并添加一个圆圈

但标记应该是可拖动的,拖动时,坐标应该更新,显示在dataTable中.我通过mouseout事件实现了这个目标.我找到了这个解决方案,但如果我设置了两个点,它们将具有相同的坐标(从第二个点开始),并且只有在触发mouseout时才会刷新.

library(shiny)
library(leaflet)

df <- data.frame(longitude = 10.5, latitude = 48)

ui <- fluidPage(
  navbarPage("Title",
         tabPanel("Map",
                  mainPanel(leafletOutput("map", width = "100%", height = "700")
                  )),
         tabPanel("Data", dataTableOutput("table"))
 )
)

server <- function(input, output) {

 output$map <- renderLeaflet({
   leaflet() %>% addTiles()
 })

 df_r <- reactiveValues(new_data = df)

 # reactive list with id of added markers
 clicked_markers <- reactiveValues(clickedMarker = NULL)

 observeEvent(input$map_click, {
   click <- input$map_click
   click_lat <- click$lat
   click_long <- click$lng

   clicked_markers$clickedMarker <- c(clicked_markers$clickedMarker, 1)
   id <- length(clicked_markers$clickedMarker)


# Add …
Run Code Online (Sandbox Code Playgroud)

r leaflet shiny

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

在闪亮的 flowLayout 中创建动态数量的卡片元素

我喜欢用卡片元素填充闪亮应用程序中的某个区域。当空间不足时,项目会流入下一行。这可以通过 来实现flowLayout

在此输入图像描述

但我事先不知道项目的数量,所以我需要循环创建卡片元素。但是当我在内部使用 lapply 时,flowLayout所有元素都显示在彼此下方。

如何解决这个问题,以便项目显示在彼此相邻的行中?

library(shiny)

card <- function(.img, .species, .sepal.length) {
  HTML(
    paste0(
      '<div class="card">
      <img src="', .img, '" style="width:100%">
      <div class="container">
      <h4><i>', .species, '</i></h4>
      <hr>
      <p>Sepal Length: ', .sepal.length, '</p>
      </div>
      </div>')
  )
}

img.src <- "https://www.plant-world-seeds.com/images/item_images/000/007/023/large_square/iris_baby_blue.jpg?1500653527"

ui <- fluidPage(
  tags$head(tags$style('.card {
                         width: 250px;
                       clear: both;
                       /* Add shadows to create the "card" effect */
                       box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
                       transition: 0.3s;
                       }
                       /* On mouse-over, add a deeper shadow */
                       .card:hover …
Run Code Online (Sandbox Code Playgroud)

html r shiny

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

闪亮的 selectizeInput 使用选项设置选定值

我有一个自定义的selectizeInput地方,我使用 options 参数指定可用的选择(以进行自定义渲染和搜索,为简单起见,在示例中省略了)。现在我陷入了设置选定值的简单任务。从文档来看,这应该可以使用该items字段,但我正在努力寻找正确的方法来设置它。

library(shiny)
library(purrr)

choices <- purrr::transpose(list(x = letters[1:5],
                                 y = LETTERS[1:5]))

ui <- fluidPage(
  selectizeInput("select", 'Select', choices = "",
                 selected = "",
                 options = list(
                   valueField = 'x',
                   labelField = 'y',
                   items = choices[[1]],
                   options = choices
                 ))
)

shinyApp(ui, function(input, output, session) {})
Run Code Online (Sandbox Code Playgroud)

r shiny selectize.js

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