r - R plotly:如何在极坐标/雷达图上连接线?
问题描述
我正在用 plotly 在 R 中创建一个极坐标图,但我不希望线条之间的值用颜色填充。我找到了line_close
python 库的属性,但在 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
.
但是,像这样定义自己的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
推荐阅读
- python - LSTM 返回带有 Sigmoid 激活的概率序列
- java - 为什么在迁移到 Java 11 后,标题“Accept: application/xml”在 Spring Boot 中不起作用?
- apache-kafka - Debezium 能否确保同一交易中的所有事件同时发布?
- cucumber - 如何从 cypress gherkin 设置中的场景大纲中获取场景名称?
- compiler-construction - LLVM 如何进行活性分析?
- javascript - 创建大小为 100% 的容器宽度的未知大小图像行
- c - 为什么我的 C mpi 程序中没有字符串?
- java - 您如何处理 JLabel 类?它说,“JLabel 不是一个声明”的错误
- azure - Azure Blob 存储 Spark
- javascript - Sweet Alert 2,自定义按钮