小编Mal*_*lta的帖子

使用ggplotly时如何选择变量显示在工具提示中?

我有一个简单的数据框:

seq <- 1:10
name <- c(paste0("company",1:10))
value <- c(250,125,50,40,40,30,20,20,10,10)
d <- data.frame(seq,name,value)
Run Code Online (Sandbox Code Playgroud)

我想以这种方式绘制它:

require(ggplot2)
ggplot(data = d,aes(x=seq,y=value))+geom_line() + geom_point()
Run Code Online (Sandbox Code Playgroud)

现在我想使用情节,主要是为了能够,当鼠标悬停在某一点上时,获取除价值之外的其他信息,例如公司名称.我试试这个:

require(plotly)
ggplotly()
Run Code Online (Sandbox Code Playgroud)

这给我一个工具提示,但只有seq和值.我尝试了选项tooltip =但它指定你可以使用美学中唯一的变量描述,我不会在我的使用中使用该名称.

有解决方案吗 我看到我不是第一个遇到这个问题的人,但我还没有找到与ggplotly合作的答案.

r ggplot2 plotly ggplotly r-plotly

29
推荐指数
4
解决办法
2万
查看次数

根据多个列创建group_indices

我想基于两列生成索引以对观察进行分组.但是我希望小组能够通过观察来共享,至少有一个公共观察.我可以看到如何根据共同观察的观察结果制作小组,而不仅仅是其中一个.

例如,使用数据框:

dt <- data.frame(id=1:10,
             G1 = c("A","A","B","B","C","C","C","D","E","F"),
             G2 = c("Z","X","X","Y","W","V","U","s","T","T"))
Run Code Online (Sandbox Code Playgroud)

我想得到一个专栏

1,1,1,1,2,2,2,3,4,4
Run Code Online (Sandbox Code Playgroud)

我尝试使用dplyr中的group_indices,但还没有管理它.

r dplyr

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

如何使用动态名称和dplyr重命名变量?

我想重命名一个函数内的列,其名称作为此函数的参数传递.基本上,我有一个功能

produce_data_frame <- function(name) {
  return(iris)
}
Run Code Online (Sandbox Code Playgroud)

我希望这个函数改变Sepal.length列名称'name'(名称取名称)我尝试了不同的东西,如

produce_data_frame <- function(name) {
  name <- enquo(name)
  iris %>%
    rename((!!name) = Sepal.Length) %>%
    return()
}
Run Code Online (Sandbox Code Playgroud)

在打电话的时候

produce_data_frame("newName")
Run Code Online (Sandbox Code Playgroud)

我想用名为newName的Sepal.Length列取回iris data.frame.但我对NSE的理解仍然非常基础,甚至不能编译.

r dplyr nse

10
推荐指数
4
解决办法
3292
查看次数

在R plotly subplot图中,如何只显示一个图例?

我有一个带有两个图形的基本子图,默认情况下都有一个图例,但我只想看到其中一个.

我试过这个:

require(plotly)
p1 <- plot_ly(data=iris,x=~Sepal.Length,y=~Sepal.Width,split=~Species) %>% layout(showlegend = FALSE)
p2 <-  plot_ly(data=iris,x=~Sepal.Length,y=~Sepal.Width,split=~Species) %>% layout(showlegend = TRUE)
subplot(p1,p2)
subplot(p2,p1)
Run Code Online (Sandbox Code Playgroud)

但它不起作用:似乎只有一个showlegend属性被处理,所以如果我从p1开始我有两个传说,如果我从p2开始我有两个.

有任何想法吗 ?

r plotly

8
推荐指数
3
解决办法
6972
查看次数

case_when 与 numeric(0) 的行为

我无法理解dplyr::case_when其工作原理。这里有这个非常简单的行:

library(tidyverse)
case_when(TRUE ~ 50,
          FALSE ~ numeric(0))
Run Code Online (Sandbox Code Playgroud)

显然numeric(0),TRUE 是 TRUE,所以它应该发回 50。此外,FALSE 是 FALSE,所以它永远不应该发回 numeric(0)。如果我写的话我就没有问题:

case_when(TRUE ~ 50,
      FALSE ~ NaN)
Run Code Online (Sandbox Code Playgroud)

我得到50,这是正确的。我想念什么?

r case-when dplyr

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

如何使用pander向表添加网格?

我正在使用R,knitr和pander,我找不到允许我在带有pander的桌子上打印网格的选项.我试过了 :

pander(tableToPrint, style='grid') 
Run Code Online (Sandbox Code Playgroud)

但它没有做任何事情,无论是使用此选项还是使用'multiline','rmarkdown'......我总是得到一条水平线,然后是列名,另一条水平线,我的所有数据和一条水平线.我想在每一行之间有一条水平线.另一种选择是交替行颜色.

latex r pandoc knitr r-markdown

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

使用plot_ly抑制工具提示中的默认文本

使用plot_ly(),我可以在工具提示中添加我想要的内容,但我无法摆脱默认值.有办法做到这一点吗?

在下面的示例中,对于第一点,工具提示是"250 company1".我想只得到"company1".我有一个使用ggplot2然后使用tooltip选项的ggplotly()的解决方案,但我宁愿只留下情节.

require(plotly)

seq <- 1:10
name <- c(paste0("company",1:10))
value <- c(250,125,50,40,40,30,20,20,10,10)
d <- data.frame(seq,name,value)
plot_ly(data=d,x=seq,y=value,text=name)
Run Code Online (Sandbox Code Playgroud)

r plotly

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

如何为R中的刻度标签提供更多空间

我在r plotly中有一个水平条形图,我想给刻度标签更多的空间.请参阅以下示例:

libelle <- c("financial activities","Agriculture, sylviculture and fishing","Manufacture of transport materials","financial activities","Agriculture, sylviculture and fishing","Manufacture of transport materials")
value <- c(15000000,987000,154000000,10000000,927000,15400000)
annee <- c("2011","2011","2011","2012","2012","2012")
data <- data.frame(libelle,value,annee)
plot_ly(data=data,x=value,y=libelle,group=annee,type="bar",orientation="h")
Run Code Online (Sandbox Code Playgroud)

我看不到左边的标签,我也没有找到如何将垂直轴向右移动.

r graph plotly

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

标签 统计

r ×8

plotly ×4

dplyr ×3

case-when ×1

ggplot2 ×1

ggplotly ×1

graph ×1

knitr ×1

latex ×1

nse ×1

pandoc ×1

r-markdown ×1

r-plotly ×1