情节酒吧和折线图

elc*_*ato 4 r plotly

我想用曲线绘制一个条形图和R中的折线图.

我的第一次尝试是

p <- plot_ly(
  x = c(1,2,3,4,5),
  y = c(1,2,1.5,3,2),
  type='scatter',
  mode='lines',
  line = list(color = 'black')
)
add_trace(
  p,
  x = c(1,2,3,4,5),
  y = c(0.5,0.7,0.6,0.9,0.8),
  type='bar',
  marker = list(color = 'red')
)
Run Code Online (Sandbox Code Playgroud)

结果是对的,但我得到以下警告:

警告消息:以下属性不存在:'mode','line'

我猜因为条形图add_trace()无法处理函数中的参数linemode参数plot_ly().所以我改变了顺序:

p <- plot_ly(
  x = c(1,2,3,4,5),
  y = c(0.5,0.7,0.6,0.9,0.8),
  type='bar',
  marker = list(color = 'red')
)
add_trace(
  p,
  x = c(1,2,3,4,5),
  y = c(1,2,1.5,3,2),
  type='scatter',
  mode='lines',
  line = list(color = 'black')
)
Run Code Online (Sandbox Code Playgroud)

这次我得到以下消息,黑色折线图上显示红色标记.

已指定标记对象,但标记不在模式中添加标记...

我怎样才能解决这个问题?(我正在使用R封装4.1.0)

Whs*_*eve 5

我正在运行4.0.1,但如果我添加mode='lines+markers'而不是只是mode='lines'错误消息消失了.

--edit添加完整代码 -

对于懒惰(像我一样),这里是我的最终完整代码:

p <- plot_ly(x = c(1,2,3,4,5),
             y = c(0.5,0.7,0.6,0.9,0.8),
             type='bar',
             marker = list(color = 'red', opacity=0)
     )

add_trace(p,
          x = c(1,2,3,4,5),
          y = c(1,2,1.5,3,2),
          type='scatter',
          mode='lines+markers',
          line = list(color = 'black')
     )
Run Code Online (Sandbox Code Playgroud)

  • 您只需指定将第一条跟踪中的标记的不透明度设置为零“marker = list(color = 'red', opacity=0)” (2认同)