2012-08-10 3 views
0

캔버스 오버레이를 사용하여 촛대 형 차트에 가로선을 그리려는데 오류가 발생합니다. 개체가 속성 또는 메서드 'series_u2p'를 지원하지 않습니다. 오류가 발생합니까?jqplot - 캔버스 스틱 차트에서 캔버스 오버레이가 작동하지 않습니다.

어떤 이유 일 수 있습니까?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
<script type="text/javascript" src="http://www.jqplot.com/src/jquery.min.js"></script> 
<script type="text/javascript" src="http://www.jqplot.com/src/jquery.jqplot.min.js"></script> 
<script type="text/javascript" src="http://www.jqplot.com/deploy/dist/examples/syntaxhighlighter/scripts/shCore.min.js"></script> 
<script type="text/javascript" src="http://www.jqplot.com/deploy/dist/examples/syntaxhighlighter/scripts/shBrushJScript.min.js"></script> 
<script type="text/javascript" src="http://www.jqplot.com/deploy/dist/examples/syntaxhighlighter/scripts/shBrushXml.min.js"></script> 
<script type="text/javascript" src="http://www.jqplot.com/src/plugins/jqplot.dateAxisRenderer.js"></script> 
<script type="text/javascript" src="http://www.jqplot.com/src/plugins/jqplot.ohlcRenderer.js"></script> 
<script type="text/javascript" src="http://www.jqplot.com/src/plugins/jqplot.highlighter.js"></script> 
<script type="text/javascript" src="http://www.jqplot.com/src/plugins/jqplot.canvasOverlay.js"></script> 
<script type="text/javascript" src="http://www.jqplot.com/src/plugins/jqplot.cursor.js"></script> 
<script type="text/javascript" src="http://www.jqplot.com/deploy/dist/plugins/jqplot.categoryAxisRenderer.min.js"></script> 
<script type="text/javascript" src="http://www.jqplot.com/deploy/dist/plugins/jqplot.canvasTextRenderer.min.js"></script> 
<script type="text/javascript" src="http://www.jqplot.com/deploy/dist/plugins/jqplot.canvasAxisTickRenderer.min.js"></script> 
<script type="text/javascript" src="http://www.jqplot.com/deploy/dist/plugins/jqplot.canvasOverlay.min.js"></script> 
</head> 


<body> 
<div id="chart" style="height: 250px; width: 600px;"></div> 


    <script type="text/javascript"> 
    var plot; 
    $(document).ready(function() { 
    $.jqplot.config.enablePlugins = true; 
    plot = $.jqplot('chart', [ohlc], { 
     seriesDefaults: { 
      yaxis: 'y2axis' 
     }, 
     axes: { 
      xaxis: { 
       renderer: $.jqplot.DateAxisRenderer, 
       tickOptions: { 
        formatString: '%b %e' 
       }, 
       min: "09-01-2008", 
       max: "06-22-2009", 
       tickInterval: "6 weeks", 
      }, 
      y2axis: { 
       tickOptions: { 
        formatString: '$%d' 
       } 
      } 
     }, 
     series: [{ 
      renderer: $.jqplot.OHLCRenderer, 
      rendererOptions: { 
       candleStick: true 
      } 
     }], 
     cursor: { 
      zoom: true, 
      show: true 
     }, 
     canvasOverlay: { 
      show: true, 
      objects: [{ 
       horizontalLine: { 
        name: 'lineOne', 
        show: true, 
        y: 1, 
        lineWidth: 6, 
        color: 'rgb(100, 55, 124)', 
        shadow: false 
       } 
      }] 
     }, 
     highlighter: { 
      show: true, 
      showMarker: false, 
      tooltipAxes: 'xy', 
      yvalues: 4, 
      formatString: '<table class="jqplot-highlighter"> \ 
    <tr><td>date:</td><td>%s</td></tr> \ 
    <tr><td>open:</td><td>%s</td></tr> \ 
    <tr><td>hi:</td><td>%s</td></tr> \ 
    <tr><td>low:</td><td>%s</td></tr> \ 
    <tr><td>close:</td><td>%s</td></tr></table>' 
     } 
    }); 

}); 
    </script> 
