R plotly:如何连接 polar/radar 图表上的线条?
R plotly: How to connect lines on polar/radar chart?
我在 R 中用 plotly 创建了一个极坐标图,但我不想用颜色填充线之间的值。我找到了 python 库的 line_close
属性,但我在 R 中找不到等效项。
图表代码:
library(plotly)
p <- plot_ly(
type = 'scatterpolar',
mode = 'lines',
) %>%
add_trace(
mode = 'lines',
r = c(3, 0, 1),
theta = c('A','B','C'),
name = '1'
) %>%
add_trace(
mode = 'lines',
r = c(1, 2, 3),
theta = c('A','B','C'),
name = '2'
) %>%
layout(
polar = list(
radialaxis = list(
angle = 90,
visible = T,
range = c(0,3),
showline = F,
color = '#bfbfbf',
nticks = 4,
tickangle = 90
)
)
)
p
图表图片:
我仔细查看了 plotly::schema
,plotly
的 R 端口中似乎没有内置选项来执行此操作。
但是,像这样定义自己的 add_closed_trace
函数是微不足道的:
add_closed_trace <- function(p, r, theta, ...)
{
plotly::add_trace(p, r = c(r, r[1]), theta = c(theta, theta[1]), ...)
}
您可以将其用作 add_trace
的替代品,如下所示:
library(plotly)
p <- plot_ly(
type = 'scatterpolar',
mode = 'lines',
) %>%
add_closed_trace(
mode = 'lines',
r = c(3, 0, 1),
theta = c('A','B','C'),
name = '1'
) %>%
add_closed_trace(
mode = 'lines',
r = c(1, 2, 3),
theta = c('A','B','C'),
name = '2'
) %>%
layout(
polar = list(
radialaxis = list(
angle = 90,
visible = T,
range = c(0,3),
showline = F,
color = '#bfbfbf',
nticks = 4,
tickangle = 90
)
)
)
p
我在 R 中用 plotly 创建了一个极坐标图,但我不想用颜色填充线之间的值。我找到了 python 库的 line_close
属性,但我在 R 中找不到等效项。
图表代码:
library(plotly)
p <- plot_ly(
type = 'scatterpolar',
mode = 'lines',
) %>%
add_trace(
mode = 'lines',
r = c(3, 0, 1),
theta = c('A','B','C'),
name = '1'
) %>%
add_trace(
mode = 'lines',
r = c(1, 2, 3),
theta = c('A','B','C'),
name = '2'
) %>%
layout(
polar = list(
radialaxis = list(
angle = 90,
visible = T,
range = c(0,3),
showline = F,
color = '#bfbfbf',
nticks = 4,
tickangle = 90
)
)
)
p
图表图片:
我仔细查看了 plotly::schema
,plotly
的 R 端口中似乎没有内置选项来执行此操作。
但是,像这样定义自己的 add_closed_trace
函数是微不足道的:
add_closed_trace <- function(p, r, theta, ...)
{
plotly::add_trace(p, r = c(r, r[1]), theta = c(theta, theta[1]), ...)
}
您可以将其用作 add_trace
的替代品,如下所示:
library(plotly)
p <- plot_ly(
type = 'scatterpolar',
mode = 'lines',
) %>%
add_closed_trace(
mode = 'lines',
r = c(3, 0, 1),
theta = c('A','B','C'),
name = '1'
) %>%
add_closed_trace(
mode = 'lines',
r = c(1, 2, 3),
theta = c('A','B','C'),
name = '2'
) %>%
layout(
polar = list(
radialaxis = list(
angle = 90,
visible = T,
range = c(0,3),
showline = F,
color = '#bfbfbf',
nticks = 4,
tickangle = 90
)
)
)
p