在jqplot图表中绘制垂直线,x ax具有日期格式

时间:2014-05-26 09:32:46

标签: charts jqplot

我有一个带有X ax的jqPlot图表具有以下格式:

xaxis: {
             renderer: $.jqplot.DateAxisRenderer,
             tickOptions: {
                          formatString: '%Y-%m-%d \n %H:%M'
                          },
             min: minimo,
             max: maximo,
       }

我无法使用插件$ .jqplot.CanvasOverlay.VerticalLine在我的图表中绘制垂直线,就像在此示例中所示: example canvas-overlay jqPlot 我自己尝试了这个例子但是在我的情况下,因为我的图表在x轴上有一个格式,我只能使它适用于水平线,而不是垂直线。

这就是我现在所尝试的:

verticalLine: {
                    name: 'barney',
                    x: "2011-01-07 16:10:00.000",
                    lineWidth: 6,
                    color: 'rgb(100, 55, 124)',
                    shadow: false
                }

我还将x值分配给变量x: "2011-01-07 \n 16:10:00.000",但仍然无法正常工作。 也许我应该在我已经拥有的那个上面绘制另一个jqPlot图表。但是如果可能的话我想避免使用该解决方案并且更喜欢VerticalLine方法。

2 个答案:

答案 0 :(得分:5)

Jqplot期待一个数值而不是一个字符串(即使是日期),并且不能将你从字符串传递的值转换为日期。

您可以在jqplot中使用jsDate对象将日期字符串转换为数值:

x : new $.jsDate( '2011-01-07 16:10:00.000').getTime()

答案 1 :(得分:0)

嗯,我还想要的不仅仅是一条垂直线。所以我必须为VerticalLines创建一个对象列表。

var dates_vertical=[/*Array wit Dates*/];
var objects_vertical=[];
function create_vertical_lines() {
  for (var j = 0; j < dates_vertical.length ; j++) {
   objects_vertical[j]= new Object({ "verticalLine": {     
   "x": new $.jsDate(dates_vertical[j]).getTime(),
   "color": "red", 
   "lineWidth": 4 
   } 
 });
};

除了在我的CanvasOverlay中,我写道:

canvasOverlay: {
          show: true,
          objects: objects_vertical
      }

谢谢!