You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly R设置标记大小导致拟合线意外显示标记的问题

问题

使用Plotly 4.10.2、R 4.3.1、RStudio 2023.06.1 Build 524制作包含散点集和最佳拟合线的双轨迹散点图时,遇到以下问题:

  • 拟合线轨迹已设置mode="lines",仅需显示线条,但为散点轨迹添加marker = list(size = 10)调整标记大小后,拟合线也出现了标记。
  • 尝试改用两次add_trace语句分别创建两个轨迹,问题依旧。
    请问这是Bug吗?

相关数据:

# dt$d50
c(2.191258065, 4.371259836, 4.163834921, 4.299901482, 0.721296517, 
0.806656288, 0.838300519, 2.123984458, 1.281270095, 1.271034705, 
1.126324259, 2.158535202, 0.811873646, 0.997379781, 0.791658847, 
0.865206465, 1.697433187, 1.306820106, 1.002612879, 0.932092299, 
1.741705726, 1.546688167, 1.408641227, 0.922844563, 0.845056924, 
0.997727831, 1.102327201, 1.120945941, 1.092093241, 1.182791188, 
1.303034055, 1.200149608, 1.051766949, 0.917999368, 0.879761687, 
0.25661637, 0.367374289, 0.451367428, 0.594794813, 0.412664784, 
0.326505198, 0.343620551, 0.441396171, 0.475386025, 0.400242695, 
0.374735446, 0.386719965, 0.312585107, 3.261716671, 3.292011578, 
0.767037605, 1.651888689, 1.193666161, 1.934104802, 2.286671289, 
1.43194983, 1.611017108)

# dt$r501b3grange1
c(1.09698951244354, 3.16094923019409, 2.79072117805481, 3.07730960845947, 
0.744107246398926, 1.22431325912476, 1.53918492794037, 1.52391850948334, 
0.751307666301727, 0.827914595603943, 1.34772574901581, 1.02658534049988, 
0.776823580265045, 0.762321770191193, 1.20416533946991, 0.986024975776672, 
1.5238938331604, 1.06575691699982, 1.04620349407196, 1.24733889102936, 
0.65419340133667, 0.705933749675751, 0.824617326259613, 0.979621589183807, 
1.15843141078949, 0.93364292383194, 0.818296492099762, 0.993945062160492, 
0.955138683319092, 0.853289723396301, 0.850569367408752, 0.850764274597168, 
0.663198113441467, 0.516988277435303, 0.539037942886353, 0.751503467559814, 
0.677738070487976, 0.792271614074707, 0.792271614074707, 0.627113521099091, 
0.584987282752991, 0.684955239295959, 0.77651035785675, 0.729957222938538, 
0.848376214504242, 0.74308979511261, 0.549346268177032, 0.6502605676651, 
2.18274283409119, 2.94228267669678, 0.680980920791626, 1.51205325126648, 
0.92967689037323, 1.24754667282104, 1.08400869369507, 0.809762358665466, 
0.843399584293365)
解决方案

这不是Bug,是Plotly的全局属性继承导致的问题。当你在散点轨迹中设置marker属性后,后续的轨迹会默认继承这些样式,即使设置了mode="lines",Plotly仍然会应用继承的marker样式,导致拟合线出现标记。

解决方法很简单:在拟合线的add_trace中显式设置marker = list(opacity = 0)或者marker = NULL,覆盖继承的标记样式,确保拟合线只显示线条。

以下是完整的可运行代码示例:

library(plotly)

# 加载数据
d50 <- c(2.191258065, 4.371259836, 4.163834921, 4.299901482, 0.721296517, 
         0.806656288, 0.838300519, 2.123984458, 1.281270095, 1.271034705, 
         1.126324259, 2.158535202, 0.811873646, 0.997379781, 0.791658847, 
         0.865206465, 1.697433187, 1.306820106, 1.002612879, 0.932092299, 
         1.741705726, 1.546688167, 1.408641227, 0.922844563, 0.845056924, 
         0.997727831, 1.102327201, 1.120945941, 1.092093241, 1.182791188, 
         1.303034055, 1.200149608, 1.051766949, 0.917999368, 0.879761687, 
         0.25661637, 0.367374289, 0.451367428, 0.594794813, 0.412664784, 
         0.326505198, 0.343620551, 0.441396171, 0.475386025, 0.400242695, 
         0.374735446, 0.386719965, 0.312585107, 3.261716671, 3.292011578, 
         0.767037605, 1.651888689, 1.193666161, 1.934104802, 2.286671289, 
         1.43194983, 1.611017108)

r501b3grange1 <- c(1.09698951244354, 3.16094923019409, 2.79072117805481, 3.07730960845947, 
                   0.744107246398926, 1.22431325912476, 1.53918492794037, 1.52391850948334, 
                   0.751307666301727, 0.827914595603943, 1.34772574901581, 1.02658534049988, 
                   0.776823580265045, 0.762321770191193, 1.20416533946991, 0.986024975776672, 
                   1.5238938331604, 1.06575691699982, 1.04620349407196, 1.24733889102936, 
                   0.65419340133667, 0.705933749675751, 0.824617326259613, 0.979621589183807, 
                   1.15843141078949, 0.93364292383194, 0.818296492099762, 0.993945062160492, 
                   0.955138683319092, 0.853289723396301, 0.850569367408752, 0.850764274597168, 
                   0.663198113441467, 0.516988277435303, 0.539037942886353, 0.751503467559814, 
                   0.677738070487976, 0.792271614074707, 0.792271614074707, 0.627113521099091, 
                   0.584987282752991, 0.684955239295959, 0.77651035785675, 0.729957222938538, 
                   0.848376214504242, 0.74308979511261, 0.549346268177032, 0.6502605676651, 
                   2.18274283409119, 2.94228267669678, 0.680980920791626, 1.51205325126648, 
                   0.92967689037323, 1.24754667282104, 1.08400869369507, 0.809762358665466, 
                   0.843399584293365)

# 计算最佳拟合线
fit <- lm(r501b3grange1 ~ d50)
fit_x <- seq(min(d50), max(d50), length.out = 100)
fit_y <- predict(fit, newdata = data.frame(d50 = fit_x))

# 创建Plotly图表
plot_ly() %>%
  # 添加散点轨迹,设置标记大小
  add_trace(x = d50, y = r501b3grange1, 
            type = "scatter", mode = "markers",
            marker = list
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 08:38:12