<script class="code" language="javascript" type="text/javascript"> 
ohlc = [ 
['06/15/2009 16:00:00', 136.01, 139.5, 134.53, 139.48], 
['06/08/2009 16:00:00', 143.82, 144.56, 136.04, 136.97], 
['06/01/2009 16:00:00', 136.47, 146.4, 136, 144.67], 
['05/26/2009 16:00:00', 124.76, 135.9, 124.55, 135.81], 
['05/18/2009 16:00:00', 123.73, 129.31, 121.57, 122.5], 
['05/11/2009 16:00:00', 127.37, 130.96, 119.38, 122.42], 
['05/04/2009 16:00:00', 128.24, 133.5, 126.26, 129.19], 
['04/27/2009 16:00:00', 122.9, 127.95, 122.66, 127.24], 
['04/20/2009 16:00:00', 121.73, 127.2, 118.6, 123.9], 
['04/13/2009 16:00:00', 120.01, 124.25, 115.76, 123.42], 
['04/06/2009 16:00:00', 114.94, 120, 113.28, 119.57], 
['03/30/2009 16:00:00', 104.51, 116.13, 102.61, 115.99], 
['03/23/2009 16:00:00', 102.71, 109.98, 101.75, 106.85], 
['03/16/2009 16:00:00', 96.53, 103.48, 94.18, 101.59], 
['03/09/2009 16:00:00', 84.18, 97.2, 82.57, 95.93], 
['03/02/2009 16:00:00', 88.12, 92.77, 82.33, 85.3], 
['02/23/2009 16:00:00', 91.65, 92.92, 86.51, 89.31], 
['02/17/2009 16:00:00', 96.87, 97.04, 89, 91.2], 
['02/09/2009 16:00:00', 100, 103, 95.77, 99.16], 
['02/02/2009 16:00:00', 89.1, 100, 88.9, 99.72], 
['01/26/2009 16:00:00', 88.86, 95, 88.3, 90.13], 
['01/20/2009 16:00:00', 81.93, 90, 78.2, 88.36], 
['01/12/2009 16:00:00', 90.46, 90.99, 80.05, 82.33], 
['01/05/2009 16:00:00', 93.17, 97.17, 90.04, 90.58], 
['12/29/2008 16:00:00', 86.52, 91.04, 84.72, 90.75], 
['12/22/2008 16:00:00', 90.02, 90.03, 84.55, 85.81], 
['12/15/2008 16:00:00', 95.99, 96.48, 88.02, 90], 
['12/08/2008 16:00:00', 97.28, 103.6, 92.53, 98.27], 
['12/01/2008 16:00:00', 91.3, 96.23, 86.5, 94], 
['11/24/2008 16:00:00', 85.21, 95.25, 84.84, 92.67], 
['11/17/2008 16:00:00', 88.48, 91.58, 79.14, 82.58], 
['11/10/2008 16:00:00', 100.17, 100.4, 86.02, 90.24], 
['11/03/2008 16:00:00', 105.93, 111.79, 95.72, 98.24], 
['10/27/2008 16:00:00', 95.07, 112.19, 91.86, 107.59], 
['10/20/2008 16:00:00', 99.78, 101.25, 90.11, 96.38], 
['10/13/2008 16:00:00', 104.55, 116.4, 85.89, 97.4], 
['10/06/2008 16:00:00', 91.96, 101.5, 85, 96.8], 
['09/29/2008 16:00:00', 119.62, 119.68, 94.65, 97.07], 
['09/22/2008 16:00:00', 139.94, 140.25, 123, 128.24], 
['09/15/2008 16:00:00', 142.03, 147.69, 120.68, 140.91] 
]; 
</script> 




<script type="text/javascript"> 
    function lineup() { 
    var co = plot.plugins.canvasOverlay; 
    var line = co.get('lineOne'); 
    line.options.y += 1; 
    co.draw(plot); 
} 
    </script> 
    </body> 
    </html> 
+0

안녕하세요, exemple 완전히 functionnal입니다 그리고 당신을 도울 수 있습니다 : http://jsfiddle.net/WdLnm/135/ – sdespont

+0

답장을 보내 주셔서 감사합니다. 캔들 스틱 차트로 작동하지 않는 이유가 무엇입니까? TypeError : plot.axes [obj.options .yaxis] .series_u2p는 함수가 아닙니다. [이 오류 발생시 중단] \t y = plot.axes [obj.options.yaxis] .series_u2p (obj.options.y), – user1589242

답변

0

막대 차트에서 동일한 문제가있었습니다.

문제를 언급하고 어떻게되는지하려고

seriesDefaults: { 
    yaxis: 'y2axis' 
} 

다음과 같은 옵션에서 온 것으로 보인다.

어쨌든 실제로 문제를 해결하는 방법을 모릅니다. jqplot 라이브러리에 결함이있을 수 있습니다.

희망이 도움이됩니다.

2

블록 차트에서도 동일한 문제가 있었지만 차트 유형에 의존하지 않는 것처럼 보입니다. 축이 작동하는 오버레이를 얻을 수

seriesDefaults: { 
    yaxis: 'y2axis' 
} 

같이 설정되어있는 경우

, 당신은 또한 예를 들어, 오버레이 객체에 대해이 작업을 지정해야합니다

canvasOverlay: { 
    show: true, 
    objects: [ 
    {verticalLine: { 
     yaxis: 'y2axis', // <--- specify axis 
     x: 0, 
     lineWidth: 1, 
     color: 'rgb(255, 0, 0)', 
     shadow: false 
    }} 
    ] 
}