ggplotly 的交互和格式问题

Posted

技术标签:

【中文标题】ggplotly 的交互和格式问题【英文标题】:Issues with interactions and formatting of ggplotly 【发布时间】:2017-06-15 22:52:39 【问题描述】:

另一个问题迫使我在 ggplotly 中尝试一些东西。我使用了那个问题的代码。我对输出感兴趣,而不是内容。我看到输出格式和项目不起作用的问题。

我在 ggplot 中有“简单”的情节,想用 ggplotly 包装它。我使用 fill= 指​​定条形颜色,当我这样做时,条形不活动就会消失。

library(ggplot2)

library(plotly)
cnt <-c(2,1)
date <- c("2016-01-05 13:53:43","2016-01-15 09:33:40")
xx.df <- data.frame(date,cnt)
xx.df$datep <- as.Date(xx.df$date,format="%Y-%m-%d %H:%M:%S")
xx.df$datea <- as.character(xx.df$date,format="%Y-%m-%d %H:%M:%S")
xx.df$status <- as.factor(c("Success","Fail"))

pa <- ggplot(xx.df,aes(x=datea,y=cnt,fill=status))
pa <- pa+geom_bar(stat="identity")
print(ggplotly(pa))

1) 我无法单击以使用图例删除系列,两个条都消失了。 2) 鼠标悬停不存在。

当我删除 fill= 时,我得到一个没有图例的灰色图。但是鼠标悬停有效..

pag <- ggplot(xx.df,aes(x=datea,y=cnt))

pag <- pag+geom_bar(stat="identity")

print(ggplotly(pag))

我使用 fill= 的方式有问题吗?我正在使用 plotly 4.5.6,ggplot2 2.2.1

谢谢,

理查德

【问题讨论】:

【参考方案1】:

ggplotly 似乎存在问题,甚至 plotly 需要为每个组提供两个结果。当组只有 1 个元素时。在这种情况下“失败”。鼠标悬停在失败时不起作用。

library(ggplot2)

library(plotly)
cnt <-c(2,1,3)
date <- c("2016-01-05 13:53:43","2016-01-15 09:33:40","2016-01-18 13:53:43")
xx.df <- data.frame(date,cnt)
xx.df$datep <- as.Date(xx.df$date,format="%Y-%m-%d %H:%M:%S")
xx.df$datea <- as.character(xx.df$date,format="%Y-%m-%d %H:%M:%S")
xx.df$status <- as.factor(c("Success","Fail","Success"))

pa <- ggplot(xx.df,aes(x=datea,y=cnt,fill=status))
pa <- pa+geom_bar(stat="identity")
print(ggplotly(pa))

为每个组添加至少 2 个,一切正常。所有栏都有鼠标悬停。 库(ggplot2)

library(plotly)
cnt <-c(2,1,3,4)
date <- c("2016-01-05 13:53:43","2016-01-15 09:33:40","2016-01-18    13:53:43","2016-01-25 13:53:43")
xx.df <- data.frame(date,cnt)
xx.df$datep <- as.Date(xx.df$date,format="%Y-%m-%d %H:%M:%S")
xx.df$datea <- as.character(xx.df$date,format="%Y-%m-%d %H:%M:%S")
xx.df$status <- as.factor(c("Success","Fail","Success","Fail"))

pa <- ggplot(xx.df,aes(x=datea,y=cnt,fill=status))
pa <- pa+geom_bar(stat="identity")
print(ggplotly(pa))

【讨论】:

以上是关于ggplotly 的交互和格式问题的主要内容,如果未能解决你的问题,请参考以下文章

plotly 和 ggplot 图例顺序交互

使用和不使用 ggplot 的交互式 R Shiny 绘图

在ggplot2中绘制没有交互的线性回归线

使用 ggplotly rangeslider 进行交互式相对性能(股票收益)

R ggplotly重复的传说

ggplot2:3路交互堆积条形图的分组条形图