[英]How to show labels on the left side of the vertical line in a parallel coordinates plot created with echarts4r?
我知道以下代码会产生以下情节
library('echarts4r')
dat <- structure(list(
labels = c("string4",
"string3",
"string2",
"string1"),
quantity = c(19L,
10L,
15L,
20L)),
row.names = 4:1,
class = "data.frame")
dat <- dat[order(dat$labels, decreasing = TRUE),]
dat |>
e_charts(y = labels, reorder = FALSE) |>
e_parallel(labels, quantity, opts = list(smooth = TRUE))
我希望这些标签(蓝色箭头所指的标签)显示在垂直线的左侧而不是右侧。 我怎样才能将它们移到左侧?
正如@socialscientist 在其回答中所建议的那样,我已经查看了文档,并且我尝试了以下方法但无济于事。
以下不会引发错误,但不会移动标签。
df <- data.frame(
labels = c("string4", "string3", "string2", "string1"),
column2 = c(19L, 10L, 15L, 20L))
df |>
e_charts(y = labels) |>
e_labels(position = 'left') |>
e_parallel(labels, column2)
以下引发错误。
df <- data.frame(
labels = c("string4", "string3", "string2", "string1"),
column2 = c(19L, 10L, 15L, 20L))
df |>
e_charts(y = labels) |>
e_parallel(labels, column2) |>
e_labels(position = 'left')
以下不会引发错误,但不会移动标签。
df <- data.frame(
labels = c("string4", "string3", "string2", "string1"),
column2 = c(19L, 10L, 15L, 20L))
df |>
e_charts(y = labels) |>
e_labels(offset = c(123, 123)) |>
e_parallel(labels, column2)
以下不会引发错误,但不会移动标签。
df <- data.frame(
labels = c("string4", "string3", "string2", "string1"),
column2 = c(19L, 10L, 15L, 20L))
df |>
e_charts(y = labels) |>
e_labels(position = 'insideRight', distance = 123) |>
e_parallel(labels, column2)
如果您查看echarts4r
的文档,您将看到e_labels()
的文档。
您可以将图形传递给e_labels()
,然后使用position
、 offset
和distance
arguments 将它们调整到您想要的位置。 position 参数的完整文档可在此处找到,其他 arguments 也可在此处找到。
我找不到一种有效的方法来将必要的输入提供给e_parallel
。 但是,您可以事后更改它。
我使用此函数来翻转axisTick.length
和axisLabel.margin
以及parallelAxis
的axisLabel.align
的默认值(仅限左侧)。
fixLabs <- function(plt) {
plt$x$opts$parallelAxis[[1]]$axisTick <- list(length = -5) # default is +5
plt$x$opts$parallelAxis[[1]]$axisLabel <- list(margin = -8, # default is +8
align = "right")
plt
}
这就是您使用它的方式。
dat |>
e_charts(y = labels, reorder = FALSE) |>
e_parallel(labels, quantity,
opts = list(smooth = TRUE)) %>%
fixLabs()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.