R语言Plotly绘图如何实现类似ggplot2 geom_abline的过原点对角线?
实现方案
有两种常用实现方式,都可以达到和geom_abline(intercept = 0 , slope = 1)完全一致的效果:
方式1:直接用add_abline(和ggplot2用法一致,最简单)
最新版Plotly内置了和ggplot2逻辑对齐的add_abline函数,参数完全通用:
library(plotly) fig <- plot_ly(data = iris, x = ~Sepal.Length, y = ~Petal.Length) %>% add_abline( intercept = 0, slope = 1, line = list(color = "#888888", dash = "solid", width = 1.5), showlegend = F ) fig
方式2:用add_segments自定义线的起止范围
如果需要精准控制对角线的长度,避免线超出你需要的展示范围,可以用这种方式:
library(plotly) # 取x、y列的最大值,确保对角线刚好覆盖所有数据点 max_val <- max(c(iris$Sepal.Length, iris$Petal.Length)) fig <- plot_ly(data = iris, x = ~Sepal.Length, y = ~Petal.Length) %>% add_segments( x = 0, xend = max_val, y = 0, yend = max_val, line = list(color = "#888888", dash = "solid", width = 1.5), name = "y=x参考线" ) fig
- 两种方式的
line参数都可以自定义样式:color修改线的颜色dash可选值:solid(实线)、dash(长虚线)、dot(点线)、dashdot(点虚线)width修改线的粗细
- 不需要在图例显示参考线时,添加
showlegend = FALSE参数即可。
内容的提问来源于stack exchange,提问作者Brad
相关产品推荐
相关产品推荐

