关于利用 achartengine 画 股票 分时线
2014-11-11 09:17
141 查看
最近工作中需要开发 stock 的分时线, 用到了 achartengine 开源画图软件。
先来看看最终效果
用过 achartengine 的都会发现TimeChart 有BUG,它的x轴 的时间 间距会不一致,你在折线图上的点和实际的
x轴时间 有时会对不起来, 解决的办法就是设置startIndex =9:30 的位置
另一个BUG 就是 TimeChart 的x轴 时间 连续性 ,11:30~13:00 这段时间的数据为空,会形成 下面的效果:
(这样的效果 很明显不是很美观,其实做为程序猿,觉得还不错啊,多有逻辑感,呵呵)
怎么样去修改呢,有两种思路,计算 11:30~13:00多长距离 ,修改AbstractChart 的 drawPath方法,
判断spaceNum 是否大于180(正常每分钟的距离 为2 ,那11:30~13:00时间差为1.5h ,90m*2=180的距离)
不过这种方法涉及的东西比较多,在此不做讨论……(= =~希望有对此做研究的大家一起讨论下)
另一种方法,就是 在返回的x轴数据上判断 x轴时间是否大于13:00 ,如果大于就减去1.5h ,具体代码如下( 修改TimeChart 的drawXLabels方法)
请标明转载地址:http://my.oschina.net/wuchao2877/blog/145311
先来看看最终效果
用过 achartengine 的都会发现TimeChart 有BUG,它的x轴 的时间 间距会不一致,你在折线图上的点和实际的
x轴时间 有时会对不起来, 解决的办法就是设置startIndex =9:30 的位置
另一个BUG 就是 TimeChart 的x轴 时间 连续性 ,11:30~13:00 这段时间的数据为空,会形成 下面的效果:
(这样的效果 很明显不是很美观,其实做为程序猿,觉得还不错啊,多有逻辑感,呵呵)
怎么样去修改呢,有两种思路,计算 11:30~13:00多长距离 ,修改AbstractChart 的 drawPath方法,
float spaceNum = Math.abs(tempDrawPoints[0] - tempDrawPoints[2]);
判断spaceNum 是否大于180(正常每分钟的距离 为2 ,那11:30~13:00时间差为1.5h ,90m*2=180的距离)
不过这种方法涉及的东西比较多,在此不做讨论……(= =~希望有对此做研究的大家一起讨论下)
另一种方法,就是 在返回的x轴数据上判断 x轴时间是否大于13:00 ,如果大于就减去1.5h ,具体代码如下( 修改TimeChart 的drawXLabels方法)
if (showLabels) { paint.setColor(mRenderer.getXLabelsColor()); canvas.drawLine(xLabel - gap, bottom, xLabel - gap, bottom + mRenderer.getLabelsTextSize() / 3, paint); if (label < (Math.round(xLabels.get(0)) + TimeChart.HOURS * 2)) { drawText(canvas, format.format(new Date(label)), xLabel - gap, bottom + mRenderer.getLabelsTextSize() * 4 / 3 + mRenderer.getXLabelsPadding(), paint, mRenderer.getXLabelsAngle()); } else if (label == (Math.round(xLabels.get(0)) + TimeChart.HOURS * 2)) { drawText(canvas, "11:30/13:00", xLabel - gap, bottom + mRenderer.getLabelsTextSize() * 4 / 3 + mRenderer.getXLabelsPadding(), paint, mRenderer.getXLabelsAngle()); } else { drawText(canvas, format.format(new Date( (long) (label + TimeChart.HOURS * 1.5))), xLabel - gap, bottom + mRenderer.getLabelsTextSize() * 4 / 3 + mRenderer.getXLabelsPadding(), paint, mRenderer.getXLabelsAngle()); } }
请标明转载地址:http://my.oschina.net/wuchao2877/blog/145311
相关文章推荐
- 关于利用 achartengine 画 股票 分时线
- 关于android AChartEngine jar包引入错误
- 关于修改 AchartEngine 源码的修改
- 关于利用Flex lineChart绘制类似win系统下资源管理器时序图的例子
- 防股票折线图十字定位(achartengine)
- 关于修改 AchartEngine 源码的修改
- 关于XSuperMES项目使用的AChartEngine图表引擎
- 关于AChartengine点上显示数据的问题
- 关于achartengine的使用一些小经验 -
- 关于AchartEngine中折线图显示点值不全的问题
- 关于java.lang.NoClassDefFoundError: org.achartengine.model.XYMultipleSeriesDataset 错误
- 关于achartengine的使用一些小经验(转)
- 关于AChartengine点上显示数据的问题
- 关于自定义的achartengine中的折线图
- 关于achartengine的使用一些小经验
- 关于 AChartEngine画折线图 的属性设置
- 关于AChartEngine
- 关于achartengine
- 关于achartengine的使用一些小经验 - Mentos
- 关于发布各种股票软件数据格式