小编Jac*_*lis的帖子

plotly.js中的分类轴顺序

我有一个plotly.js条形图,我试图得到分类轴的顺序正确.每个类别都有一个单独的栏,但有时它们是绿色的,有时它们是黄色的.条形应该从最高到最低顺序排列,但似乎根据不同的填充顺序排列它们.

数据:

var data = [
  {
    "marker": {
        "color": "#006666"
    },
    "x": ["A:0122", "A:0121", "A:0434", "A:0838", "A:0083", "A:0081", "A:0687"],
    "y": [1246.0, 1096.0, 1000.0, 200.0, 0.0, 0.0, 0.0],
    "name": "Green",
    "type": "bar"
  }, 
  {
    "marker": {
        "color": "#C87B31"
    },
    "x": ["A:0169", "A:0175"],
    "y": [270.0, 0.0],
    "name": "Yellow",
    "type": "bar"
  }
];
Run Code Online (Sandbox Code Playgroud)

布局:

var layout = {
    "margin": {
        "t": 0
    },
    "barmode": "stack",
    "tickangle": -90,
    "showlegend": true,
    "xaxis": {
        "title": "Idea",
        "tickmode": "array",
        "tickvals": ["A:0122", "A:0121", "A:0434", "A:0169", "A:0838", "A:0083", …
Run Code Online (Sandbox Code Playgroud)

javascript plotly

6
推荐指数
2
解决办法
2707
查看次数

向Shiny发送POST请求

我看到很多人问这个问题的各种版本,但我还没有找到明确的答案。

我想向 R Shiny 应用程序发送 POST 请求,以便在收到请求后,Shiny 应用程序可以呈现请求正文中的数据。例如,考虑这样一个用例:我编写了某种特殊的analyzeData(data)R 函数,某人可以在笔记本电脑上本地运行该函数。在该函数中,将有一个httr::POST将数据上传到 Shiny 服务器的请求,然后用户将弹出浏览器并看到显示在服务器上分析的数据的 UI。从某种意义上说,它有点像“上传数据”按钮的奇特版本,但它们不是从 Shiny UI 中上传数据,而是在通过函数请求打开 UI 之前完成上传。

所以流程是:

  1. 用户运行analyzeData(data)函数
  2. 该函数向 Shiny 服务器发送 POST 请求以发送数据
  3. 浏览器会为该用户弹出,以便他们可以看到 Shiny 分析的结果。

据我所知,Shiny无法以这种方式接受 POST 请求。事实上,我不确定除了通过 UI 之外还有什么方法可以让 Shiny 接受数据。这几乎就像我想让 Plumber 和 Shiny 在同一台机器上运行(Plumber 接受数据 POST 请求,Shiny 然后渲染生成的 UI),但这感觉像是过度设计。

我错过了什么吗?有没有办法让这个流程与 Shiny 直接接受 POST 请求一起工作?

post r shiny plumber

6
推荐指数
0
解决办法
738
查看次数

将 Unicode 从 R 写入 SQL Server

我正在尝试将 Unicode 字符串从 R 写入 SQL,然后使用该 SQL 表来支持 Power BI 仪表板。不幸的是,Unicode 字符似乎只在我将表加载回 R 时才起作用,而在我在 SSMS 或 Power BI 中查看表时则不起作用。

require(odbc)
require(DBI)
require(dplyr)
con <- DBI::dbConnect(odbc::odbc(),
                      .connection_string = "DRIVER={ODBC Driver 13 for SQL Server};SERVER=R9-0KY02L01\\SQLEXPRESS;Database=Test;trusted_connection=yes;")
testData <- data_frame(Characters = "?")
dbWriteTable(con,"TestUnicode",testData,overwrite=TRUE)
result <- dbReadTable(con, "TestUnicode")
result$Characters
Run Code Online (Sandbox Code Playgroud)

成功产生:

> result$Characters
[1] "?"
Run Code Online (Sandbox Code Playgroud)

但是,当我在 SSMS 中拉出该表时:

SELECT * FROM TestUnicode
Run Code Online (Sandbox Code Playgroud)

我得到两个不同的字符:

Characters
~~~~~~~~~~
â¤
Run Code Online (Sandbox Code Playgroud)

这些字符也出现在 Power BI 中。如何正确地将心形字符拉到 R 之外?

sql-server unicode r

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

检查是否在 rmarkdown::render 期间运行

如果我在 RMarkdown 文件中手动运行代码,我希望有一个可以在 RStudio 中查看表格的函数,否则使用knitr::kable()

ez_view <- function(df){
  if(`IS_RENDERING`){
    knitr::kable(df)
  } else {
    View(df)
  }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法轻松做到这一点?

r knitr r-markdown

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

提高 R 光线着色器图像的分辨率

我正在尝试使用 rayshader 包制作图像。我很高兴能够使用如下代码创建一个 png 文件:

library(ggplot2)
library(rayshader)

example_plot <- 
  ggplot(data.frame(x=c(1,2,3),y=c(4,5,6),z=c(5,4,3)),aes(x=x,y=y,color=z)) + geom_point()

plot_gg(example_plot, width = 2, height = 2, multicore = TRUE, scale = 125, 
        zoom = 0.5, phi = 60, theta=-10, windowsize = c(3200, 3200), offset_edges = TRUE)

Sys.sleep(2.0)

render_depth(focus = 0.5, focallength = 100, fstop = 8, clear = TRUE,filename="example.png")
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法弄清楚如何使输出图像具有更高的分辨率。我试过调整窗口大小,在低值下似乎有所不同,但我已经达到了某种上限,输出图像的分辨率不会超过 1372 x 893。我该怎么做才能获得输出分辨率约为 3200 x 3200 的图像?

谢谢!

在此处输入图片说明

r image render rayshader

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

R |%||%做什么?

我试图从github运行一些R代码,但是这些函数使用的命令%||%似乎不在基础R中.这个函数究竟做了什么以及我需要使用哪些软件包才能使它工作在我的机器上?你可以想象,这个特殊的字符串是不能谷歌的,因为它是完全特殊的字符.

r

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

在图例中没有数据的情节

作为对前一个问题的跟进

假设我想显示一组条形图,其中每个条形图可以是其中一个选项:A,B或C,每个条形图都有不同的颜色.我想显示条形图,但如果条形图属于特定类别,则仍然会在图例中显示该类别.不幸的是,没有颜色的类别似乎被丢弃了.请注意,在此示例中,如何从图例中删除标记为"C"的类别为蓝色的类别:

data = [
{
x: [1, 3, 4],
y: [20, 14, 23],
type: 'bar',
name: 'A',
marker: {color: '#00FFFF'}},
{
x: [2, 5, 6],
y: [8, 6, 2],
type: 'bar',
name: 'B',
marker: {color: '#FF00FF'}},
{
x: [],
y: [],
type: 'bar',
name: 'C'
marker: {color: '#FF0000'}}]
Run Code Online (Sandbox Code Playgroud)

未显示C类

我怎样才能确保C(或任何没有数据的颜色)始终显示?

plotly

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

如何将Seq.sum用于任何.Net值类型?

我正在寻找一个函数来处理任何数值类型的数据(int,float,double)的seq,通过映射对它进行一些计算,然后对这些计算值进行求和.我遇到的问题是Seq.sum(或者通常只是'(+)')会导致类型参数为整数,或者只是给出一个平坦的错误.似乎应该有一种方法通过使用类型约束来使这项工作,但我似乎无法得到它.

type ValueWithComputation<'v> = {Value: seq<'v>; Computation: 'v -> 'v}

let calculateAndCombine (x: ValueWithComputation<'v>) = 
    x.Value
    |> Seq.map x.Computation
    |> Seq.sum // sometimes gives error: "Could not resolve the ambiguity inherent in the use of operator '(+)'

let x = {Value= {1..10}; Computation= (fun x->x*2)}
let y = {Value= {(1.0)..(10.0)}; Computation= (fun x->x*x)}

let totalX = calculateAndCombine x //this causes the code force 'v to be int
let totalY = calculateAndCombine y //gives an error since this isn't an int …
Run Code Online (Sandbox Code Playgroud)

f# type-parameter

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

gt 表中的特殊零值

我正在使用 {gt} 包在报告中创建表。我希望将“$0.00”货币值替换为“-”,这在 Excel 中很容易做到,但在 {gt} 中似乎很难做到。这是一个表格示例,我希望将零值替换为更容易看到的东西。我能做的最好的事情就是使用fmt并制作一个自定义函数来重新创建 的全部功能fmt_currency,这看起来不太好。

library(gt)
library(magrittr)
data <- data.frame(x=c(1.23,4.56,0,0,0,0,0))
table <- gt(data) %>%
  fmt_currency(x)
Run Code Online (Sandbox Code Playgroud)

生成表

r gt

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

Imagesharp在F#中变异

我正在尝试使用ImageSharp来编辑F#中的图片.我正在努力让图像突变起作用

要在C#中进行图像变异,看起来你只需要使用mutate方法和lambda:

image.Mutate(x => x.Kodachrome())
Run Code Online (Sandbox Code Playgroud)

通常,要将C#lambdas更改为F#,我只会使用匿名函数,如下所示:

image.Mutate(fun x -> x.Kodachrome())
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到以下错误:

方法'Mutate'没有重载匹配.可用的重载如下所示(或在错误列表窗口中).

看起来Mutate方法需要一个ImageProcessor,但由于某些原因,在F#中,编译器无法确定匿名函数是一个ImageProcessor.如何在F#中使用图像变异?

f# imagesharp

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