嗨,感謝您閱讀我。我試圖用自定義調色板顏色生成一個圖,但是當我使用極坐標系統時出現錯誤,我不知道為什么會這樣。任何人都知道如何解決這個問題?非常感謝您的幫助。
代碼如下:
library(echarts4r)
library(dplyr)
library(ggplot2)
df <- data.frame(
x = seq(500),
y = rnorm(50, 10, 3),
z = rnorm(50, 11, 2),
w = rnorm(50, 9, 2)
)
df |>
head(90) |>
mutate(
color = after_scale(colorspace::lighten(x,0.4, space = "HLS") )
) |>
e_charts(x) |>
e_polar(show = F) |>
e_angle_axis(show = F) |>
e_radius_axis(x) |>
e_bar(y, coord_system = "polar", barWidth = 1) |>
e_scatter(y, coord_system = "polar", symbol_size = 3) |>
e_theme("auritus") |>
e_tooltip(trigger = "item") |>
e_add_nested("itemStyle", color)
uj5u.com熱心網友回復:
這對我來說似乎是一個錯誤。查看源代碼后,問題是如果極坐標圖e_add_nested回傳一個資料串列,其中包含該值的元素未命名。我建議在包網站上提出問題。
但是,至少對于您的情況,我能夠創建一個小函式,通過命名包含該值的元素來解決問題。
注意:我放棄了ggplot2::after_scalewhich 恕我直言不需要并且在使用echarts4r. 但當然我可能是錯的。
library(echarts4r)
library(dplyr)
set.seed(123)
df <- data.frame(
x = seq(500),
y = rnorm(50, 10, 3),
z = rnorm(50, 11, 2),
w = rnorm(50, 9, 2)
)
fix_add_nested <- function(e) {
e$x$opts$series[[1]]$data <- lapply(
e$x$opts$series[[1]]$data,
function(x) { names(x) <- c("value", "itemStyle"); x }
)
e
}
df |>
head(90) |>
mutate(
color = colorspace::lighten(x, 0.4, space = "HLS")
) |>
e_charts(x) |>
e_polar(show = F) |>
e_angle_axis(show = F) |>
e_radius_axis(x) |>
e_bar(y, coord_system = "polar", barWidth = 1) |>
e_scatter(y, coord_system = "polar", symbol_size = 3) |>
e_theme("auritus") |>
e_tooltip(trigger = "item") |>
e_add_nested("itemStyle", color) |>
fix_add_nested()

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/529907.html
