我无法使用jqplot正确绘制线图

时间:2014-08-04 20:02:47

标签: javascript jquery jqplot linegraph

我想用xaxis绘制带有以下内容的图形:

var xaxis = [31.1,31.2,31.3,31.4,31.5, 32.1,32.2,32.3,32.4,32.5];

注意31.5和32.1之间的跳过方式。但是,当我绘制线图时,这两点之间有一个很大的空间。这是我的代码:

 $(document).ready(function(){

                var cust1 = [[31.1,10],[31.2,15],[31.3,25],[31.4, 60],[31.5,95]];
                var cust2 = [[31.1,0],[31.2,15],[31.3,30],[31.4, 50],[31.5,85]];

                var data = [];
                data.push(cust1);
                data.push(cust2);

                var xaxis = [31.1,31.2,31.3,31.4,31.5, 32.1,32.2,32.3,32.4,32.5];

                var plot3 = $.jqplot('line-chart', data, 
                  { 
                      title:'Design Progress', 

                      axes: {
                          xaxis: {
                              //renderer: $.jqplot.LineRenderer,
                              label: 'Work Weeks',

                              ticks: xaxis
                          },
                          yaxis: {
                              label: "Percent Complete",
                              max: 100,
                              min: 0
                          }
                      }
                  }
                );

            });

我认为这是因为我没有在我的xaxis选项中指定渲染器选项。但是,我试图使用$ .jqplot.LineRenderer和$ .jqplot.CategoryAxisRenderer而没有任何运气(我甚至将我的xaxis值设置为字符串,但这不起作用)。有谁知道发生了什么事?

以下是进一步澄清的图片:

enter image description here

1 个答案:

答案 0 :(得分:1)

它发生的原因:jQuery flot库正在使用由您的数据确定的值构建图形。

当您提供此类数据时,插件会将轴值设置为与文本相同以及您给出的数字的边框。 您可以做的是将文本设置为与轴值不同。

您可以通过options.xaxis.ticks.push([value, "the text"])轻松完成。

请注意,您将设置哪个标签具有哪个轴值,并且在调用$plot之前需要设置options参数