Android 如何使用achartEngine设置x轴和y轴值之间的间隔
我在android中使用aChartEngine绘制图形,到目前为止一切都很好…现在我想设置轴值之间的时间间隔,如x轴值时间间隔应为1.5,因此x轴值将为 0、1.5、3、4.5等 谁能告诉我如何设置时间间隔Android 如何使用achartEngine设置x轴和y轴值之间的间隔,android,achartengine,bar-chart,Android,Achartengine,Bar Chart,我在android中使用aChartEngine绘制图形,到目前为止一切都很好…现在我想设置轴值之间的时间间隔,如x轴值时间间隔应为1.5,因此x轴值将为 0、1.5、3、4.5等 谁能告诉我如何设置时间间隔 public class LineGraphDemo extends Activity { XYMultipleSeriesDataset mDataSet; XYMultipleSeriesRenderer mRenderer; private GraphicalView mView;
public class LineGraphDemo extends Activity {
XYMultipleSeriesDataset mDataSet;
XYMultipleSeriesRenderer mRenderer;
private GraphicalView mView;
List<double[]> values=new ArrayList<double[]>();
List<Date[]> dates=new ArrayList<Date[]>();
private Date[] mDate;
String s;
Date d=new Date();
protected void onCreate(Bundle si){
super.onCreate(si);
setContentView(R.layout.list1);
s = DateFormat.format("hh:mm:ss ", d.getTime()).toString();
String str=SimpleTimeZone.getTimeZone(TimeZone.getAvailableIDs().toString()).toString();
Log.e("System date",s+" "+" "+str);
mDate=new Date[]{new Date(110,10,5),new Date(109,6,1)};
values.add(new double[] { 142, 123, 142, 152, 149, 122, 110, 120, 125, 155, 146, 150 });
mDataSet=getDataSet(values);
mRenderer=getRenderer();
}
public void onResume(){
super.onResume();
if(mView==null){
LinearLayout lay=(LinearLayout)findViewById(R.id.chart);
mView=ChartFactory.getTimeChartView(getApplicationContext(), mDataSet,mRenderer,"a");
lay.addView(mView);
}else{
mView.repaint();
}
}
protected XYMultipleSeriesRenderer getRenderer(){
XYMultipleSeriesRenderer renderer=new XYMultipleSeriesRenderer();
renderer.setYLabelsAlign(Align.RIGHT);
renderer.setAxisTitleTextSize(16);
renderer.setChartTitleTextSize(20);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);
renderer.setPointSize(5f);
renderer.setMargins(new int[] { 20, 30, 15, 0 });
renderer.setChartTitle("Line Graph");
renderer.setXTitle("x-axis");
renderer.setYTitle("y-axis");
//renderer.setXAxisMin(-2);
//renderer.setXAxisMax(14);
renderer.setXAxisMin(mDate[0].getTime()); renderer.setXAxisMax(mDate[mDate.length-1].getTime());
renderer.setYAxisMin(50);
renderer.setYAxisMax(200);
renderer.setXLabels(6);
renderer.setYLabels(10);
renderer.setAxesColor(Color.GREEN);
renderer.setLabelsColor(Color.MAGENTA);
renderer.setDisplayChartValues(true);
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(Color.YELLOW);
r.setPointStyle(PointStyle.DIAMOND);
renderer.addSeriesRenderer(r);
return renderer;
}
protected XYMultipleSeriesDataset getDataSet(List<double[]> values){
XYMultipleSeriesDataset dataSet=new XYMultipleSeriesDataset();
CategorySeries series=new CategorySeries("mobile");
for (int k = 0; k < values.size(); k++) {
double[] xV=values.get(k);
int seriesLen=xV.length;
for(int l=0;l<seriesLen;l++){
series.add(xV[l]);
}
}
dataSet.addSeries(series.toXYSeries());
return dataSet;
}
public类LineGraphDemo扩展活动{
XYmultiplesseriesdataset mDataSet;
XY多传感器传感器;
私有图形视图mView;
列表值=新的ArrayList();
列表日期=新建ArrayList();
私有日期[]mDate;
字符串s;
日期d=新日期();
创建时受保护的void(Bundle si){
super.onCreate(si);
setContentView(R.layout.list1);
s=DateFormat.format(“hh:mm:ss”,d.getTime()).toString();
String str=SimpleTimeZone.getTimeZone(TimeZone.getAvailableIDs().toString()).toString();
Log.e(“系统日期”,s++++str);
mDate=新日期[]新日期(110,10,5),新日期(109,6,1)};
添加(新的双精度[{142、123、142、152、149、122、110、120、125、155、146、150});
mDataSet=getDataSet(值);
mrender=getRenderer();
}
恢复时公开作废(){
super.onResume();
if(mView==null){
线性布局布局=(线性布局)findViewById(R.id.chart);
mView=ChartFactory.getTimeChartView(getApplicationContext(),mDataSet,mrender,“a”);
lay.addView(mView);
}否则{
mView.repaint();
}
}
受保护的XYMultipleReseriesRenderer getRenderer(){
XYMultipleReseriesRenderer渲染器=新的XYMultipleReseriesRenderer();
renderer.setYLabelsAlign(Align.RIGHT);
setAxisTitleTextSize(16);
渲染器.setChartTitleTextSize(20);
setLabelsTextSize(15);
渲染器。setLegendTextSize(15);
渲染器设置点大小(5f);
setMargins(新的int[]{20,30,15,0});
setChartTitle(“线图”);
renderer.setXTitle(“x轴”);
渲染器。setytle(“y轴”);
//setXAxisMin(-2);
//setXAxisMax(14);
renderer.setXAxisMin(mDate[0].getTime());renderer.setXAxisMax(mDate[mDate.length-1].getTime());
setYAxisMin(50);
setYAxisMax(200);
setXLabels(6);
1.setYLabels(10);
渲染器.setAxesColor(Color.GREEN);
渲染器。setLabelsColor(颜色。洋红色);
renderer.setDisplayChartValues(true);
XYSeriesRenderer=新的XYSeriesRenderer();
r、 setColor(颜色为黄色);
r、 设置点样式(PointStyle.DIAMOND);
渲染器.addSeriesRenderer(r);
返回渲染器;
}
受保护的XYMultipleSeriesDataset getDataSet(列表值){
XYmultiplesseriesdataset数据集=新的XYmultiplesseriesdataset();
类别系列=新类别系列(“移动”);
对于(int k=0;k 对于(int l=0;l@Ammu)有两种方法,我将告诉您使用标签设置轴值的最简单方法,如renderer.addTextLabel(位置,“要显示的字符串”);如果您无法获得,我将告诉您第二种方法感谢您的回复…实际上对于时间序列图,我设置了列表日期=new ArrayList();private Date[]mDate=new Date[]{new Date(110,10,5),new Date(109,6,1)};然后我将渲染器的最小值和最大值设置为renderer.setXAxisMin(mDate[0].getTime());renderer.setXAxisMax(mDate[mDate.length-1].getTime());现在我想设置日期之间的间隔……我怎么做呢?日期之间的间隔是常数吗?比如0,1.5,3.0,它的公共间隔是1.5,对吗?好吧,那么我想你必须做一个计数器,它会随着间隔的增加而增加,然后它应该被添加到一个双数组中,以形成x轴和图的y轴