首页 > 解决方案 > r plotly 中的多个轴 - 仅绘制最后一个轴

问题描述

当我尝试在不同的轴上绘制多条轨迹时,只显示最后一条。

首先让我们假设我把所有东西都画在一个轴上:

temp <- data.frame(x = c('a','b','c','d','e'),
 a = c(1,2,3,4,5),
 b = c(10,20,30,40,50),
 c = c(.1,.2,.3,.4,.5))
 p = plot_ly()
 for(l in c('a','b','c')){
     x = temp[,'x']
     y = temp[, l]
     p <- p %>%
         add_trace(x = x, y = y)
    }

我有什么

问题是大数字压倒小数字,您无法比较绿条。所以我决定使用不同的轴,如下所示

p = plot_ly()
i=0
for(l in c('a','b','c')){
    i=i+1
    x = temp[,'x']
    y = temp[, l]
    p <- p %>%
        add_trace(x = x, y = y, yaxis = paste('y',i,sep=''))
    }

我有什么

如您所见,只有最后一个斧头绘制的痕迹。叠加不是问题。在下图中,我禁用了 trace2,这次没有绘制任何内容。

没有绘制任何内容

我知道布局可能是一个问题,我尝试了许多不同的设置方法,但没有任何效果。我将在应用程序中使用它,用户可以在其中选择字段(也是动态生成的),这些字段将绘制在图表上。对我来说至关重要的是,该解决方案不能假设对任何字段名称进行硬编码。

标签: rplotlyaxes

解决方案


推荐阅读