2010-10-06 58 views
4

如何获得Flot图形轴上的非数值?jQuery Flot图形的基于字符串的轴?

例如,在Y轴我想有(借口蹩脚图表):

/* 
    A| 
    B|   _/*----------* 
    C|  _/    \ 
    D|  _/     \ 
    E| _/     \ 
    F| /      \ 
    G| *       * 
     -------------------------------- 
     100  200  300 400 

数据I将提供将看起来像这样: VAR数据= [[100,' G'],[200,'B'],[300,'B'],[400,'G']];

回答

4

您可以输入函数tickFormatter来标记轴。假设G = 0A = 6

var data = [[100, 0], [200, 5], [300, 5], [400, 0]]; 

$.plot($("#placeholder"), [data], { 
    yaxis: { tickFormatter: function (v, axis) { 
     return "GFEDCBA".charAt(v); 
     } 
    } 
});

Flot example

charAt该功能简单地取y轴的值(0,5,5,0),从对应于该位置的字符串返回信。

+0

太棒了!非常感谢! – Bill 2010-10-08 17:22:36

+0

没问题。一定要接受答案:) – Alec 2010-10-08 18:23:24

6

你也可以用一个刻度值文本关联,像这样:关于做

ticks: [[0, "G"], [1, "F"], [2, "E"], [3, "D"]], // so on 

的好处这种方式是你可以从你的AJAX调用运行时间完全控制它(假设你传下使用JSON进行轴配置),而当前发布的解决方案需要硬编码功能。