jqPlot,Y轴刻度线的字符名称

3

这是我在stackoverflow上自己提出的第一个问题,它是一个已经帮助了我很多次的网站。请谅解 :)

我遇到了jqPlot的问题,看起来非常简单,但实际上并不是。

我想要在Y轴上给静态字符名称(刻度线)。 Y轴值来自Y轴上的实际高度。我想创建像“值1”,“值2”,“值3”,“值4”,“值5”这样的名称,而不是(例如)1.5、3.0、4.5、7.0、100.0 ...

使用jqPlot配置单独完成是否可能?我没有看到这样的选项,但也许有一个选项,我会感到羞愧: )。

预先感谢任何帮助。

(编辑)这是我使用的完整代码:

var plot2 = $.jqplot('chart2', [line_oczekiwana_srednia, line_sd_plus_1, line_sd_plus_2, line_sd_plus_3, line_sd_plus_4, line_sd_minus_1, line_sd_minus_2, line_sd_minus_3, line_sd_minus_4, line1, line_WEST4, ], {
    animate: true,
    title:'OLYMPUS LEVEL 1 0029 : Kontrola biochemii. Typ materiału: Surowica', 
    axes:{
      xaxis:{
        renderer:$.jqplot.DateAxisRenderer,
        tickOptions:{ 
          formatString:'%#d-%m-%y %#H:%M',
          angle: -30,
        },
        tickRenderer:$.jqplot.CanvasAxisTickRenderer,
        label:'Zakres czasu kontroli', 
        labelOptions:{
          fontFamily:'Helvetica',
          fontSize: '14pt'
        },
        labelRenderer: $.jqplot.CanvasAxisLabelRenderer
      },           
      yaxis:{
        numberTicks: 9,
        ticks:[3.6284,3.6863,3.7442,3.8021,3.8600,3.9179,3.9758,4.0337,4.0916],
        renderer:$.jqplot.LogAxisRenderer,
        tickOptions:{
          showGridline: false,
          **formatString:'SDx:%.1f',**
          labelPosition: 'middle', 
          angle:-0,
        },
        tickRenderer:$.jqplot.CanvasAxisTickRenderer,
        labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
        labelOptions:{
            fontFamily:'Helvetica',
            fontSize: '14pt'
        },
        label:'Wartości (mmol/l)'
      },        
    },
    highlighter: {
      show: true,
      sizeAdjust: 12.5,
    },
    cursor: {
      show: true,
      zoom:true,
      dblClickReset:true,
      tooltipLocation:'sw'
    },        
    series:[
      {lineWidth:1, color: '#76a4e8', showMarker: false},
      {lineWidth:1, color: '#d8d8d8', showMarker: false},
      {lineWidth:1, color: '#d8d8d8', showMarker: false},
      {lineWidth:1, color: '#d8d8d8', showMarker: false},
      {lineWidth:1, color: '#d8d8d8', showMarker: false},
      {lineWidth:1, color: '#d8d8d8', showMarker: false},
      {lineWidth:1, color: '#d8d8d8', showMarker: false},
      {lineWidth:1, color: '#d8d8d8', showMarker: false},                                                            
      {lineWidth:1, color: '#d8d8d8', showMarker: false},
      {lineWidth:2, color: '#f4ad31', rendererOptions: {animation: {speed: 1500}}, markerOptions:{color: 'gray', style:'filledSquare'}},
      {showLine: false, color: 'red', markerOptions:{color: 'red', style:'filledSquare'}},
    ],
    legend:{
       renderer: jQuery.jqplot.EnhancedLegendRenderer,
       show: true,
       hideZeros: true,
       location: 'se',
       labels: ['Oczekiwana średnia (3.8600)', 'SD+1 (3.9179)', 'SD+2 (3.9758)', 'SD+3 (4.0337)', 'SD+4 (4.0916)', 'SD-1 (3.8021)', 'SD-2 (3.7442)', 'SD-3 (3.6863)', 'SD-4 (3.6284)', 'Wyniki kontroli (3.6284)', 'Reguła WEST4', ]
    }        

});

请问您能否提供您所使用的代码,并且如果可能的话,能否给我们展示一个fiddle - Praveen Kumar Purushothaman
所以你想要一个y值为小数的折线图,但实际的刻度标签需要被替换成标签? - Mark
是的,我总共有9个值:-SD4,-SD3,-SD2,-SD1,MEAN,SD1,SD2,SD3,SD4。所有这些SD值都是在程序中计算出来的,但在y轴上,我只想要那些相应的名称(用于UI目的)。 - baron_bartek
我还有一个问题:如何在这段代码中添加第二个Y轴。我尝试使用y2axis: { ........... },但是我无法使其工作,但与我看到的工作示例不同。我怀疑这是渲染器的问题,但我已经为其他东西使用了另一个渲染器。我必须选择吗?我想我应该为此添加新主题? - baron_bartek
关于这个小提琴:我运行了测试,它说“您的JS代码有效”。Praveen,这是你想要的吗?我以前从未使用过这个工具。 - baron_bartek
1个回答

8
您可以将刻度指定为 [val, label] 对。请注意,它们必须正确排序。
$(document).ready(function(){
    var plot1 = $.jqplot ('chart1', [[3,7,1,4,6]],{
           axes: {
                yaxis: {
                    ticks: [[1,'-SD1'],[3,'-SD4'],[4,'MEAN'],[6,'SD1'],[7,'-SD3']]
                }
           }});
});​

enter image description here

在这里试试 这个


在我的情况下,我只是添加了引号:[[0,'' ],...以使标签从第1行开始,而不是在底部0。 - BlackTigerX

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