‘壹’ android demo 折线图
去http://github.com上下载AchartEngine,里面有别人写羡昌纳好的专门画迅枝这些图的开兄没源代码,参考一下!
‘贰’ Android动态增加数据点的折线图,要怎么实现
首先打开数据源(即已经制作好的EXCEL表格)--选中表格的主体部分--单击图表向导按钮(显示比例左侧)--选择“标准类型”标签--在“图表类型”窗口中选择“折线图”--完成。如果修改数据源中的数据,图表形状随之改变。
‘叁’ android中如何实现,动态的柱状图显示,
有很多动态的第三方库可以使用。例如achartengine
AChartEngine是一款基于Android的图表绘制引擎,它为Android开发者提供了很多实用的图表绘制工具类。
‘肆’ Android MPAndroidChart 折线图设置哪些属性
在org.achartengine.renderer这个包里有一个类BasicStroke,可以改变睁运行线型(实线、虚线、点线),而折线图中用的是XYMultipleSeriesRenderer这个类悉哗,它继承自DefaultRenderer,这个与BasicStroke是一个包里的子类,DefaultRenderer有一个方法是setShowGridY(boolean showGrid),感觉在这个方法里肯定有设置线型的语句,但是我现在没找到AChartEngine的具体五毛源码,不知道这个方法具体是怎样的,只能提供给你一个思路……悄祥我几个月前也捣鼓过AChartEngine
‘伍’ Android自定义View - 仿支付宝月账单折线图
支付宝有个查看月账单的功能,最近一直在学习自定义View,于是就尝试着自己实现了一个类似的折线图。
下面是支付宝消费分析功能截图和自己实现的折线效果截图:
在绘制折线图之前首先要分析折线图需要绘制哪些部分以及如何绘制这些部分,确定了各绘制部分及绘制方法之后再开始具体的绘制。
将折线图分为四个绘制区域:
现在已经知道了折线需要绘制哪些部分以及各部分的绘制方法,接下来要做的就是确定绘制折线各部分所需要的点的坐标。
从下面绘制分析图可以直观地看到月份文字中间点x坐标,数据点x坐标,数据点处圆的圆心x坐标以及消费金额文字中间点x坐标的值是相同的,所以只需要确定数据点的x坐标就行了。
观察支付宝的折线图可以看到第一个数据点距离屏幕左侧和最后一个数据点距离屏幕右侧的宽度是相等的,我们将这个宽度定义为基准宽度mBaseWidth。
将相邻两个数据点之间的宽度定义为mItemWidth,仔细观察可以看出这个宽度大概为 3*mBaseWidth,因为折线图固定显示5个月份的数据,所以mBaseWidth值就确定了:
得到mBaseWidth值后各个数据点的x坐标也就确定了:
从支付宝折线图上可以看到月份的y坐标是固定的,数据点的y坐标是通过消费金额确定的,圆心y坐标和消费金额文字y坐标都依赖于数据点的y坐标。
下面我们就来分别确定月份的y坐标和数据点的y坐标。在绘制分析图中定义了几个参考变量,各变量的含义如下:
从绘制分析图可以看到月份的y坐标范围在区间 [3/4*mHeight, mHeight] 之间,只要以 3/4*mHeight 为基准值加上一个偏移量就可得到月份的y轴坐标,那么如何确定这个偏移量的大小呢?
首先通过下面的方法计算月份文字的高度:
计算出文字高度后选取 fontHeight * 3 / 2 作为偏移量,让月份文字的顶部距离 3/4*mWidth 基准线的高度刚好为 fontHeight。这个偏移量的值不是固定的,如果对最后弯兆绘制效果不满意,可以调整该值到自己满意的效果。
依然先定义一些控制参数:
先说数据点y坐标的确定方法,接下来再给出分析:
从计算公式可以看出数据点y坐标是通过mMaxLineHeight减去一个偏移量得到的,只需要确定偏移量的计算方法就可以了。
首先计算出当前月消费金额和最低消费金额的差值,然后用这个差值除以消费金额的极差mBillRange得到一个比例值,再用这个比例值去乘以mMaxLineSpace就是偏移值,然后用mMaxLineHeight减去偏移值就是数据点的y轴坐标。
数据点y坐标确定之后其它几个点的坐标也就确定了。圆心的y坐标就是数据点y坐标,消费金额文字y坐标通过数据点y坐标减去消费金额文字的 fontHeight * 3 / 2得到。
上面得到的仅仅是在账单金额已经出来情况下数据点的y坐标,那么月份的消费金额数还没出来时数据点y坐标该如何确定呢?因为只是为了演示效果,所以我采用下面的计算方法来得到未出账单月份的数据点y坐标。
确定绘制点的坐标之后,剩下的就是一些需要注意的细节,比如已出账单月份数据点处的圆是实心的,未出账单月份数据点处的圆是空心的。还有数据点之间的连线有虚线和实线之分,实搭岩线的颜色也有不同,绘制的时候注意这些细节就可以了。
顺带介绍一下Android中虚线绘制是通过设置画笔的路径效果来实埋枝租现的:
关于DashPathEffect可以参考我的另一篇文章 Android PathEffect - DashPathEffect 了解一下。
折线图的目的是学习绘制自定义View,跟支付宝的实际逻辑肯定是完全不同的。另外目前项目并没有并没有在onMeasure进行特殊的绘制处理,等以后再优化改进。
项目地址: https://github.com/IvanRich/MonthBill
2017-06-20 增加onMeasure测量过程的处理 diff
‘陆’ android 绘图
这个建议你搜索AChartEngine,这个是专门做报表的。给你一个参考地址
http://blog.csdn.net/lk_blog/article/details/7645668
这个页面中的第一个示例折线图就是一个温度的曲线图,具体我没过多研究,你可以试试。
‘柒’ android怎么让折线图上方显示数字
直接在旁边写数字就可以了。主要画折线图。
步骤一:折线图的坐标集
首先应该创建 XYSeries对象 : 用于提供绘制的点集合的数据
XYSeries series = new XYSeries(titles[i]); // 根据每条线的名称创建
将所有的坐标加入这个集合
series .add (xV[k], yV[k]);
XYMultipleSeriesDataset对象 用于 保存点集数据 ,包括每条曲线的X,Y坐标
// 用于数据的存放
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset .addSeries (series);
步骤二:折线图的样式集
定义每条曲线的颜色
int [] colors = new int [] {Color. BLUE ,Color. GREEN };
定义每条曲线的点的形状
PointStyle [] styles =
new PointStyle []{ PointStyle . CIRCLE , PointStyle . DIAMOND };
曲线图的格式,包括颜色,值的范围,点和线的形状等等 都封装在 XYSeriesRender对象中,再将XYSeriesRender对象封装在 XYMultipleSeriesRenderer 对象中
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(colors[i]);
r.setPointStyle(styles[i]);
r.setFillPoints(fill);
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.addSeriesRenderer(r);
设置折线图名称,坐标轴的名称,坐标轴的起点重点,坐标轴的颜色,坐标轴上数字的颜色
setChartSettings(renderer, "Line Chart Demo" , "X" , "Y" , - 1 , 12, 0, 35 , Color. WHITE , Color. WHITE );
步骤三:显示折线图
View chart = ChartFactory. getLineChartView ( this , dataset, renderer);
setContentView(chart);