如何为ggplot转plotly的动态交互图添加对应点高度的垂直线段
解决方法
你只需要在原有ggplot图层中添加geom_segment()图层即可,垂直线段的参数设置逻辑如下:
- 垂直于X轴的线段x坐标全程不变,因此
x和xend均设置为XVAR - 线段下端固定在X轴(Y=0位置),上端连接对应数据点,因此
y设置为0,yend设置为YVAR
将geom_segment放在geom_point前可以让数据点层叠在线段上方,视觉效果更清晰,修改后的完整代码如下:
library(plotly) library(tidyverse) XVAR<-seq(from=1,to=10) Time<-seq(from=1,to=10) dat2<-expand_grid(XVAR,Time) set.seed(1) dat2$YVAR<-runif(100,0,10) pl <- ggplot(dat2, aes(x=XVAR,y=YVAR, frame = Time)) + geom_segment(aes(x = XVAR, xend = XVAR, y = 0, yend = YVAR)) + geom_point(size = 2) # 调整点大小避免被线段遮挡 ggplotly(pl)
如果不需要线段从X轴起点开始,只需修改geom_segment中y的取值即可,比如要从Y=1的位置开始绘制垂直线,把y=0改为y=1即可。
内容的提问来源于stack exchange,提问作者manifold
相关产品推荐
相关产品推荐

