Android-Charts

这里是android-charts的说明页面

a collection of android charts writen in java, can use in your android apps when you need.
android-charts是一套基于Java和Android开发的图形图表控件,

including these charts blow:
目前该套图表主要包括以下组件:

  1. 网格图(gird chart)
  2. 线图(line charts),包含单线图和多线图
  3. 柱状图(stick charts),包含基本柱状图和特殊柱状图 支持显示均线
  4. K线或蜡烛线图(candle stick-chart) 支持显示均线
  5. 饼图(pie chart or pizza chart) 包括基本饼图和分割饼图
  6. 雷达图或蛛网图(radar chart or spider web chart) 包含面积雷达图

以上组件目前均以稳定版本发布,已有组件目前正在不断完善,新的组件在不断的添加中。

Some charts blow is under developing:
正在开发中的图表:

  1. 面积图(area charts),包含单线面积图和多线面积图
  2. 柱状图(stick charts),包含分段面积图
  3. MACD等证券相关图表(MACD Stick chart etc.)

You can download from:
本地下载地址:
http://lidaren.com/code/androidcharts/AndroidCharts.zip

Project management URL:
项目代码管理地址:
https://github.com/limccn/Android-Charts
https://code.google.com/p/android-charts/

If you want to join us please leave a comment blow in comment area.Thank you!
如果您有意加入到本框架的开发过程,成为一名Android-Charts的贡献者,欢迎在本文的留言区域留言。谢谢。

