安卓图表引擎AchartEngine

Private List<double[]> x = new ArrayList<double[]>();

private List<double[]> values = new ArrayList<double[]>();

private double[] sinValues1 = new double[24];//用于储存曲线的24点取值

private double[] sinValues2 = new double[24];

private XYMultipleSeriesRenderer renderer;

private LinearLayout lineChartContainer;//2X-7X中声明图表容器的Layout.

for (int i = 0; i < titles.length; i++) {

x.add(new double[] { 0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10,

        11, 12 ,13,14,15,16,17,18,19,20,21,22,23});

}

//List<double[]> values = new ArrayList<double[]>();

//double[] sinValues1 = new double[24];

//double[] sinValues2 = new double[24];

for (int i = 0; i < 24; i++)

    sinValues1[i]=Math.round((Math.sin((360/24)*i*Math.PI/180)*5)*100)/100.0;

for (int i = 0; i < 24; i++)

    sinValues2[i]=Math.round((Math.sin(((360/24)*i+90)*Math.PI/180)*5)*100)/100.0;

/**/

phase=6;

/******/

values.add(sinValues1);

values.add(sinValues2);

int[] colors = new int[] { Color.BLUE, Color.GREEN };

PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE, PointStyle.DIAMOND };

renderer = buildRenderer(colors, styles);

int length = renderer.getSeriesRendererCount();

for (int i = 0; i < length; i++) {

((XYSeriesRenderer) renderer.getSeriesRendererAt(i)).setFillPoints(true);

}

setChartSettings(renderer, "Valtage", "step", "voltage", 0, 24, -6, 6, Color.LTGRAY, Color.LTGRAY);

renderer.setXLabels(24);

renderer.setYLabels(15);

renderer.setShowGrid(true);

renderer.setXLabelsAlign(Align.RIGHT);

renderer.setYLabelsAlign(Align.RIGHT);

renderer.setZoomButtonsVisible(true);

renderer.setPanLimits(new double[] { -10, 30, -20, 20 });

renderer.setZoomLimits(new double[] { -10, 30, -20,20 });

//renderer.setDisplayChartValues(true);

// renderer.setChartValuesTextSize(18);

View view = ChartFactory.getLineChartView(this, buildDataset(titles, x, values), renderer);

view.setBackgroundColor(Color.BLACK);

//setContentView(view);

lineChartContainer = (LinearLayout) findViewById(R.id.demo_linear_sin_chart);

lineChartContainer.addView(view);

private XYMultipleSeriesRenderer buildRenderer(int[] colors, PointStyle[] styles) {

XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

setRenderer(renderer, colors, styles);

return renderer;

}

private void setRenderer(XYMultipleSeriesRenderer renderer, int[] colors, PointStyle[] styles) {

renderer.setAxisTitleTextSize(16);

renderer.setChartTitleTextSize(20);

renderer.setLabelsTextSize(15);

renderer.setLegendTextSize(15);

renderer.setPointSize(5f);

renderer.setMargins(new int[] { 20, 30, 15, 20 });

int length = colors.length;

for (int i = 0; i < length; i++) {

XYSeriesRenderer r = new XYSeriesRenderer();

r.setColor(colors[i]);

r.setPointStyle(styles[i]);

renderer.addSeriesRenderer(r);

}

}

private void setChartSettings(XYMultipleSeriesRenderer renderer,

        String title, String xTitle, String yTitle, double xMin,

        double xMax, double yMin, double yMax, int axesColor,

        int labelsColor)

{

renderer.setChartTitle(title);

renderer.setXTitle(xTitle);

renderer.setYTitle(yTitle);

renderer.setXAxisMin(xMin);

renderer.setXAxisMax(xMax);

renderer.setYAxisMin(yMin);

renderer.setYAxisMax(yMax);

renderer.setAxesColor(axesColor);

renderer.setLabelsColor(labelsColor);

}

private XYMultipleSeriesDataset buildDataset(String[] titles, List<double[]> xValues, List<double[]> yValues) {

XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

addXYSeries(dataset, titles, xValues, yValues, 0);

return dataset;

}

private void addXYSeries(XYMultipleSeriesDataset dataset, String[] titles, List<double[]> xValues, List<double[]> yValues, int scale) {

int length = titles.length;

for (int i = 0; i < length; i++) {

XYSeries series = new XYSeries(titles[i], scale);

double[] xV = xValues.get(i);

double[] yV = yValues.get(i);

int seriesLength = xV.length;

for (int k = 0; k < seriesLength; k++) {

series.add(xV[k], yV[k]);

}

dataset.addSeries(series);

}

}

在values更新后,要将新values更新到图表,执行:

View view = ChartFactory.getLineChartView(MainActivity.this, buildDataset(titles, x, values), renderer);

view.setBackgroundColor(Color.BLACK);

lineChartContainer.removeAllViews();

lineChartContainer.addView(view);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_72429728

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值