【问题标题】:Current month tick labels in week format and other tick labels in month/year format(Highcharts)周格式的当前月份刻度标签和月/年格式的其他刻度标签(Highcharts)
【发布时间】:2017-07-12 05:55:52
【问题描述】:

我想在 x 轴上创建一个具有不同刻度标签格式的图表 属于当前月份的数据(x轴标签)应以周格式显示,其他刻度标签应以月格式显示。

请查看图片以清楚了解它。 如果问题没有被正确理解,请告诉我。

任何帮助都非常感谢Current month tick labels in week format

【问题讨论】:

  • 编辑:我尝试使用 xaxis.labels.formatter 回调格式化刻度标签,但我只能格式化最后一个刻度标签。检查小提琴 - jsfiddle.net/PurvaEQ/rzn9v7um/4 我不想硬编码数据,如这个小提琴所示 - jsfiddle.net/kkulig/fLs9j2xj 提供给 highcharts 的数据将采用一种格式,例如日期,但对于当前日期,刻度标签应采用周格式,其他刻度可以采用月份格式。
  • 在标签格式化程序中,您应该检查当前类别月份是否与现在的月份相同。您需要将类别解析为日期并比较月份 - 参见示例jsfiddle.net/zkc5pmuh
  • @morganfree:谢谢。我得到了你的解决方案。但是要获得通用解决方案,我需要了解数据的格式,然后相应地对其进行解析以从中获得一个月,对吗?此外,在我的小提琴中,最后两个日期值如下 - “06/25/2013”​​、“06/25/2012”,即它们属于同一个月但不是同一年。所以可能我也必须检查年份。纠正我,如果我错了。
  • 是的,您需要知道您的数据看起来如何才能正确解析日期。如果您想更改当年月份的标签,那么 - 是的 - 您还应该检查年份。
  • 非常感谢@morganfree。我得到了我的解决方案。但是有一件事是 highcharts 没有为这种情况提供任何解决方案。你同意吗?

标签: highcharts highstock axis-labels


【解决方案1】:

您可以按 [1] 月和 [2] 按周制作两组数据,然后将这两个数据集合并为一个。并相应地设置标签。

例子:

$monthsDataset = [300,200,180];

$weeksDataset = [100,80,110,90];

//This will be the chart dataset
$dataset = array_merge($monthsDataset, $weeksDataset);

//This will be the chart label
$labels = ['Month 3','Month 2','Month 1','Week 4','Week 3','Week 2','Week 1'];

我想你明白了。如果您不清楚,请告诉我。

【讨论】:

    猜你喜欢
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    相关资源
    最近更新 更多