【问题标题】:Ordering the stacking in a highcharts bar chart in R在R中的highcharts条形图中排序堆叠
【发布时间】:2019-07-22 12:37:25
【问题描述】:

我正在尝试制作堆叠条形图,其中堆叠的 de 值具有特定顺序。

我知道您可以通过订购系列产品来做到这一点。但我会一次添加所有系列,所以我不确定这会如何工作。

我已尝试对数据框本身进行排序,但这似乎没有任何作用。 我也读过关于索引的文章,但我无法让它发挥作用。

一个例子:

# create data frame
cat1 <- c('cat','dog','cat','bunny','dog','bunny')
cat2 <- c('brown','grey','grey','grey','brown','brown')
value <- c(15,80,85,36,20,64)

# Join the variables to create a data frame
df <- data.frame(cat1,cat2,value)
df

#create barchart
hchart(df, type = 'bar', hcaes( y = value, group=cat2, x = cat1)) %>%
  hc_plotOptions(series = list(stacking = "normal"))

这将创建一个条形图,其中第一个是灰色,第二个是棕色。但我想自己设置订单。这可能吗?

当然,我可以将我的数据框拆分为单独的数据集,但我也有图表,其中有许多需要堆叠的类别。我宁愿不单独添加所有这些。

【问题讨论】:

    标签: r highcharts bar-chart


    【解决方案1】:

    您可以在绘图前更改levels -

    > df <- within(df, cat2 <- factor(cat2, levels=c("grey","brown")))
    > hchart(df, type = 'bar', hcaes( y = value, group=cat2, x = cat1)) %>%
      hc_plotOptions(series = list(stacking = "normal"))
    

    【讨论】:

      【解决方案2】:

      您可以在系列中定义 index 属性。这里有这样的 JS 示例:

      series: [{
          name: 'First',
          data: [5, 6, 4],
          index: 0
        }, {
          name: 'Second',
          data: [1, 3, 2],
          index: 4
        }, {
          name: 'Third',
          data: [6, 7, 2],
          index: 1
        }, {
          name: 'Fourth',
          data: [11, 13, 12],
          index: 3
        }, {
          name: 'Fifth',
          data: [9, 9, 2],
          index: 2
        }]
      

      jsFiddle:https://jsfiddle.net/BlackLabel/uj7qmp3d 接口:https://api.highcharts.com/highcharts/series.bar.index

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多