Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 新版本plotly的堆叠条问题_R_Ggplot2_Plotly - Fatal编程技术网

R 新版本plotly的堆叠条问题

R 新版本plotly的堆叠条问题,r,ggplot2,plotly,R,Ggplot2,Plotly,我正在尝试使用ggplot2制作一个非常简单的条形图,然后使用plotly包中的ggplotly函数将其转换为交互式图形。 最终的图形看起来正常,但悬停文本中呈现的值不好。实际上,它渲染堆叠的值而不是单个值 以下是一个可复制的示例: #data dataf = data.frame(Espece = c("A","A","B","B","C","C"), Type = c("A","B","A","B","A","B"),

我正在尝试使用ggplot2制作一个非常简单的条形图,然后使用plotly包中的ggplotly函数将其转换为交互式图形。 最终的图形看起来正常,但悬停文本中呈现的值不好。实际上,它渲染堆叠的值而不是单个值

以下是一个可复制的示例:

#data
dataf = data.frame(Espece = c("A","A","B","B","C","C"),
                   Type = c("A","B","A","B","A","B"),
                   Value = c(2,2,5,1,6,0))
#ggplot
gg = ggplot(dataf, aes(x = Espece, y = Value, fill = Type)) + 
  geom_bar(stat = "identity") +
  theme(legend.position = "none") +
  theme(axis.text.x = element_text(angle = 90, hjust = 1))

#plotly
p <- ggplotly(gg)
p
#数据
dataf=data.frame(特别是=c(“A”、“A”、“B”、“B”、“c”、“c”),
类型=c(“A”、“B”、“A”、“B”、“A”、“B”),
值=c(2,2,5,1,6,0))
#ggplot
gg=ggplot(数据函数,aes(x=spece,y=Value,fill=Type))+
几何图形栏(stat=“identity”)+
主题(legend.position=“无”)+
主题(axis.text.x=元素\文本(角度=90,hjust=1))
#阴谋地

p打印ggplot图形时,它看起来很好。所以这可能是其中一个错误。在修复之前,您可以使用以下替代方案:

library(dplyr)
datafA <- dataf %>% filter(Type == "A")
datafB <- dataf %>% filter(Type == "B")

p <- plot_ly(data=datafA,
  x = Espece,
  y = Value,
  type = "bar",
  hoverinfo="text",
  text = paste("Espece = ", datafA$Espece, "<br>Value = ", datafA$Value, "<br>Type = ", datafA$Type),
  color = Type, colors = "red"
)
p


p2 <- add_trace(
  p,
  data=datafB,
  x = Espece,
  y = Value,
  type = "bar",
  hoverinfo="text",
  text = paste("Espece = ", datafB$Espece, "<br>Value = ", datafB$Value, "<br>Type = ", datafB$Type),
  color = Type, colors = "blue"
)
p2

layout(p2, barmode = "stack", showlegend = FALSE)
库(dplyr)
datafA%筛选器(类型==“A”)
datafB%筛选器(类型==“B”)

p在前面创建
dataf
时,在ggplot中使用
dataf2
dataf2
是新的数据帧还是等于
dataf
?在
dataf
中,类型A的值为4。您好@MLavoie,非常感谢您的回答。我考虑过这个解决方案,但问题是,这只是一个例子,在真实数据中,我有不同数量的类别,从10到50。对每个类别使用add_跟踪似乎有点棘手。我更喜欢使用ggplotly函数。你认为这是一个真正的错误,还是我用错了这个函数?我认为这是一个错误。这种情况经常发生:(