如何使用散点图在雷达图中绘制多条线

时间:2020-09-29 23:32:12

标签: r plotly

我尝试过使用带有散点极性的分割跟踪,这似乎可以部分工作,但是无法绘制出所有10个变量的值。因此,我希望使用从X1到X10的值将每行(由“ ean”标识)绘制为自己的线。

library(tidyverse)
library(vroom)
library(plotly)

types <- rep(times = 10, list(
  col_integer(f = stats::runif,
              min = 1,
              max = 5)))

products = bind_cols(
  tibble(ean = sample.int(1e9, 25)),
  tibble(kategori = sample(c("kat1", "kat2", "kat3"), 25, replace = TRUE)),
  gen_tbl(25, 10, col_types = types)
  )

plot_ly(
    products,
    type = 'scatterpolar',
    mode = "lines+markers",
    r = ~X1,
    theta = ~"X1",
    split = ~ean
  )

如何在雷达图(X1-X10)中以情节方式绘制所有变量?通常我会选择X1:X10的列,但在这里我不能这样做(我认为这与〜用于选择变量)有关。

所以我希望结果看起来像这样(但是我只显示线条而不填充实心的多边形,所以我会有更多的产品)。因此,最后25种产品很多,但我将其连接起来,以便用户可以选择要显示的图表。

plotly radar chart with multiple items

1 个答案:

答案 0 :(得分:0)

以图形方式方便地使用长格式的数据-请参见?gather

请检查以下内容:

library(dplyr)
library(tidyr)
library(vroom)
library(plotly)

types <- rep(times = 10, list(
  col_integer(f = stats::runif,
              min = 1,
              max = 5)))

products = bind_cols(
  tibble(ean = sample.int(1e9, 25)),
  tibble(kategori = sample(c("kat1", "kat2", "kat3"), 25, replace = TRUE)),
  gen_tbl(25, 10, col_types = types)
)

products_long <- gather(products, "key", "value", -ean, -kategori)

plot_ly(
  products_long,
  type = 'scatterpolar',
  mode = "lines+markers",
  r = ~value,
  theta = ~key,
  split = ~ean
)

result