2013-04-01 5 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

Добро пожаловать. –

Смежные вопросы