2013-04-01 95 views
1

我有一个条形图,我使用三个不同的系列。所有的数据都正确显示,但是每个系列都以不同的宽度显示系列。我无法从不同系列的酒吧获得相同的宽度。achartengine条形图多系列

SDFSeries = new XYSeries("Seven Day Forecast"); 
FPSeries = new XYSeries("Forecast Peak"); 
APDSeries = new XYSeries("Actual Peak to Date"); 

XYSeriesRenderer sdfRenderer = new XYSeriesRenderer(); 
sdfRenderer.setColor(Color.rgb(90, 152, 253)); 
sdfRenderer.setDisplayChartValues(true); 
sdfRenderer.setChartValuesTextSize(18); 


XYSeriesRenderer fpRenderer = new XYSeriesRenderer(); 
fpRenderer.setColor(Color.rgb(255, 255, 0)); 
fpRenderer.setDisplayChartValues(true); 
fpRenderer.setChartValuesTextSize(18); 

XYSeriesRenderer apdRenderer = new XYSeriesRenderer(); 
apdRenderer.setColor(Color.rgb(255, 0, 0)); 
apdRenderer.setDisplayChartValues(true); 
apdRenderer.setChartValuesTextSize(18); 

multiRenderer.setXLabels(0); 
multiRenderer.setChartTitle("7 Day Outlook - Maximum Demand"); 
multiRenderer.setXTitle(""); 
multiRenderer.setYTitle("MegaWatts"); 
multiRenderer.addSeriesRenderer(apdRenderer);   
multiRenderer.addSeriesRenderer(fpRenderer); 
multiRenderer.addSeriesRenderer(sdfRenderer); 
multiRenderer.setMargins(new int[] { 10, 65, 10, 15 }); 
multiRenderer.setAxisTitleTextSize(16); 
multiRenderer.setChartTitleTextSize(30); 
multiRenderer.setLabelsTextSize(15); 
multiRenderer.setLegendTextSize(20); 
multiRenderer.setLegendHeight(40); 
multiRenderer.setBarSpacing(.5); 
multiRenderer.setXLabelsAlign(Align.CENTER); 
multiRenderer.setYLabelsAlign(Align.RIGHT); 
+0

对不起,我很困惑我没有对上一个问题的答案。我很欣赏你的图表,它的工作原理非常好,我只是在使用多个系列时,坚持使条形宽度相同。我希望我有足够的声望点向你展示它的样子。 – Sam

+0

对不起,我接受了答案,因为它是正确的。 – Sam

回答

0

该问题是由一个单一项目的系列显示栏宽度不同造成的。你有一些选择:

  • 每个系列增加至少2项。
  • 使用renderer.setBarWidth()为一个单一项目的系列。
+0

非常感谢第一个解决方案。 – Sam

+0

不客气。 –