【问题标题】:Highcharts use series labels as x-axis categoriesHighcharts 使用系列标签作为 x 轴类别
【发布时间】:2014-06-18 15:57:22
【问题描述】:

我有一个简单的 1 系列 highchart 条形图,我在其中使用 json 加载数据。在my fiddle中,为了简单起见,我只是将json数据定义为静态变量,但前提是一样的。

json 数据构成了所有系列属性的基础,包括名称,并且格式如下,这与我看到的许多示例一致:

var json = [{
    "name": "Currency Allocation",
    "data": [
        ["gbp", 0.7053985],
        ["usd", 0.17856322],
        ["eur", 0.06901525],
        ["chf", 0.00135777],
        ["jpy", 0.00815169],
        ["em_asia", 0.02821377],
        ["other", 0.00982446]
    ]
}];

我希望标签(每个 data 子数组中的第一个元素)成为图表的 x 轴类别。但是,我似乎必须在cht.xAxis.categories 下单独定义 x 轴类别。有没有办法避免这样做而只使用我数据中的类别?

如果我排除 xAxis.categories 属性,图表将仅在 x 轴上绘制数字

【问题讨论】:

    标签: javascript jquery json highcharts


    【解决方案1】:

    您可以在 chart.events.load 调用中执行此操作并循环通过 series[0].data 值。既然您说每个图表只有一个系列,我也假设您也只有一个 xAxis。你可以像这样循环遍历你的数据:

    var seriesData = this.series[0].data;
    var tCategories = [];
    for (i = 0; i < seriesData.length; i++) {
        tCategories.push(seriesData[i].name);
    }
    this.xAxis[0].setCategories(tCategories);
    

    直播demo.

    不太复杂的方法是将您的xAxis.type 定义为'category'

    "xAxis": {
        "type": "category"
    },
    

    直播demo.

    【讨论】:

    • 您回答的第二部分正是我所追求的。在 API 文档中找不到。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    相关资源
    最近更新 更多