使用aChartEngine(Android)组合多个条形图和整体折线图
我有一个问题,两条线相互重叠,我不知道如何将它们分开,折线图应该从x=0开始,覆盖整个图表。我搜索了几个论坛,但找不到正确的解决方案…使用aChartEngine(Android)组合多个条形图和整体折线图,android,charts,Android,Charts,我有一个问题,两条线相互重叠,我不知道如何将它们分开,折线图应该从x=0开始,覆盖整个图表。我搜索了几个论坛,但找不到正确的解决方案… 我的代码: public class MainActivity extends Activity {<br/> private static final int SERIES_NR = 4;<br/> private XYMultipleSeriesDataset mDataset = getDataset();<br/> p
我的代码:
public class MainActivity extends Activity {<br/>
private static final int SERIES_NR = 4;<br/>
private XYMultipleSeriesDataset mDataset = getDataset();<br/>
private XYMultipleSeriesRenderer mRenderer = getRenderer();<br/>
private GraphicalView mChartView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRendererStyling();
if (mChartView == null) {
LinearLayout chartContainer = (LinearLayout) findViewById(R.id.chart);
String[] types = new String[] { BarChart.TYPE,BarChart.TYPE,BarChart.TYPE, LineChart.TYPE };
mChartView = ChartFactory.getCombinedXYChartView(this, mDataset,
mRenderer, types);
mRenderer.setSelectableBuffer(100);
chartContainer.addView(mChartView, new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
} else
mChartView.repaint();
}
private void setRendererStyling() {
//Color
mRenderer.setBackgroundColor(Color.BLACK);
mRenderer.setAxesColor(Color.BLACK);
mRenderer.setLabelsColor(Color.BLACK);
mRenderer.setXLabelsColor(Color.BLACK);
mRenderer.setYLabelsColor(0, Color.BLACK);
mRenderer.setMarginsColor(Color.WHITE);
//Size
mRenderer.setAxisTitleTextSize(30);
mRenderer.setChartTitleTextSize(30);
mRenderer.setLabelsTextSize(25);
mRenderer.setLegendTextSize(30);
mRenderer.setLegendHeight(250);
//General settings
mRenderer.setChartTitle("This Week");
mRenderer.setXAxisMin(0.5);
mRenderer.setXAxisMax(10.5);
mRenderer.setYAxisMin(0);
mRenderer.setYAxisMax(210);
mRenderer.addXTextLabel(1, "Mon");
mRenderer.addXTextLabel(2, "Tue");
mRenderer.addXTextLabel(3, "Wed");
mRenderer.addXTextLabel(4, "Thu");
mRenderer.addXTextLabel(5, "Fri");
mRenderer.addXTextLabel(6, "Sat");
mRenderer.addXTextLabel(7, "Sun");
mRenderer.setYLabelsAlign(Paint.Align.RIGHT);
mRenderer.setBarSpacing(0.5);
mRenderer.setXTitle("X-Axis");
mRenderer.setYTitle("Y-Axis");
mRenderer.setShowGrid(true);
mRenderer.setGridColor(Color.GRAY);
mRenderer.setXLabels(0);
}
private XYMultipleSeriesDataset getDataset() {
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
final int nr = 7;
Random r = new Random();
ArrayList<String> legendTitles = new ArrayList<String>();
legendTitles.add("Bar1");
legendTitles.add("Bar2");
legendTitles.add("Bar3");
legendTitles.add("Line1");
for (int i = 0; i < SERIES_NR; i++) {
CategorySeries series = new CategorySeries(legendTitles.get(i));
for (int k = 0; k < nr; k++) {
series.add(100 + r.nextInt() % 100);
}
dataset.addSeries(series.toXYSeries());
}
return dataset;
}
private XYMultipleSeriesRenderer getRenderer() {
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setAxisTitleTextSize(16);
renderer.setChartTitleTextSize(20);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);
renderer.setMargins(new int[]{30, 40, 15, 0});
//Bar1
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(Color.BLUE);
renderer.addSeriesRenderer(r);
//Bar2
r = new SimpleSeriesRenderer();
r.setColor(Color.parseColor("#ff8c00"));
renderer.addSeriesRenderer(r);
//Bar3
r = new SimpleSeriesRenderer();
r.setColor(Color.parseColor("#696969"));
renderer.addSeriesRenderer(r);
// Line1
XYSeriesRenderer sollRenderer = new XYSeriesRenderer();
sollRenderer.setColor(Color.GREEN);
sollRenderer.setPointStyle(PointStyle.CIRCLE);
sollRenderer.setFillPoints(true);
sollRenderer.setLineWidth(3);
sollRenderer.setDisplayChartValues(true);
renderer.addSeriesRenderer(sollRenderer);
return renderer;
}
public类MainActivity扩展活动{
私有静态最终整数系列\u NR=4;
私有XYmultiplesseriesdataset mDataset=getDataset();
私有XYMultipleReseriesRenderer mrender=getRenderer();
private GraphicalView mChartView;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRenderStyleing();
如果(mChartView==null){
LinearLayout chartContainer=(LinearLayout)findViewById(R.id.chart);
字符串[]类型=新字符串[]{BarChart.TYPE,BarChart.TYPE,BarChart.TYPE,LineChart.TYPE};
mChartView=ChartFactory.getCombinedXYChartView(此,mDataset,
mrender,类型);
mrender.setSelectableBuffer(100);
chartContainer.addView(mChartView,新布局参数(
LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
}否则
mChartView.repaint();
}
私有void setRenderStyleing(){
//颜色
mRenderer.setBackgroundColor(颜色:黑色);
mrender.setAxesColor(颜色:黑色);
mrender.setLabelsColor(Color.BLACK);
mrender.setXLabelsColor(Color.BLACK);
mRenderer.setYLabelsColor(0,颜色.黑色);
mrender.setMarginsColor(Color.WHITE);
//大小
mrender.setAxisTitleTextSize(30);
mRenderer.SetChartTitleExtSize(30);
mrender.setLabelsTextSize(25);
mrender.setLegendTextSize(30);
mRenderer.setLegendHeight(250);
//一般设置
mRenderer.setChartTitle(“本周”);
mrender.setXAxisMin(0.5);
setXAxisMax(10.5);
mrender.setYAxisMin(0);
setYAxisMax(210);
mrender.addxtlabel(1,“Mon”);
mrender.addxtlabel(2,“周二”);
mrender.addxtlabel(3,“Wed”);
mrender.addxtlabel(4,“Thu”);
mrender.addxtlabel(5,“Fri”);
mrender.addxtlabel(6,“Sat”);
mrender.addxtlabel(7,“Sun”);
mrender.setYLabelsAlign(Paint.Align.RIGHT);
mrender.setbarspace(0.5);
mrender.setXTitle(“X轴”);
mRenderer.Setytile(“Y轴”);
mrender.setShowGrid(真);
mrender.setGridColor(Color.GRAY);
mrender.setXLabels(0);
}
私有XYMultipleSeriesDataset getDataset(){
XYmultiplesseriesdataset数据集=新的XYmultiplesseriesdataset();
最终int nr=7;
随机r=新随机();
ArrayList legendTitles=新的ArrayList();
legendTitles.添加(“Bar1”);
legendTitles.添加(“Bar2”);
legendTitles.添加(“Bar3”);
legendTitles.添加(“第1行”);
对于(int i=0;i
}