我想用R和Highcharter创建一个图,并在上面放置一个连接到两个点(而不仅仅是一个点)的注释.

这就是我try 的:

# Laden der Bibliothek
library(highcharter)

# Laden der Titanic-Daten aus dem 'datasets'-Paket
data <- datasets::Titanic

# Umstrukturierung der Daten für den Plot
data_long <- as.data.frame(as.table(data))
colnames(data_long) <- c("Class", "Sex", "Age", "Survived", "Count")
data_long$Count <- as.numeric(data_long$Count)

# Filtern der Daten für Erwachsene
data_long <- subset(data_long, Age == "Adult")

# Erstellen des gestapelten Balkendiagramms
hchart(data_long, "column", hcaes(x = Sex, y = Count, group = interaction(Survived, Class)), stack = TRUE) %>%
  hc_plotOptions(column = list(stacking = "percent"))%>%
hc_annotations(list(
  labels = list(
    list(
      point = list(x = 0.5, y = 60, xAxis = 0, yAxis = 0), # Zwischen den Bars
      text = "Differenz: 12%",
      style = list(fontSize = "11px") # Optional: Anpassen der Schriftgröße
    ) 
  )
))

结果:

result

预期结果: expected result

推荐答案

这是一个(黑客)选项,使用shape="connector"绘制连接线,使用allowOverlap=TRUE连接到第二个点使用透明标签:

library(highcharter)

# Erstellen des gestapelten Balkendiagramms
hchart(data_long, "column", hcaes(
  x = Sex, y = Count,
  group = interaction(Survived, Class)
), stack = TRUE) %>%
  hc_plotOptions(column = list(stacking = "percent")) |>
  hc_annotations(
    list(
      labelOptions = list(
        shape = "connector",
        allowOverlap = TRUE
      ),
      labels = list(
        list(
          point = list(
            x = 1,
            y = 35,
            xAxis = 0, yAxis = 0
          ),
          text = "Differenz: 12%",
          style = list(fontSize = "11px"),
          x = -130,
          y = -120
        ),
        list(
          point = list(
            x = 0,
            y = 65,
            xAxis = 0, yAxis = 0
          ),
          text = "Differenz: 12%",
          style = list(fontSize = "11px", color = "transparent"),
          x = 130,
          y = -15
        )
      )
    )
  )

enter image description here

R相关问答推荐

在R中使用自定义函数时如何删除该函数的一部分?

在ggplot Likert条中添加水平线

如何使用R中的dhrr函数将李克特量表的因子列从长转换为宽?

修改用R编写的用户定义函数

删除列表中存储的数据帧内和数据帧之间的重复行

当月份额减go 当月份额

如果某些列全部为NA,则更改列

如何使用ggplot对堆叠条形图进行嵌套排序?

多个模拟序列间的一种预测回归关系

如何使用tryCatch执行语句并忽略警告?

用约翰逊分布进行均值比较

哪一行和行和 Select 特定行,但是考虑到Nas

仅当后续值与特定值匹配时,才在列中回填Nas

R-找出存在其他变量的各种大小的所有组合

在ggplot2图表中通过端点连接点

位置_道奇在geom_point图中不躲避

将边列表转换为路径长度列表

如何将字符类对象中的数据转换为R中的字符串

如何在R中的两列以上使用联合(&U)?

如何捕获这个shiny 的、可扩展的react 性用户输入矩阵作为另一个react 性对象,以便进一步操作?