plotly R:保留分类列名,但不要';我没画出来

plotly R:保留分类列名,但不要';我没画出来,r,plotly,r-plotly,R,Plotly,R Plotly,使用此对象: fullDT <- structure(list(QuarterAndYear = structure(1:12, .Label = c("2015 Q1", "2015 Q2", "2015 Q3", "2015 Q4", "2016 Q1", "2016 Q2", "2016 Q3", "2016 Q4", "2017 Q1", "2017 Q2", "2017 Q3", "2017 Q4"), class = "factor"), `TRUE` = c(3

使用此对象:

fullDT <-
structure(list(QuarterAndYear = structure(1:12, .Label = c("2015 Q1", 
"2015 Q2", "2015 Q3", "2015 Q4", "2016 Q1", "2016 Q2", "2016 Q3", 
"2016 Q4", "2017 Q1", "2017 Q2", "2017 Q3", "2017 Q4"), class = "factor"), 
    `TRUE` = c(3, 0, 1, 0, 2, 1, 0, 1, 3, 0, 0, 0), `FALSE` = c(0, 
    0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0), OTHER = c(0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0)), class = c("data.table", "data.frame"
), row.names = c(NA, -12L), sorted = "QuarterAndYear")
plot_ly(fullDT,x = ~QuarterAndYear,y=0,type = "scatter",mode = "lines")%>%add_trace(y = ~`TRUE`)%>%add_trace(y = ~`FALSE`)%>%add_trace(y = ~OTHER)%>%layout(xaxis= list(type = "category"))
这几乎给了我所需要的一切。也就是说,它为我提供了第一列类别名称,作为x轴的记号标签。但是,“跟踪0”显示在图例中。如果我删除此项:

plot_ly(fullDT,type = "scatter",mode = "lines")%>%add_trace(y = ~`TRUE`)%>%add_trace(y = ~`FALSE`)%>%add_trace(y = ~OTHER)%>%layout(xaxis= list(type = "category"))
x轴现在未标记。 我不知道如何让这两个同时工作。也许我可以做些传奇魔术?但我觉得有更干净的方法


我尝试了一些布局
(xaxis=list(…)
的东西,但没有效果…

绘制绘图时,可以先空后加。当您在没有y的情况下绘制x时,它会添加
trace0
。因此,绘制所需的绘图,然后使用
colNames
子集添加跟踪,从中删除x,并在循环中跟踪

p <- plot_ly(type = 'scatter', mode = 'lines') %>% 
  layout(yaxis = list(title = "TRUE"))
colNames <- names(fullDT)
colNames <- colNames[-which(colNames == 'QuarterAndYear')]
for(trace in colNames){
  p <- p %>% plotly::add_trace(data = fullDT, x = ~ QuarterAndYear, y = as.formula(paste0("~`", trace, "`")), name = trace)
  print(paste0("~`", trace, "`"))
}
p
p%
布局(yaxis=list(title=“TRUE”))

colNames任何消除或修复警告的方法
都不能在同一轴上同时显示离散和非离散数据
?这不像
x轴
是离散的,并且您使用的是线图。也就是说,它显示的数据就像你有一个连续的x轴,但是连接点的线没有离散比例的意义。长话短说,将季度和年度从
因子更改为
数值
,并删除
类型=类别
zoo
库还有一个
as.yearqtr
函数,如果您需要转换日期。哦,好的,谢谢您,如果我将其更改为数字,显示标签的最优雅方式是什么?您不必更改任何内容。从图形上看,没有任何变化,它只是消除了警告。我尝试将
用作.numeric
,当警告消失时,现在标签是1,2,3,4。。。有没有办法做到这一点?