我有一个简单的数据框:
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合作的答案.
我想基于两列生成索引以对观察进行分组.但是我希望小组能够通过观察来共享,至少有一个公共观察.我可以看到如何根据共同观察的观察结果制作小组,而不仅仅是其中一个.
例如,使用数据框:
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,但还没有管理它.
我想重命名一个函数内的列,其名称作为此函数的参数传递.基本上,我有一个功能
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的理解仍然非常基础,甚至不能编译.
我有一个带有两个图形的基本子图,默认情况下都有一个图例,但我只想看到其中一个.
我试过这个:
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开始我有两个.
有任何想法吗 ?
我无法理解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,knitr和pander,我找不到允许我在带有pander的桌子上打印网格的选项.我试过了 :
pander(tableToPrint, style='grid')
Run Code Online (Sandbox Code Playgroud)
但它没有做任何事情,无论是使用此选项还是使用'multiline','rmarkdown'......我总是得到一条水平线,然后是列名,另一条水平线,我的所有数据和一条水平线.我想在每一行之间有一条水平线.另一种选择是交替行颜色.
使用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中有一个水平条形图,我想给刻度标签更多的空间.请参阅以下示例:
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)
我看不到左边的标签,我也没有找到如何将垂直轴向右移动.