代码之家  ›  专栏  ›  技术社区  ›  Kevin

HighCharter:箱线图异常值不在正确的X轴点上

  •  2
  • Kevin  · 技术社区  · 6 年前

    有一个数据集,我想在 highcharter>中创建一个带有离群值的方框图。箱线图工作正常,但我似乎无法在正确的 x轴上得到异常值;出于某种原因,它们都在位置0上分组。方框图是正确的,因此我不确定异常值为何不遵循方框图。

    以下是我的代码:

    library(highcharter)
    
    引号<-c(12,15,16,12,14,19,13,12,17,15,14,18,22,25,29,30,14,2,5,4)
    其他<-C(3035361218353941424345313735323134363215)
    商店<-C(2,1,5,4,6,9,5,4,7,8,1,5,4,3,5,4,1,5,15,19)
    PN<-C(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
    
    DAT<-数据帧(报价、其他、商店、PN)
    
    海图()%>%
    hc_添加_系列_箱线图(dat$quote,dat$pn,name=“Quote Hold Time”,color=“ff8888”,pointstart=0)%>%
    hc_添加_系列_箱线图(dat$other,dat$pn,name=“other hold time”,color=“e5a919”,pointstart=1)%>%
    hc_添加_系列_箱线图(dat$shop,dat$pn,name=“shop time”,color=“51c1bc”,pointstart=2)%>%
    hc_xaxis(categories=c(“Quote Hold”,“Other Hold”,“Shop Time”),labels=list(enabled=true))%>%
    hc_yaxis(labels=list(format=“value days”),min=0)%>%
    hc_plotations(series=list(grouping=false))。
    

    下面是问题的图片。所有scatter(outliers)都位于x轴上的Quote Hold Category下。

    .x-axis位置;由于某种原因,它们都在位置0上分组。方框图是正确的,所以我不确定为什么异常值不遵循方框图。

    以下是我的代码:

    library (highcharter)
    
    Quote <- c(12,15,16,12,14,19,13,12,17,15,14,18,22,25,29,30,14,2,5,4)
    Other <- c(30,35,36,12,18,35,39,41,42,43,45,31,37,35,32,31,34,36,32,15)
    Shop <- c(2,1,5,4,6,9,5,4,7,8,1,5,4,3,5,4,1,5,15,19)
    PN <- c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
    
    Dat <- data.frame(Quote,Other,Shop, PN)
    
    highchart() %>%
      hc_add_series_boxplot(Dat$Quote, Dat$PN, name = "Quote Hold Time", color = "#FF8888", pointStart = 0) %>%
      hc_add_series_boxplot(Dat$Other, Dat$PN, name = "Other Hold Time", color = "#E5A919", pointStart = 1) %>%
      hc_add_series_boxplot(Dat$Shop, Dat$PN, name = "Shop Time", color = "#51C1BC", pointStart = 2) %>%
      hc_xAxis(categories = c("Quote Hold","Other Hold","Shop Time"), labels = list(enabled = TRUE)) %>%
      hc_yAxis(labels = list(format = "{value} days"), min = 0) %>%
      hc_plotOptions(series = list(grouping = FALSE))
    

    下面是问题的图片。所有的scatter (outliers)位于X轴的“报价保留”类别下。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Kevin    6 年前

    我发现它做了一些数据操作,所以所有的数据都在一个系列中。我不知道如何使异常值与给定x列中的箱线图具有相同的颜色,但是将它们全部转换为相同的阴影也可以。

    library (highcharter)
    
    Quote <- c(12,15,16,12,14,19,13,12,17,15,14,18,22,25,29,30,14,2,5,4)
    Other <- c(30,35,36,12,18,35,39,41,42,43,45,31,37,35,32,31,34,36,32,15)
    Shop <- c(2,1,5,4,6,9,5,4,7,8,1,5,4,3,5,4,1,5,15,19)
    PN <- c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
    
    Dat <- data.frame(Quote,Other,Shop, PN)
    
    Dat$QuoteType <- rep("Quote",nrow(Dat))
    Dat$OtherType <- rep("Other",nrow(Dat))
    Dat$ShopType <- rep("Shop",nrow(Dat))
    
    Dat1 <- Dat[,c("Quote","QuoteType")]
    colnames(Dat1) <- c("Value","Type")
    Dat2 <- Dat[,c("Other","OtherType")]
    colnames(Dat2) <- c("Value","Type")
    Dat3 <- Dat[,c("Shop","ShopType")]
    colnames(Dat3) <- c("Value","Type")
    
    DatComb <- rbind(Dat1,Dat2,Dat3)
    
    highchart() %>%
      hc_add_series_boxplot(DatComb$Value, DatComb$Type, colors = c("#FF8888","#E5A919","#51C1BC"), name = "Test") %>%
      hc_yAxis(labels = list(format = "{value} days"), min = 0) %>%
      hc_plotOptions(boxplot = list(colorByPoint = TRUE), scatter = list(color = c("#A6BBC8")))