achartengine之折线图

拈花ヽ惹草 提交于 2020-01-13 13:46:18

跟饼图很相似。。。

相关类

  dataset:是一个XYMultipleSeriesDataset对象 可以理解为一个数据集     

      XYSeries:可以理解为一条线上的数据 也就是点

  mRenderer:XYMultipleSeriesRenderer  渲染器用来控制表图的外观  是继承于DefaultRenderer  

      XYSeriesRenderer:可以理解为没一条线的外观。。。跟一个XYSeries相对应

   GraphicalView  mChartView = ChartFactory.getLineChartView(context, dataset, mRenderer);

 

  什么动态改变数据的模拟我就没有做了。。。大家可以参照我饼图来添加。。。。。。。。。。。

 

 

 

package com.myluocan.chart;

import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.BasicStroke;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;

import android.R.color;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Paint.Align;

public class lineChart {
private XYMultipleSeriesDataset Mdataset;
private XYMultipleSeriesRenderer Mrenderer;
private GraphicalView graphicalView;
private Context context;
private double[] xAxisCoord; //x轴上的坐标
private double[] yAxisCoord; //Y轴上的坐标
private String[] xAxisLabel; //x轴上的标签
private String[] yAxisLabel; //Y轴上的标签

public lineChart(double[] xAxisCoord, double[] yAxisCoord,String[] xAxisLabel) {
super();
this.xAxisCoord = xAxisCoord;
this.yAxisCoord = yAxisCoord;
this.xAxisLabel=xAxisLabel;
}

public void setxAxisCoord(double[] xAxisCoord) {
this.xAxisCoord = xAxisCoord;
}
public double[] getyAxisCoord() {
return yAxisCoord;
}
public void setyAxisCoord(double[] yAxisCoord) {
this.yAxisCoord = yAxisCoord;
}
public String[] getxAxisLabel() {
return xAxisLabel;
}
public void setxAxisLabel(String[] xAxisLabel) {
this.xAxisLabel = xAxisLabel;
}
public String[] getyAxisLabel() {
return yAxisLabel;
}
public void setyAxisLabel(String[] yAxisLabel) {
this.yAxisLabel = yAxisLabel;
}

public GraphicalView createLine(Context context)
{
this.context=context;
Mrenderer=getLineRenderer();
Mdataset=getLineDataset();
graphicalView=ChartFactory.getLineChartView(context, Mdataset, Mrenderer);
return graphicalView;
}
public XYMultipleSeriesRenderer getLineRenderer()
{
XYMultipleSeriesRenderer renderer=new XYMultipleSeriesRenderer();

renderer.setShowLegend(false);// 不显示图例

renderer.setShowLabels(true);//是否显示XY 的label 默认值是true
renderer.setChartTitle("测试折线图");


renderer.setShowGrid(true);// 设置显示网格线
renderer.setGridColor(Color.LTGRAY);// 设置网格线的颜色
renderer.setClickEnabled(true);//是否启动点击事件

renderer.setAxisTitleTextSize(10);// 设置坐标轴标签字体大小
renderer.setAxesColor(Color.LTGRAY);

renderer.setXAxisMin(0.5); //设置X坐标轴的最小最大值
renderer.setXAxisMax(7.5);

renderer.setYAxisMin(5.5); //设置y坐标轴的最小最大值
renderer.setYAxisMax(65.5);

renderer.setXLabels(0);// X轴方向显示多少个标签,0表示自定义
renderer.setYLabels(6);// Y轴方向显示多少个标签

renderer.setLabelsTextSize(25);// 设置轴上标签的大小
renderer.setXLabelsColor(Color.LTGRAY);// 设置X轴标签的显示颜色
renderer.setYLabelsColor(0, Color.LTGRAY); // 设置Y轴标签的显示颜色
renderer.setXLabelsAlign(Align.LEFT);// 设置X轴在标签哪边对齐方式
renderer.setYLabelsAlign(Align.CENTER);//设置Y轴在标签哪边对齐方式
renderer.setXLabelsAngle(-40);//设置X轴label旋转的度数

renderer.setPointSize(5);//点的大小

renderer.setBarSpacing(50);
//设置X轴上的标签
for(int i=0;i<xAxisCoord.length;i++)
{
renderer.addXTextLabel(xAxisCoord[i],xAxisLabel[i]);
}
if(renderer.getSeriesRendererCount()<=0)
{
renderer.addSeriesRenderer(CreateSeriesRenderer());
}
return renderer;
}
public XYSeriesRenderer CreateSeriesRenderer()
{
XYSeriesRenderer seriesRenderer=new XYSeriesRenderer();
seriesRenderer.setPointStyle(PointStyle.CIRCLE);//设置点的样式
seriesRenderer.setColor(Color.BLUE);//设置点的颜色
seriesRenderer.setFillPoints(true);//是否要填充点 是不是实心点
seriesRenderer.setChartValuesTextAlign(Align.CENTER);//设置图表值文本对齐。
seriesRenderer.setChartValuesTextSize(20);//点的值的文字大小
seriesRenderer.setDisplayChartValues(true);//将点的值显示出来 。
seriesRenderer.setGradientEnabled(true);//是否启动坡度

// seriesRenderer.setFillBelowLine(true); // 折线下方是否用颜色填充
// seriesRenderer.setFillBelowLineColor(Color.BLACK);
seriesRenderer.setStroke(BasicStroke.SOLID);//设置描边风格
seriesRenderer.setLineWidth(2);

return seriesRenderer;
}
public XYMultipleSeriesDataset getLineDataset()
{
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
XYSeries series=new XYSeries("统计");
for(int i=0;i<xAxisCoord.length;i++)
{
series.add(xAxisCoord[i], yAxisCoord[i]);
}
dataset.addSeries(series);
return dataset;
}
}

 

  

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!