2014-03-26 204 views
0

下面是使用DojoX中图表一个简单的条形图:在图表底部Dojox图表:如何在顶部和底部创建重复轴?

http://jsfiddle.net/y3QQZ/7/

注意,存在与数字的轴线0到3。我想重复在同一轴线图表的顶部。我如何创建顶轴?

下面是代码:

var data = [1, 2, 3]; 

require(
[ 
    'dojox/charting/Chart', 
    'dojox/charting/axis2d/Default', 
    'dojox/charting/plot2d/Bars', 
    'dojox/charting/themes/Claro', 
    'dojo/domReady!'], function (Chart, Default, Bar, theme) { 
    var chart = new Chart('chart'); 
    chart.setTheme(theme); 
    chart.addPlot('default', { 
     type: Bar, 
     gap: 5 
    }); 
    chart.addAxis('x', { 
     labels: [{ 
      value: 1, 
      text: 'One' 
     }, { 
      value: 2, 
      text: 'Two' 
     }, { 
      value: 3, 
      text: 'Three' 
     }], 
     vertical: true, 
     minorTicks: true, 
     majorTick: { 
      length: 5 
     }, 
     minorTick: { 
      length: 5 
     } 
    }); 
    chart.addAxis('y', { 
     min: 0, 
     minorTicks: true, 
     majorTick: { 
      length: 5 
     }, 
     minorTick: { 
      length: 5 
     } 
    }); 
    chart.addSeries('Bar', data); 
    chart.render(); 
}); 

回答

0

我想你可能混淆了你的x和y轴,但要做到这一点的方法是添加另一个情节。如果我在Dojo中没有记错,每个plot只能有一个hAxis(水平)和一个vAxis(垂直)。一个有点哈克的方式做,这是通过执行以下操作:

添加另一个轴财产leftBottom设置为false:

chart.addAxis('y2', { 
    min: 0, 
    minorTicks: true, 
    leftBottom: false, 
    majorTick: { 
     length: 5 
    }, 
    minorTick: { 
     length: 5 
    } 
}); 

请注意,我只是称它Y2因为你原来的X轴是称为'y'。然后,我将修改您的原始绘图并添加另一个绘图,以便有两个对水平轴的引用。

chart.addPlot('default', { 
    type: Bar, 
    gap: 5, 
    hAxis: 'y', 
    vAxis: 'x' 
}); 
    chart.addPlot('default2', { 
    type: Bar, 
    gap: 5, 
    hAxis: 'y2', 
    vAxis: 'x' 
}); 

后来终于增加了两个系列:

chart.addSeries('Bar', data); 
chart.addSeries('Bar2', data, {plot: "default2"}); 

我把你的小提琴和修改它,使其工作在这里:http://jsfiddle.net/U7tmT/

这似乎有点哈克,但这样的另一个建议是如果你能够提前确定水平轴的最小和最大轴,那么你不需要重复系列,只需要额外的图。一个例子是:http://jsfiddle.net/U95cA/

+0

感谢您的帮助。这正是我所期待的。你是对的 - 我确实混合了x和y轴。 – Jeremy

相关问题