绘图顶部的 jqplot 网格

jqplot grid on top of plot

本文关键字:网格 jqplot 顶部 绘图      更新时间:2023-09-26

我一直在修补一个jqplot图,其中网格线位于图形的顶部(或前面,具体取决于您如何看待它),而不是默认的背景区域。 我已经进行了几次尝试,让它使用 z 索引覆盖网格。 但是,每次尝试都会使整个图形不起作用,并且由于某种未知原因,我没有收到任何错误。

我正在使用一个堆叠的条形图,它实际上填充了整个网格,所以我看不到任何网格线,它们都隐藏在图形下方(或后面)。

这是代码:

<script type="text/javascript" language="javascript">
   $.jqplot.config.enablePlugins = true;
   var plot;
   var data1 = [];
   var data2 = [];
   var index = 0;
   var num = 0;
   var delta = 0;
   $(document).ready(function(){
      for (i=0; i<100; i++) {
         num = getRandomNumber();
         delta = 100 - num;
         index++;
         data1.push([ index, num]);
         data2.push([ index, delta]);
      }
      plot = $.jqplot('graph', [data1, data2],{
                title: 'my title',
                animate: true,
                stackSeries: true,
                seriesDefaults:{
                        renderer:$.jqplot.BarRenderer,
                        rendererOptions: { highlightMouseDown: true },
                        pointLabels: {show: true}
                },
                series: [ {label: 'one'}, {label: 'two'} ],
                seriesColors:['#ff0000', '#0000ff'],
                legend: {
                        show: true,
                        location: 'e',
                        placement: 'outsideGrid'
                },
                grid: {
                        gridLineColor: '#333333',
                        borderWidth: 0
                },
                axesDefaults: {
                        pad: 0,
                        padMin: 0
                },
                axes: {
                        xaxis: {
                                showTicks: false,
                                pad: 0,
                                padMin: 0,
                                rendererOptions: { forceTickAt0: true, forceTickAt100: true }
                        },
                        yaxis: {
                                pad: 0,
                                padMin: 0,
                                rendererOptions: { forceTickAt0: true, forceTickAt100: true }
                        }
                }
      });
   });
   getRandomNumber = function(){
                return Math.floor(Math.random()* 100);
   };
  </script>

有人遇到这个要求并且知道如何让网格线显示在图表顶部吗? 谢谢

通过一些 DOM 操作,您可以执行此操作,但您需要确保将网格背景颜色设置为透明才能正常工作。 剧情通话后:

gridCanvas = $($('.jqplot-grid-canvas')[0])
seriesCanvas = $($('.jqplot-series-canvas')[0])
gridCanvas.detach();
seriesCanvas.after(gridCanvas);​

这是一个示例小提琴。