r-将多边形添加到散点图中



我在R中创建了一个散点图,我想在上面添加一个多边形。

电流图

这是我用来制作图表的代码:

fig <- plot_ly(data = data, x= ~xbeak, y = ~ybeak, color = ~coordsbeak, text = ~paste(coordsbeak), type = 'scatter')

现在我想在这个图中添加一个多边形,这是我用add_polygons尝试过的。多边形是一个不同的数据帧,由42个x和y坐标的两列组成。

fig <- fig %>% add_polygons(x = xym$x, y=xym$y)

然而,当我尝试运行这个程序时,我会遇到这个我不理解的错误。知道我做错了什么吗?

错误:!胫骨支柱必须具有兼容的尺寸。•尺寸42:列xy。•大小11149:列textcolor。ℹ只有大小为1的值才会被回收。运行rlang::last_error()查看错误发生的位置。

下面有两个解决方案。首先,将inherit = FALSE添加到add_plygons()

library(tidyverse)
library(plotly)
xym<-data.frame(y=c(3,4,4,3),
x=c(5,5,6,6))
fig <- plot_ly(data = iris, x= ~Sepal.Length, y = ~Sepal.Width, color = ~Species, text = ~paste(Species), type = 'scatter', mode="markers")
fig <- fig %>% add_polygons(x = xym$x, y=xym$y, inherit = FALSE, showlegend = FALSE)
fig

或者,切换操作顺序-先制作多边形,然后制作散点图。

以下是虹膜数据的示例:

xym<-data.frame(x=c(5,5,6,6),
y=c(3,4,4,3))
# make an empty plot_ly object
fig <- plot_ly()
# add the polygons
fig<-fig %>% add_polygons(x = xym$x, y=xym$y)
# add the scatterplot
fig<-fig %>% add_trace(data = iris, x= ~Sepal.Length, y = ~Sepal.Width, color = ~Species, text = ~paste(Species), type ="scatter", mode="markers")
fig

referenced-在保留悬停信息的同时,以绘图方式将多边形添加到散点以及将多边形添加到散点

最新更新