jqPlot定制刻度标签

6

我有一些从0到55的X值数据,我希望将这些值以自定义文本形式显示在刻度标签中。理想情况下,我想指定一些回调函数,例如

function tickLabel(tickValue) {
    return "This is " + tickValue;
}

这是可能的吗?

2个回答

17

我已经找到了解决方案。

xaxis: {
  tickRenderer: $.jqplot.AxisTickRenderer,
  tickOptions: {
    formatter: function(format, value) { return "This is " + value; } 
  }
}

1
这似乎是最好的通用答案,但我发现有两个角落情况需要注意:(1)它可能无法与DateAxisRenderer一起使用;(2)如果您需要输出特定于页面上多个图的上下文的标签,则格式化程序将不具备此上下文。在任何这些非标准情况下,我建议通过替换或包装调用来猴子补丁jQuery.jqplot.DateTickFormatter或jQuery.jqplot.CanvasAxisTickRenderer.prototype.draw,具体取决于您的需求。 - sdupton

2

可以使用以下方式:

var line1 = [['This is '.$value, $value], ...]

并将您的图表命名为:
var plot1 = $.jqplot('chart1', [line1], {
    title: 'Title of your plot',
    series:[{renderer:$.jqplot.BarRenderer}],
    axesDefaults: {
        tickRenderer: $.jqplot.CanvasAxisTickRenderer ,
        tickOptions: {
          angle: -30,
          fontSize: '10pt'
        }
    },
    axes: {
      xaxis: {
        renderer: $.jqplot.CategoryAxisRenderer
      }
    }
  });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接