Highcharts JS 的样式问题

Posted

技术标签:

【中文标题】Highcharts JS 的样式问题【英文标题】:Styling issues with Highcharts JS 【发布时间】:2015-05-08 16:38:31 【问题描述】:

我正在使用 Highcharts 制作折线图,并使其非常接近我需要的设计。我似乎无法让 xAxis 在边缘开始和结束。我不希望 yAxis 和第一条绘图线之间有任何空间。只需使用:

xAxis: 
    startOnTick: true,
    endOnTick: true

似乎没有做我需要的。我错过了什么吗?

我还需要 yAxis 不从底部开始或在顶部结束。我希望第一个刻度位于第二个位置,名称“收入”和“订单量”位于顶部,最后一个刻度位于下方一行。我似乎也无法让它们以与所有标签相同的方式对齐。 这是我现在的样子http://jsfiddle.net/kyu3eh6L/

这就是最终结果需要的样子。 http://postimg.org/image/y3otwee3d/

任何帮助将不胜感激。我似乎在他们的 API 中找不到我需要的东西。

【问题讨论】:

【参考方案1】:

您当前的状态和最终结果之间存在一些差异,但我将解决您提出的两个问题。第一:

我似乎无法让 xAxis 在边缘开始和结束

这有点奇怪,但这是我建议的解决方案,它专门适用于具有类别的 x 轴:

var categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'];

$('#container').highcharts(
    // ...
    xAxis: 
        categories: categories,
        min: 0.5,
        max: categories.length - 1.5,
        startOnTick: false,
        endOnTick: false
        // ...
    
);

你还说:

我希望第一个刻度位于第二个位置,名称“收入”和“订单量”位于顶部,最后一个刻度位于下方一行。

使用同一操作完成这两种操作的一种方法是使用formatter 作为标签。例如:

$('#container').highcharts(
    // ...
    yAxis: [
        // ...
        title: 
            text: 'Revenue ($)',
            enabled: false
        ,
        labels: 
            // ...
            formatter: function() 
                if(this.isLast) 
                    return this.axis.options.title.text;
                
                else if(!this.isFirst) 
                    return this.value+"k";
                
                return;
            
        
    ,
    //...
    ]
);

请参阅 this updated JSFiddle 了解这些更改的外观。

【讨论】:

【参考方案2】:

要在边缘开始和结束,只需将pointPlacement: 'on' 设置为plotOptions.series。要放置标题,请使用 x 和 y 选项。试试http://jsfiddle.net/kyu3eh6L/4/

【讨论】:

以上是关于Highcharts JS 的样式问题的主要内容,如果未能解决你的问题,请参考以下文章

2个highcharts源之间的Highcharts样式行为差异

Highcharts JS 的样式问题

位置刻度与数据相同 - highcharts

highcharts 柱状图 动态加载

highCharts 饼图动态加载

highcharts.js 简单使用