Screenshots:
以下是画面截图(左上角为控件标题):
ScreenShot

  1. 王晓龙
    April 8th, 2014 at 09:44 | #1

    我再github上看到了你写的控件,给了我很大启发,我现在在做K线图一类的图表,正好用到了您开发的这款控件,但是有些地方使用的不太舒服,比如我想要用字符串的X轴,而不是int的日期数轴,还有其他一些小修改,我也想加入这个框架的开发。

    • 李大仁
      April 15th, 2014 at 16:03 | #2

      十分感谢您能持续关注Android-Charts的开发,请留下您的邮箱或github的用户名,我会尽快与您联系。

  2. 古谋
    April 28th, 2014 at 17:54 | #3

    大神呐,好像所有的画图计算比例的时候是不是少了个括号啊? 例如MASlipStickChar.java里面的drawLines方法: float lineLength = getDataQuadrantPaddingWidth / displayNumber – 1; 分母是不是要加个括号??

  3. 李大仁
    April 28th, 2014 at 18:38 | #4

    @古谋 大神愧不敢当,BUG倒应该算一个,这个-1应该换成-stickSpacing最好。这里的-1在Version0.1.1中是为了保证画线的各个点能够在各stick的中心点而设置的,
    getDataQuadrantPaddingWidth / displayNumber之后的值是stick的宽度+stick间的空白。
    Version0.1.1 stickSpacing始终是1,所有不会有问题。现在stickSpacing改为用户可设置的属性后,默认情况下stickSpacing = DEFAULT_STICK_SPACING 也就是1。如果不修改stickSpacing的话,是看不出来BUG的效果的。但是stickSpacing如果设置的比较大,那么绘制出来线条的各个点会偏移各stick的中心点。

    这里的-1会在下面的代码中加回来,请注意下面的代码
    startX = startX + 1 + lineLength;

  4. 李大仁
    April 28th, 2014 at 18:45 | #5

    @古谋 已在github上提交了issues票,请持续关注
    https://github.com/limccn/Android-Charts/issues/2

  5. 古谋
    May 8th, 2014 at 17:32 | #6

    @李大仁 float lineLength = getDataQuadrantPaddingWidth / displayNumber – 1; 注释上写的不是计算两点之间的距离吗? 比如说我要显示5个点,那两点距离应该是全部距离除以4才对呀? 而不是除以5再减去1或stickSpacing吧?难道我理解错了?

  6. 李大仁
    May 9th, 2014 at 09:49 | #7

    @古谋 MASlipStickChart中的均线线条的总点数与stick的总根数一致,线条的起点和终点是第一根和最后一根stick的水平中心点,因此两点之间的距离是两根stick中心点的距离,即stick宽度+stickspacing的值,getDataQuadrantPaddingWidth / displayNumber计算后得到就是stick宽度+stickspacing,为了能将线条的各点定位到stick的水平中心点,需要获取stick宽度/2的值,所以计算时需要先减去stickspacing,定位完成后再在For循环后增加回去。详细参考已发送到您的留言email中,请注意查收。

  7. 乔社岭
    May 13th, 2014 at 09:13 | #8

    您好,李老师,下载下来好发现从getseletetIndex()里获取到的值和坐标的值对应不上。可以给点提示吗?android的。ios的没有问题。谢谢!

  8. 李大仁
    May 21st, 2014 at 09:38 | #9

    @乔社岭
    问题已确认,两边getseletetIndex算法不一致导致,目前Android-Charts的开发稍晚于Cocoa-Charts,我近期会对两者进行统一,感谢您的持续关注。

  9. Candle stick chart
    June 6th, 2014 at 16:54 | #10

    你好,我用Candlestick 做K线的时候,ohlc如果是小于1的数值Y的区分就很小,基本就是一条横线,怎么把它的space加大一点

  10. Candle stick chart
    June 9th, 2014 at 10:09 | #11

    为什么Candlestick 中maxValue要+10,看了半天知道为什么小于1的时候显示出问题的原因了,不加10就OK了

  11. 李大仁
    June 10th, 2014 at 09:25 | #12

    @Candle stick chart 您说的问题属于坐标轴计算方法的遗留问题,目前使用配置化方式设置各图表的功能正在开发中,请持续关注。另外,目前android设备的浮点运算功能已经非常完善,部分历史遗留问题也会持续改进。

  12. Wiggin
    June 11th, 2014 at 10:35 | #13

    李老师,看了一下,很好。发现一个问题,stick图的y轴刻度有问题,StickChart.initAxisY()中, float average = (int) ((maxValue – minValue) / this.getLatitudeNum()) / 100 * 100; 当间距小于100, average=0, 刻度不会递增变化。LineChart中就没有这个问题。

  13. Candle stick chart
    June 12th, 2014 at 08:18 | #14

    可以把int改为float

  14. 李大仁
    June 12th, 2014 at 09:47 | #15

    @Candle stick chart 如果不考虑性能,改为double更合适,ARMv7以下设备建议将/ 100 * 100这部分内容去掉即可,最初设计Android-Charts时为了性能要求,将全部浮点数据采用的是整形运算,即将数据乘以一个固定的倍数100,例如123.45 全部换成12345,在无浮点运算单元的设备上使用整数的速度要比用浮点运算速度快很多

  15. Candle stick chart
    June 12th, 2014 at 12:13 | #16

    根据需要改吧,我用到的改为float就可以了,不过确实有很多改进的空间
    如果用得到就再大范围的修改

  16. 李大仁
    June 13th, 2014 at 09:27 | #17

    Android-Charts技术交流QQ群现已开通,欢迎加入。群号:170987350

  17. donlua
    June 18th, 2014 at 16:11 | #18

    你好,我看了一下。提一个改进的建议:是否应该增加多一条y轴,因为有些图表可能是需要左右两边都显示y轴的,而这个从基础类开始就是最多只能显示一条y轴。

  18. June 27th, 2014 at 11:01 | #19

    I don’t even know how I ended up here, but I thought this poat was great.
    I do not know who you are but definitely you are going to a famous
    blogger if you are not already 😉 Cheers!

  19. 李大仁
    June 27th, 2014 at 11:17 | #20

    @donlua
    确实如此,Android-Charts会在v0.2 之后的下一个版本进行代码重构,届时将支持你所说的功能。敬请期待

  20. 石头
    June 27th, 2014 at 14:28 | #21

    我在Github上 下载 最新版本,导入项目后缺少ICrossLines 这个类,是怎么回事

  21. 李大仁
    July 3rd, 2014 at 10:43 | #22

    @石头
    ICrossLines已提交,目前master分支为不稳定版本,如果准备在产品中使用,请使用version0.2

  22. Candle stick chart
    July 3rd, 2014 at 18:22 | #23

    如果可以像achartengine一样有combine模式就更加OK了,感觉会比它更出名

  23. 李大仁
    July 4th, 2014 at 12:48 | #24

    @Candle stick chart
    BOLLMACandleStickChart 自身就已经组合了蜡烛线、曲线、区域带三种图形,实现起来并不是太难,只是最初设计Android-Charts时图表配置功能和代码结构不够完善,因此需要再对Android-Charts的代码进行重构,届时肯定会有combine模式,欢迎持续关注。

  24. fatsoon
    July 9th, 2014 at 23:45 | #25

    最近在研究k线和指标线,希望加入开发

  25. fatsoon
    July 9th, 2014 at 23:58 | #26
  26. 李大仁
    July 10th, 2014 at 13:17 | #27

    @fatsoon 感谢您持续关注Android-Charts的开发,您可以通过github来提交你的代码请求和BUG,或者使用QQ方式参与技术讨论,Android-Charts技术交流QQ群已开通,群号:170987350

  27. July 23rd, 2014 at 11:58 | #28

    Bardzo dobry tekst, aż zachęca do dalszego czytania

  28. Turbe
    August 5th, 2014 at 17:31 | #29

    李老师:求帮助,最近也是刚刚开始学这个K线图开发。是不是有好几种方法啊。

  29. Toxic
    September 16th, 2014 at 10:16 | #30

    李老师您好 请问如何获取chart中的每一个点的数据

  30. smallcobble
    September 18th, 2014 at 12:21 | #31

    李老师,你好,我想做一个雷达图,效果类似这个http://image.baidu.com/i?ct=503316480&z=0&tn=baiduimagedetail&ipn=d&word=五边形%20能力图&pn=1&spn=0&di=136981608500&rn=1&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=3799851802%2C2134775552&os=2686836575%2C3946622817&ln=1993&fr=ala2%2Cala2&sme=0&cg=&objurl=http%3A%2F%2Fimgsrc.baidu.com%2Fforum%2Fw%3D580%2Fsign%3D56ef3a54720e0cf3a0f74ef33a47f23d%2Ff3fe3adbb6fd526616abab52ab18972bd50736ad.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fptjkw_z%26e3Bkwt17_z%26e3Bv54AzdH3FrAzdH3F8dba00c8cm
    不知道用你这个能不能实现。(图片无法上传,弄了个链接)

  31. huguojunsy
    November 28th, 2014 at 01:53 | #32

    非常好的组件,赞一个先。
    不过给一点建议哈,个人觉得什么MA图,MACD图不需要不需要“实现”,其实这些图就是在画布的同一个区域中叠加了多个类型的图而已。
    个人觉得可以这样抽象:
    –总图
    —-子图区1
    ——叠加图1
    ——–线型
    ———-点型

    • 李大仁
      December 4th, 2014 at 14:02 | #33

      非常感谢您的支持,叠加图的方式在最早设计这个库时考虑过,只不过当时Android的图形性能并不能达到理想要求,会有错绘和重绘的问题,因而采用了现在这种方式。现在Android已经改进的很好了,叠加方式实现完全可行,只是调整和代码重构需要较多的时间,希望您能持续关注和支持。谢谢。

  32. mizyeh
    March 1st, 2015 at 17:07 | #34

    設了中斷點 setOnTouchGestureListener 裡的 onTouchDown/onTouchMoved/onTouchUp 都不會觸發,不知道是什麼原因?

  33. Layne
    March 30th, 2015 at 11:07 | #35

    李老师,怎么隐藏Y轴?

  34. Layne
    March 30th, 2015 at 11:29 | #36

    X轴和Y轴的字体大小调整貌似不起作用

  35. April 28th, 2015 at 15:56 | #37

    你的那个饼图的有BUG的,那个白百分比会写到外面去而且算百分比的方法也没说明

  36. Mr.贾
    September 27th, 2015 at 11:59 | #38

    李老师,您好,现在github上 androidcharts是测试版本吧?

  37. 怪兽
    October 19th, 2015 at 20:24 | #39

    李老师K线不能滑动吗

  38. 李大仁
    October 20th, 2015 at 16:40 | #40

    @怪兽
    同时用两跟手指可以滑动的

  39. 李大仁
    October 20th, 2015 at 16:41 | #41

    @Mr.贾 master是开放测试版本,几个分支都是稳定版本

  40. 李大仁
    October 20th, 2015 at 18:22 | #42

    @Mr.贾 @怪兽 Android-Charts技术交流QQ群现已开通,欢迎加入。群号:170987350

  41. wenzong
    October 24th, 2015 at 18:50 | #43

    大神,求指点下!正在画K线图

  42. wenzong
    October 24th, 2015 at 18:51 | #44

    大神 我的QQ号 541951363 麻烦您有空尽快指点下 十分感谢

  43. jackball
    January 24th, 2016 at 19:03 | #45

    请问怎么设置x轴线和Y轴线带一个小箭头呢?

  44. doris
    February 3rd, 2016 at 17:03 | #46

    大神,请问立体的柱状图可以实现吗?

  1. July 14th, 2012 at 19:00 | #1
  2. August 3rd, 2012 at 01:50 | #2
  3. July 13th, 2013 at 00:16 | #3
  4. March 16th, 2014 at 01:22 | #4