Установка двухосных меток для графиков ошибок в старших графиках с использованием старшего индикатора в R - PullRequest
1 голос
/ 30 апреля 2019

Я хочу создать график, состоящий из точечной диаграммы и горизонтальной полосы ошибок в верхних диаграммах, используя пакет highcharter в R. Я надеюсь, что на графике будут две метки по оси Y, где левая сторона покажет имена каждой панели ошибок, а справа будет значение строк ошибок.

Исходя из здесь и здесь , я знаю, что возможно создать метку с двумя осями для оси Y. Однако для того, чтобы полосы ошибок были горизонтальными, мне нужно инвертировать / перевернуть оси (полосы ошибок в старших диаграммах вертикальные). По этой причине мне нужно иметь двойные метки X-axis и затем переворачивать координаты.

Я включил имеющийся у меня код, который создает точечную диаграмму и горизонтальную полосу ошибок, а также имеет имена слева.

Спасибо!

# load pacakge ---------------
if(!require(tidyverse)) {install.packages("tidyverse"); library(tidyverse)}
if(!require(magrittr)) {install.packages("magrittr"); library(magrittr)}
if(!require(highcharter)) {install.packages("highcharter"); library(highcharter)}

# sample data
dd <- read.table(textConnection("Abbreviation   Adjustment  Effect  x_dummy lwr_final   med_final   upr_final
PBO A   AA  0   7.37    12.7    18.82
PBO A   BB  2   1.77    9.91    40.32
PBO B   AA  4   7.37    12.7    18.82
PBO B   BB  6   1.77    9.91    40.32
ABP A   AA  1   3.07    4.63    6.89
ABP A   BB  3   0.26    1.72    7.35
ABP B   AA  5   3.07    4.63    6.89
ABP B   BB  7   0.26    1.72    7.35
"), header = T)

# create group column
dd %<>%
  mutate(grp1 = paste0(Adjustment, " (", Effect, ")"))

# category label for plot from 
cat_lab <- dd %>%
  dplyr::group_by(name = Abbreviation) %>%
  dplyr::do(categories = array(.$grp1)) %>%
  highcharter::list_parse()

# creating plot
pp <- highcharter::hchart(dd, "errorbar",
                         highcharter::hcaes(x = x_dummy, low = lwr_final, high = upr_final),
                         color = "black", whiskerLength = 5) %>%
  highcharter::hc_add_series(dd, "scatter",
                             highcharter::hcaes(x = x_dummy, y = med_final),
                             marker = list(radius = 2),
                             color = "red") %>%
  highcharter::hc_xAxis(categories = cat_lab) %>%
  # flip coordinates
  highcharter::hc_chart(inverted = TRUE)
pp

...