plotly-r:在 add_trace() 中指定标记的大小会降低标记的不透明度
plotly-r: specifying size of marker in add_trace() reduces opacity of markers
我在 R 中使用 plotly(R 包版本 4.9.2.1)。我发现当我在 add_trace()
中使用 size
参数时,轨迹中标记的不透明度会降低。这似乎是一个错误。是——还是我没听懂 add_trace()
?
这是一个最小的例子:
library(plotly)
myPlot <- plot_ly(data = data.frame(x = 1, y = 1, yLo = 0.5, yHi = 1.5))
myPlot <- add_trace(
myPlot,
x = ~x, y = ~y,
type = "scatter", mode = "markers",
size = 1000,
marker = list(
# size = 250,
# opacity = 1,
color = "D0D0D0",
line = list(color = "D0D0D0")))
add_segments(
myPlot,
x = ~x, xend = ~x, y = ~yLo, yend = ~yHi,
color = I("#D0D0D0"))
代码生成此图像:
您可以看到点和线的不透明度不同,尽管代码中没有任何内容表明它们应该不同。 (我放大了这个点,以便更容易看到这种差异。)
至少有三种方法可以解决问题:
- 注释掉
size = 1000
.
- 在
marker
参数中取消注释 size = 250
。
- 在
marker
参数中取消注释 opacity = 1
。
如果我执行其中任何一个,点将完全不透明,就像线一样。
请注意,不透明度的这种差异似乎不是点和线具有不同默认值的问题。如果是这样的话,我们将无法通过操纵 size
个参数来解决问题。
此处演示的默认行为是错误吗?
不,这是预期的,我们不认为这是一个错误:通常,调整大小标记会导致更多的遮挡,因此默认情况下,在使用大小时会降低不透明度。如果不需要,最好的办法是明确地将不透明度强制回 1。
我在 R 中使用 plotly(R 包版本 4.9.2.1)。我发现当我在 add_trace()
中使用 size
参数时,轨迹中标记的不透明度会降低。这似乎是一个错误。是——还是我没听懂 add_trace()
?
这是一个最小的例子:
library(plotly)
myPlot <- plot_ly(data = data.frame(x = 1, y = 1, yLo = 0.5, yHi = 1.5))
myPlot <- add_trace(
myPlot,
x = ~x, y = ~y,
type = "scatter", mode = "markers",
size = 1000,
marker = list(
# size = 250,
# opacity = 1,
color = "D0D0D0",
line = list(color = "D0D0D0")))
add_segments(
myPlot,
x = ~x, xend = ~x, y = ~yLo, yend = ~yHi,
color = I("#D0D0D0"))
代码生成此图像:
您可以看到点和线的不透明度不同,尽管代码中没有任何内容表明它们应该不同。 (我放大了这个点,以便更容易看到这种差异。)
至少有三种方法可以解决问题:
- 注释掉
size = 1000
. - 在
marker
参数中取消注释size = 250
。 - 在
marker
参数中取消注释opacity = 1
。
如果我执行其中任何一个,点将完全不透明,就像线一样。
请注意,不透明度的这种差异似乎不是点和线具有不同默认值的问题。如果是这样的话,我们将无法通过操纵 size
个参数来解决问题。
此处演示的默认行为是错误吗?
不,这是预期的,我们不认为这是一个错误:通常,调整大小标记会导致更多的遮挡,因此默认情况下,在使用大小时会降低不透明度。如果不需要,最好的办法是明确地将不透明度强制回 1。