不同颜色的酒吧使用多个系列 [英] Different color bars using multiple series
本文介绍了不同颜色的酒吧使用多个系列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
protected void onResume(){
super.onResume();
layout =(LinearLayout)findViewById(R.id.chart);
if(mChartView == null)
{
PeakSeries = new XYSeries(Income);
ForecastPeakSeries = new XYSeries(费用);
ForecastSeries = new XYSeries(费用);
int [] x = {1,2,3};
int income = 2000;
int费用= 2700;
System.out.println(Here);
Series1.add(x [0],收入);
Series2.add(x [1],费用);
系列3.add(x [2],费用);
//创建一个数据集来保存每个系列
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(Series1);
dataset.addSeries(Series2);
dataset.addSeries(Series3);
XYSeriesRenderer Renderer1 = new XYSeriesRenderer();
Renderer1 .setColor(Color.RED);
Renderer1 .setChartValuesTextSize(18);
Renderer1 .setFillPoints(true);
Renderer1 .setDisplayChartValues(true);
//创建XYSeriesRenderer来自定义费用系列
XYSeriesRenderer Renderer2 = new XYSeriesRenderer();
Renderer2 .setColor(Color.YELLOW);
Renderer2 .setChartValuesTextSize(18);
Renderer2 .setDisplayChartValues(true);
XYSeriesRenderer Renderer3 = new XYSeriesRenderer();
Renderer3 .setColor(Color.CYAN);
Renderer3 .setChartValuesTextSize(18);
Renderer3 .setFillPoints(true);
Renderer3 .setChartValuesTextAlign(Align.CENTER);
Renderer3 .setDisplayChartValues(true);
//创建一个XYMultipleSeriesRenderer来自定义整个图表
double [] range = {0,5,0,5};
multiRenderer.setMargins(new int [] {50,50,50,50});
multiRenderer.setAxisTitleTextSize(16);
multiRenderer.setChartTitleTextSize(30);
multiRenderer.setLabelsTextSize(15);
multiRenderer.setLegendTextSize(20);
multiRenderer.setLegendHeight(40);
multiRenderer.setBarSpacing(-0.7);
multiRenderer.setAxesColor(Color.WHITE);
multiRenderer.setInitialRange(range,1);
multiRenderer.setXAxisMin(0.4);
multiRenderer.setXAxisMax(4);
multiRenderer.setYAxisMax(5000);
multiRenderer.setYAxisMin(0);
multiRenderer.setXLabelsAlign(Align.RIGHT);
multiRenderer.setYLabelsAlign(Align.RIGHT);
//multiRenderer.s(Align.LEFT);
multiRenderer.setPanEnabled(false,false);
multiRenderer.setZoomEnabled(true,true);
multiRenderer.setChartTitle(7天展望 - 最大需求);
multiRenderer.setXTitle(Date);
multiRenderer.setYTitle(MW);
multiRenderer.addSeriesRenderer(Renderer1);
multiRenderer.addSeriesRenderer(Renderer2);
multiRenderer.addSeriesRenderer(Renderer3);
final GraphicalView mChartView = ChartFactory.getBarChartView(TestSevenDay1.this,dataset,multiRenderer,Type.DEFAULT);
layout.addView(mChartView);
}
else
{
mChartView.repaint();
}
}
任何帮助都非常感谢。
解决方案
我通过将 Type
从 Type.Default
设置为 Type.Stacked
在 getBarChartView
中。
ChartFactory.getBarChartView(TestSevenDay1.this,dataset,multiRenderer,Type.STACKED);
I am totally new to Android and i am trying to create a bar chart using AChartEngine, it has 3 bars and each bar should be different color. I tried using multiple series but can't make my x-axis values align with bars
protected void onResume() {
super.onResume();
layout = (LinearLayout) findViewById(R.id.chart);
if (mChartView == null)
{
PeakSeries = new XYSeries("Income");
ForecastPeakSeries = new XYSeries("Expense");
ForecastSeries = new XYSeries("Expense");
int[] x = { 1,2,3};
int income = 2000;
int expense = 2700;
System.out.println("Here");
Series1.add(x[0],income);
Series2.add(x[1],expense);
Series3.add(x[2],expense);
// Creating a dataset to hold each series
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(Series1);
dataset.addSeries(Series2);
dataset.addSeries(Series3);
XYSeriesRenderer Renderer1 = new XYSeriesRenderer();
Renderer1 .setColor(Color.RED);
Renderer1 .setChartValuesTextSize(18);
Renderer1 .setFillPoints(true);
Renderer1 .setDisplayChartValues(true);
// Creating XYSeriesRenderer to customize expenseSeries
XYSeriesRenderer Renderer2 = new XYSeriesRenderer();
Renderer2 .setColor(Color.YELLOW);
Renderer2 .setChartValuesTextSize(18);
Renderer2 .setDisplayChartValues(true);
XYSeriesRenderer Renderer3 = new XYSeriesRenderer();
Renderer3 .setColor(Color.CYAN);
Renderer3 .setChartValuesTextSize(18);
Renderer3 .setFillPoints(true);
Renderer3 .setChartValuesTextAlign(Align.CENTER);
Renderer3 .setDisplayChartValues(true);
// Creating a XYMultipleSeriesRenderer to customize the whole chart
double[] range = {0,5,0,5};
multiRenderer.setMargins(new int[] {50, 50, 50, 50});
multiRenderer.setAxisTitleTextSize(16);
multiRenderer.setChartTitleTextSize(30);
multiRenderer.setLabelsTextSize(15);
multiRenderer.setLegendTextSize(20);
multiRenderer.setLegendHeight(40);
multiRenderer.setBarSpacing(-0.7);
multiRenderer.setAxesColor(Color.WHITE);
multiRenderer.setInitialRange(range, 1);
multiRenderer.setXAxisMin(0.4);
multiRenderer.setXAxisMax(4);
multiRenderer.setYAxisMax(5000);
multiRenderer.setYAxisMin(0);
multiRenderer.setXLabelsAlign(Align.RIGHT);
multiRenderer.setYLabelsAlign(Align.RIGHT);
//multiRenderer.s(Align.LEFT);
multiRenderer.setPanEnabled(false, false);
multiRenderer.setZoomEnabled(true, true);
multiRenderer.setChartTitle("7 Day Outlook - Maxiumum Demand");
multiRenderer.setXTitle("Date");
multiRenderer.setYTitle("MW");
multiRenderer.addSeriesRenderer(Renderer1 );
multiRenderer.addSeriesRenderer(Renderer2 );
multiRenderer.addSeriesRenderer(Renderer3 );
final GraphicalView mChartView = ChartFactory.getBarChartView(TestSevenDay1.this, dataset, multiRenderer,Type.DEFAULT);
layout.addView(mChartView);
}
else
{
mChartView.repaint();
}
}
Any help is greatly appreciated.
解决方案
I handled it by setting the Type
from Type.Default
to Type.Stacked
in the getBarChartView
.
ChartFactory.getBarChartView(TestSevenDay1.this, dataset, multiRenderer, Type.STACKED);
这篇关于不同颜色的酒吧使用多个系列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文