折线 曲线图的实现,图表

这里主要说的是hellocharts框架

最新的开源项目地址 https://github.com/lecho/hellocharts-android/releases

1.自己做的一个折线图

项目的源码http://www.oschina.net/code/snippet_2702417_56390

其中的一些主要代码的注解
(1)
Axis axisX = new Axis(axisValues); // X轴,axisValues自己传入的x轴上的坐标
data.setAxisXBottom(axisX);
chartView.setLineChartData(data);
// chartView.setViewportCalculationEnabled(false);
//设置了当前的视图的 范围(y轴是整个范围,x轴为1/3的视图,所以此时能够在x轴方向上滑动)
chartView.getChartComputator().setCurrentViewport(0, maxTop, numberOfPoints/3, -6);

(2)
Axis axisY = new Axis().setHasLines(true);// 添加y轴的线
//自定义的坐标显示的格式,这里就是横坐标的数值之后加上".0%"字样
axisY.setFormatter(new SimpleValueFormatter(0, true, new char[] { 1, 2, 3 }, new char[] { '.','0','%' }));
data.setAxisYLeft(axisY);
 //data.setBaseValue(Float.NEGATIVE_INFINITY);
resetViewportY(chartView);


(3)
饼图每个模块的点击监听
//饼图的点击监听
piechartView.setOnValueTouchListener(new PieChartOnValueTouchListener() {
@Override
public void onValueTouched(int paramInt, ArcValue paramArcValue) {
// TODO Auto-generated method stub
paramArcValue.getValue();//这个模块所占的百分比
}
@Override
public void onNothingTouched() {
// TODO Auto-generated method stub
}
});

(4)//让坐标轴以自定义的跨度自增长,并且实现格式化,如本例中显示的格式 “-3.5%”
	List<AxisValue> values = new ArrayList<AxisValue>();
		for( Float i = -3.5f; i < 4.0f; i+= 0.5f){//以0.5的跨度增长
		    AxisValue value = new AxisValue(i,(i.toString()+"%").toCharArray());
		    values.add(value);
		}
		//自定义y轴坐标
		axisY.setValues(values);
		axisY.setMaxLabelChars(5);

(5)
//坐标轴  
    Axis axisX = new Axis(); //X轴  
    axisX.setHasTiltedLabels(true);  //X坐标轴字体是斜的显示还是直的,true是斜的显示   
    axisX.setTextColor(Color.WHITE);  //设置字体颜色
  //axisX.setName("date");  //表格名称
    axisX.setTextSize(10);//设置字体大小
    axisX.setMaxLabelChars(8); //最多几个X轴坐标,意思就是你的缩放让X轴上数据的个数7<=x<=mAxisXValues.length
    axisX.setValues(mAxisXValues);  //填充X轴的坐标名称
    data.setAxisXBottom(axisX); //x 轴在底部     
  //data.setAxisXTop(axisX);  //x 轴在顶部
    axisX.setHasLines(true); //x 轴分割线

  // Y轴是根据数据的大小自动设置Y轴上限(在下面我会给出固定Y轴数据个数的解决方案)
    Axis axisY = new Axis();  //Y轴  
    axisY.setName("");//y轴标注
    axisY.setTextSize(10);//设置字体大小
    data.setAxisYLeft(axisY);  //Y轴设置在左边
  //data.setAxisYRight(axisY);  //y轴设置在右边 


    //设置行为属性,支持缩放、滑动以及平移  
    lineChart.setInteractive(true); 
    lineChart.setZoomType(ZoomType.HORIZONTAL);  
    lineChart.setMaxZoom((float) 2);//最大方法比例
    lineChart.setContainerScrollEnabled(true, ContainerScrollType.HORIZONTAL); 



(6)其他的具体的学习还是看源码,你都是会看懂的

这里更为直观的看下(1)

(1)的另一种实现 
axisX.setFormatter(new SimpleValueFormatter(0, false, null, ":00".toCharArray()));


其他的图表的框架



AndroidCharts
图表控件  https://github.com/HackPlan/AndroidCharts
Android-Charts
国人实现的图表控件  https://github.com/limccn/Android-Charts
MPAndroidChart
非常不错的图表工具。https://github.com/PhilJay/MPAndroidChart


其他的图表的框架



AndroidCharts
图表控件  https://github.com/HackPlan/AndroidCharts
Android-Charts
国人实现的图表控件  https://github.com/limccn/Android-Charts
MPAndroidChart
非常不错的图表工具。https://github.com/PhilJay/MPAndroidChart
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值