我制作动态条形图演示,我每次点击都会重新绘制下一个栏。 但问题在于
我必须制作一个从左边添加固定条宽度的条形图。
以下是屏幕截图的内容
代码:
dataset = new XYMultipleSeriesDataset();
series = new XYSeries("data");
dataset.addSeries(series);
/*
* for (int i = 0; i < 20; i++) { series.add(0, 0); }
*/
// Now we create the renderer
renderer = new XYSeriesRenderer();
renderer.setLineWidth(1);
renderer.setColor(Color.RED);
renderer.setChartValuesSpacing(1);
// Include low and max value
// we add point markers
renderer.setPointStyle(PointStyle.CIRCLE);
renderer.setPointStrokeWidth(.1f);
renderer.setShowLegendItem(false);
mRenderer = new XYMultipleSeriesRenderer();
mRenderer.addSeriesRenderer(renderer);
mRenderer.setBackgroundColor(Color.argb(0x00, 0xff, 0xff, 0xff));
// We want to avoid black border
mRenderer.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00)); // transparent
mRenderer.setAxesColor(Color.argb(0x00, 0xff, 0x00, 0x00));
mRenderer.setGridColor(Color.argb(0x00, 0xff, 0x00, 0x00)); // margins
// margins
// Disable Pan on two axis
mRenderer.setPanEnabled(false, false);
mRenderer.setYAxisMax(20);
mRenderer.setYAxisMin(0);
mRenderer.setShowGrid(false); // we show the grid
mRenderer.clearYTextLabels();
mRenderer.setShowGridY(false);
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.argb(0x00, 0xff, 0xff, 0xff));
mRenderer.setMarginsColor(Color.argb(0x00, 0xff, 0xff, 0xff));
mRenderer.setPanEnabled(false, false);
mRenderer.setZoomEnabled(false, false);
mRenderer.setShowLabels(false);
mRenderer.setXLabelsPadding(2);
mRenderer.setPointSize(1);
mRenderer.setBarSpacing(.2);
mChartView = ChartFactory.getBarChartView(this, dataset, mRenderer,
BarChart.Type.DEFAULT);
graphLayout.addView(mChartView, 0);
b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
generate();
}
});
}
protected void generate() {
int r = randInt(1, 20);
// dataset.addSeries(series);
series.add(0, r);
mChartView.repaint();
}
答案 0 :(得分:0)
设置multiRenderer.setXAxisMax(maxX);价值
maxX =到图表中的系列数。 。如果你想让它不收缩,试着设置maxX值,只允许图表在下面的示例代码中显示图表中所有系列的25%:
multiRenderer.setXAxisMax(maxX * .25);