我在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:列
x
和y
。•大小11149:列text
和color
。ℹ只有大小为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-在保留悬停信息的同时,以绘图方式将多边形添加到散点以及将多边形添加到散点