R Highcharts如何做堆叠点图

vhipe2zx  于 2023-06-23  发布在  Highcharts
关注(0)|答案(1)|浏览(138)

我写了这个ggplot代码:

`ggplot(dt, aes(x = 1, y = yearValueDecimal)) + geom_dotplot(binaxis='y', stackdir='up',stackratio=2, dotsize=0.5) + coord_flip()`

它生成了这个图:enter image description here
我尝试使用highcharter创建一个类似的图,但我不知道在其中堆叠点图的语法。有人能给我指个方向吗?
编辑:生成我的数据的代码:

sample(2016:2023,40,replace = TRUE,prob = NULL)
sample(2016:2023,40,replace = TRUE,prob = NULL) -> yearValue
sample(1:12,40,replace = TRUE,prob = NULL) -> monthValue
sample(1:28,40,replace = TRUE,prob = NULL) -> dayValue
((dayValue-1)/30) + ((monthValue-1)/12)+(yearValue) -> yearValueDecimal`

数据输出:

structure(list(yearValueDecimal = c(2022.21666666667, 2022.83333333333, 
2016.98333333333, 2021.43333333333, 2023.7, 2022.03333333333, 
2022.86666666667, 2022.46666666667, 2020.81666666667, 2020.1, 
2022.31666666667, 2023.93333333333, 2016.48333333333, 2016.83333333333, 
2018.81666666667, 2017.4, 2019.5, 2017.43333333333, 2019.58333333333, 
2019.7, 2022.3, 2020.25, 2023.41666666667, 2019.35, 2019.11666666667, 
2017.73333333333, 2019.78333333333, 2019.33333333333, 2022.86666666667, 
2020.25, 2021.26666666667, 2016.56666666667, 2016.53333333333, 
2023.83333333333, 2022.56666666667, 2021.85, 2018.3, 2022.66666666667, 
2019.68333333333, 2019.95)), row.names = c(NA, -40L), class = 
c("data.table", 
"data.frame"), .internal.selfref = <pointer: 0x000001b0dadf3320>)

当前highcharter代码:

dt%>%
hchart(type = 'scatter', hcaes(x = 1, y = 'yearValueDecimal'))%>%
hc_plotOptions(stacking = "normal")

enter image description here

izkcnapc

izkcnapc1#

我不是很熟悉{highcharter},但我不认为点图是一个内置的功能,所以最简单的方法是本质上建立一个散点图。其中一种方法是将年份数据装箱,计算该装箱中有多少值,然后从中创建点的坐标:

# count number of obs per bin (change breaks for more/less bins)
binned_dt <- dt |> 
  mutate(bin_years = cut(yearValueDecimal, breaks = 20)) |> 
  group_by(bin_years) |> 
  summarise(num = n())

# make coordinates for y value of scatter plot
plot_data <- binned_dt |> 
  uncount(num) |> 
  group_by(bin_years) |> 
  mutate(y = row_number()) |> 
  ungroup()

# plot
library(highcharter)
plot_data %>%
  hchart(type = 'scatter', hcaes(x = 'bin_years', y = 'y'))%>%
  hc_plotOptions(stacking = "normal")

这给出:

然后,您可以查看更改x轴上的标签(在使用highcharter绘制数据之前或之后)。

相关问题