Plotly无法显示线条。

7

我正在使用plotly将一个数据集可视化为可在仪表板中的shiny应用程序中使用的交互式图。我使用plotly软件包,因为它似乎非常适合我做这样的事情。我想创建具有线和标记的图。当尝试使用以下代码进行跟踪时,我只得到了标记,没有它们之间的线。

plot_ly(cube_eduexpgdp, x = ~year) %>% 
  add_trace(y = ~expenditure_gdp, mode = "lines+markers",
            color = ~country_name, line = list(shape = "linear")) %>%
  layout(title = "Government expenditures as percentage of GDP", 
          yaxis = list(title = "Expenditures (%)"), 
          xaxis = list(title = "Year"))

Plotly的教程建议使用以下代码进行操作。当我使用此代码时,画布为空,但在悬停时会显示分组数据点的值。

plot_ly(cube_eduexpgdp, x = ~year, y = ~expenditure_gdp, 
        color = ~country_name) %>%
  add_lines()  `

有人能帮我吗?非常感谢!


你能提供一个可重现的例子吗? - MLavoie
3个回答

16

我遇到了同样的错误,发现是由于尝试绘制分组数据框所引起的,因此需要先使用 ungroup()。可以在这里找到更多信息:R - plotly invisible lines


4

没有可重现的例子,我只能猜测,但这可能是由于继承和/或plotly默认值引起的。下面的代码是否有帮助?

plot_ly(cube_eduexpgdp, x = ~year, type = 'scatter', mode = 'markers') %>% 
  add_trace(y = cube_eduexpgdp[['expenditure_gdp']], mode = "lines+markers",
            color = cube_eduexpgdp[['country_name']], line = list(shape = "linear"), inherit = FALSE) %>%
  layout(title = "Government expenditures as percentage of GDP", 
          yaxis = list(title = "Expenditures (%)"), 
          xaxis = list(title = "Year"))

2
尝试将add_trace更改为:mode='markers'
我遇到了类似的问题——图例正确地显示了线条和标记,但绘图仅显示了标记。在疑难解答后,从'lines+markers'换成简单的'markers'实际上让线条出现了。线条也接受了trace中提供的list()参数。

澄清一下:这似乎是针对 mode='markers' 的一种解决方法。当您这样做时,会收到一个警告:“已指定一条线对象,但没有在模式中找到 lines。正在将 lines 添加到模式中...”然而,它确实完成了任务。 - TTS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接