r - Highchart 修正瀑布图

标签 r r-highcharter

我正在尝试在 R markdown 中创建一个(非传统)瀑布图,但在获得我想要的样式时遇到了一些困难。

这是当前的代码:

library(highcharter)


df = data.frame(Name = c("Start level","B","C","D", "E", "F", "G", "H","End level"),
                Value = c(900,-10,10,-10,10, -10, 10, -20, 880),
                Type = c("Start", "Reduction", "Rise", "Reduction", "Rise", "Reduction", "Rise", "Reduction", "End"))


hchart(df, type = "waterfall", hcaes(x=Name, y = Value, group="Type"), color = c("blue", "red", "black", "yellow")) 

我的目标是最左边的“开始水平”列,最右边的“结束水平”列,以及驱动两个图表之间颜色编码的变化的组件(如“上升”)或图例中的“减少”),条形的瀑布部分与“起始级别”的顶部对齐。我该如何解决这个问题?

最佳答案

您将绘图按类型分组,因此这意味着瀑布效应仅存在于每个组内,并为每个组创建一个单独的瀑布。

我猜测您希望瀑布贯穿情节的各个方面。这意味着 group 需要消失。由于颜色不再由组分配,因此需要更改。

当按点分配颜色时,您还需要colorByPoint。为了实现此目的,colorcolorByPoint 最好在 hc_plotOptions 中使用。

此外,您需要定义最后一个值是 isSum,以便它不会将该值添加到图表中。

要获取您在 df$Name 中定义的顺序,可以在 `hc_xAxis 中定义它。

hchart(df, type = "waterfall", # removed group, color from hchart, added isSum
       hcaes(x = Name, y = Value, isSum = c(rep(F, nrow(df) - 1), T))) %>% 
  hc_xAxis(categories = df$Name) %>%              # set bar order
  hc_plotOptions(series = list(colorByPoint = T,  # specify w/in series colors
                               colors = c("blue", rep(c("red", "black"), 3), 
                                          "red", "yellow")))

enter image description here

关于r - Highchart 修正瀑布图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77014451/

相关文章:

r - 如何使用 R 中的 data.table 查找股票的月返回率?

r - ggplot2 : altering x and y grid lines 中的主题操作

r - str_split_fixed 从右到左

r - highcharter 中是否有相当于 geom_ribbon 的东西?

r - 无法让 Highcharter 绘制时间序列

r - 如何用highcharter建立组织结构图

r - 如何将我的列表列表转换为可用的 data.frame(用于打印表格)?

R highcharter -- 将图表保存到外部 iframe 的 html 文件吗?

bash - 在服务器上调用 R 以从主机上的 R session 中提取数据?