使用绘图显示NA值

时间:2018-10-19 15:37:47

标签: r shiny plotly

假设我有一个data.table,如下所示

data = data.table(week=c(1,2,3),price=c(2,2.5,1.5),promotion=c("p1",NA,"p2"))

周,价格,促销 w1,2,p1 w2、2.5,NA w3、1.5,p2

我想用不同的促销颜色显示价格的散点图。

plot_ly(d, x = ~week, y = ~price,color=~promotion)

问题是,由于列提升中的NA值,我的输出未显示第二个观察结果,如下所示。

plotly output 我想在“促销”列中显示所有价格,包括不适用的价格。 谢谢您的帮助!

2 个答案:

答案 0 :(得分:1)

library(plotly)
options(stringsAsFactors = F)
data = data.frame(week=c(1,2,3),price=c(2,2.5,1.5),promotion=c("p1",NA,"p2"))
data$promotion[is.na(data$promotion)] <- "NA"
plot_ly(data, x = ~week, y = ~price,color=~promotion)

答案 1 :(得分:0)

仅介绍猪排的解决方案和您在该解决方案下的评论。这是一种不更改data.table中的值的方法-

plot_ly(data, x = ~week, y = ~price, color= ~replace(promotion, is.na(promotion), "NA"))

enter image description here