手把手教你实现折线图之------安卓最好用的图表库hellocharts之最详细的使用介绍

因为项目需要搞一个折线图,按照日期显示相应的成绩,所以有了本文。
以前用过一次XCL-chart,但是感觉只适合固定图表,不去滑动的那种,因为你一滑动太卡了你懂得(毕竟作者好久没更新优化了),拙言大神我开玩笑的 ,毕竟我加你的群大半年了 - -

第二研究了一下achartenginee图表框架,一不美观,二 achartenginee的可定制性实在不敢恭维,做出来的图表根本不能满足需求

再试了一次网传最好用的MPchart和hellochart同一年出来的,但是要比hellochaet早点。说实话还可以用,定制性强大,简单的表也很容易。
BUT性能一般,我们都知道当使用View时,不流畅或者有卡顿感我直接就想…砸东西了!(要知道小于60fps我是不能容忍的) 但是hellochart在保证美观的同时,缩放+滑动我能给95分以上。,,尤其坐标轴的平滑变化处理我感觉Hellochart简直不能再牛了!容我再夸夸,毕竟深得我心啊~~

**总结:**如果你需要很多的功能,各种组合,或者显示,对界面没有太大的要求的话就选择MPchart。
如果你需要的是能满足基本的图表功能同时,还要兼顾美观性,流畅性,强烈建议hellochart。


现在HelloCharts支持以下chart类型:

Line chart(cubic lines, filled lines, scattered points)(线图)
Column chart(grouped, stacked, negative values)(柱形图)
Pie chart(饼图)
Bubble chart(泡泡图)
Combo chart(columns/lines)(柱图和线图的组合图)
Preview charts(for column chart and line chart)(预览图这个功能最牛逼,我还没用呢,见下图)
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

这样的效果和界面我只能说“天斧神功”了。


OK闲话说完该看一下怎么用了。
首先libs添加:
hellocharts-library-1.5.8.jar
给出地址:http://download.csdn.net/detail/u012534831/9531494

下来,XML添加一下布局。

1. <lecho.lib.hellocharts.view.LineChartViewandroid:id="@+id/line_chart"android:layout_width="fill_parent"android:layout_height="300dp"/>

然后一个是横坐标,一个是数据点数组。

private LineChartView lineChart;String[] date = {"10-22","11-22","12-22","1-22","6-22","5-23","5-22","6-22","5-23","5-22"};//X轴的标注int[] score= {50,42,90,33,10,74,22,18,79,20};//图表的数据点private List<PointValue> mPointValues = new ArrayList<PointValue>();private List<AxisValue> mAxisXValues = new ArrayList<AxisValue>();

下来oncreate中3个方法:

 protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lineChart = (LineChartView)findViewById(R.id.line_chart);getAxisXLables();//获取x轴的标注getAxisPoints();//获取坐标点initLineChart();//初始化}
/*** 设置X 轴的显示*/private void getAxisXLables(){for (int i = 0; i < date.length; i++) {    mAxisXValues.add(new AxisValue(i).setLabel(date[i]));    }    	}/*** 图表的每个点的显示*/private void getAxisPoints(){for (int i = 0; i < weather.length; i++) {    mPointValues.add(new PointValue(i, weather[i]));      } 
private void initLineChart(){Line line = new Line(mPointValues).setColor(Color.parseColor("#FFCD41"));  //折线的颜色(橙色)List<Line> lines = new ArrayList<Line>();    line.setShape(ValueShape.CIRCLE);//折线图上每个数据点的形状  这里是圆形 (有三种 :ValueShape.SQUARE  ValueShape.CIRCLE  ValueShape.DIAMOND)line.setCubic(false);//曲线是否平滑,即是曲线还是折线line.setFilled(false);//是否填充曲线的面积line.setHasLabels(true);//曲线的数据坐标是否加上备注
//		line.setHasLabelsOnlyForSelected(true);//点击数据坐标提示数据(设置了这个line.setHasLabels(true);就无效)line.setHasLines(true);//是否用线显示。如果为false 则没有曲线只有点显示	line.setHasPoints(true);//是否显示圆点 如果为false 则没有原点只有点显示(每个数据点都是个大的圆点)lines.add(line);  LineChartData data = new LineChartData();  data.setLines(lines);  //坐标轴  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.lengthaxisX.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);  lineChart.setLineChartData(data);  lineChart.setVisibility(View.VISIBLE);/**注:下面的7,10只是代表一个数字去类比而已* 当时是为了解决X轴固定数据个数。见(http://forum.xda-developers.com/tools/programming/library-hellocharts-charting-library-t2904456/page2);*/Viewport v = new Viewport(lineChart.getMaximumViewport()); v.left = 0; v.right= 7; lineChart.setCurrentViewport(v); }
Viewport v = new Viewport(lineChart.getMaximumViewport()); v.left = 0; v.right= 7; lineChart.setCurrentViewport(v); 
   这4句代码可以设置X轴数据的显示个数(x轴0-7个数据),1    当数据点个数小于(29)的时候,缩小到极致hellochart默认的是所有显示。2    当数据点个数大于(29)的时候,    2.1  若不设置axisX.setMaxLabelChars(int count)这句话,则会自动适配X轴所能显示的尽量合适的数据个数。  2.2  若设置axisX.setMaxLabelChars(int count)这句话, 33个数据点测试, 2.2.1  若 axisX.setMaxLabelChars(10); 里面的10大于v.right= 7; 里面的7,则 刚开始X轴显示7条数据,然后缩放的时候X轴的个数会保证大于7小于102.2.2  若小于v.right= 7;中的7,反正我感觉是这两句都好像失效了的样子 - -! 若这儿不设置 v.right= 7; 这句话,则图表刚开始就会尽可能的显示所有数据,交互性太差

下面看一下固定Y轴个数的解决方案:
例:想要固定Y轴数据从0-100

Axis axisY = new Axis().setHasLines(true);
axisY.setMaxLabelChars(6);//max label length, for example 60
List<AxisValue> values = new ArrayList<>();
for(int i = 0; i < 100; i+= 10){AxisValue value = new AxisValue(i);String label = "";value.setLabel(label);values.add(value);
}
axisY.setValues(values);

可见,只要自己去按照比例去分割数据就行了。
好,基本就到这儿。
源码github地址:https://github.com/qht1003077897/hellocharts-line.git
csdn下载地址:http://download.csdn.net/detail/u012534831/9531702
欢迎交流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33930.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文学会炫酷图表利器pyecharts,领导能不重用你?

前言 前段时间&#xff0c;领导突然把我叫到办公室… 公司高层要看看上半年度项目组业绩数据分析&#xff0c;准备下吧&#xff01;可以嘛&#xff1f; 没办法&#xff0c;硬着头皮也要上&#xff01;一口答应&#xff0c;保证完成任务&#xff01; 说到数据分析&#xff0…

手把手教你用plotly绘制excel中常见的8种图表

最近不是在学习plotly嘛&#xff0c;为了方便理解&#xff0c;我们这里取excel绘图中常见的16种图表为例&#xff0c;分两期演示这些基础图表怎么用plotly进行绘制&#xff01; 第一部分&#xff1a;柱状图、条形图、折线图、面积图、饼图与圆环图、散点图、气泡图和极坐标(雷达…

这几个用 Pyecharts 做出来的交互图表,领导说叼爆了!

点击上方蓝色小字&#xff0c;关注“涛哥聊Python” 重磅干货&#xff0c;第一时间送达 作者 | 旧时晚风拂晓城 编辑 | JackTian来源 | 杰哥的IT之旅&#xff08;ID&#xff1a;Jake_Internet&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;Hc220066&#xff09; 一…

程序员最关心的问题,我都帮你们问AI了

前言 微信关注【小白技术圈】发送【Y99】获取国内免登录免梯子玩法 最近几天互联网刮起了一阵ChatGPT风&#xff0c;起因是OpenAI发布了一个全新的聊天机器人模型—— ChatGPT&#xff0c;可以像人类交谈般回答大部分问题甚至还能直接帮你写代码。 我们先来试试让它帮我们写个代…

SCITIC论坛 | 数字化创意探索——从流浪地球说起

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 随着《流浪地球2》的火热出圈&#xff0c;数字虚拟人、元宇宙、AIGC等AI元素备受关注。去年11月&#xff0c;美国人工智能研究公司Open AI发布聊一款全新聊天机器人模型“ChatGPT”, 推出后迅速火爆全球&#x…

今天15:00 | 从流浪地球说起,一起聊一聊数字创意

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 随着《流浪地球2》的火热出圈&#xff0c;数字虚拟人、元宇宙、AIGC等AI元素备受关注。去年11月&#xff0c;美国人工智能研究公司Open AI发布聊一款全新聊天机器人模型“ChatGPT”, 推出后迅速火爆全球&#x…

【诏安扑克牌玩法 —— 宝】庄家(宝官)一定会赢吗?

统计庄家&#xff08;宝官&#xff09;赢得概率 宝的玩法介绍关于洗牌实验步骤实验结果原始数据源代码&#xff08;Python&#xff09;要想不输&#xff0c;惟有不赌&#xff01; 宝的玩法介绍 这是一种简单、不需要技术仅靠运气的扑克牌玩法。 开始前先在牌组中取出大小王&a…

Datawhale:愿竞赛圈少一些人身攻击和热点炒作

作者&#xff1a;Datawhale 关于Kaggle瓜事件&#xff0c;最近得到很多竞赛圈朋友的关注&#xff0c;也导致很多参加竞赛的朋友深受其扰。事实上整个事件是因为kaggle比赛上两个队伍因为提交的sub一样&#xff0c;被取消了成绩&#xff0c;不管原因是什么&#xff0c;有错认错&…

pygame实现王思聪吃热狗小游戏(双人版)

游戏介绍: 一款单人版的思聪吃热狗游戏&#xff0c;你可以自己调节思聪的位置&#xff0c;移动时会消耗能量10&#xff0c;游戏中吃到热狗分数加 1&#xff0c;能量加 20&#xff0c;最后的目标就是称霸世界咯&#xff0c;吃掉所有的热狗即游戏胜利。王思聪能量消耗完毕即游戏…

基于C++实现惊险刺激的Flappy Bird设计

资源下载地址&#xff1a;https://download.csdn.net/download/sheziqiong/85941853 资源下载地址&#xff1a;https://download.csdn.net/download/sheziqiong/85941853 目录 1、 题目描述和题目要求 2 2、 需求分析 2 3、总体设计 5 3.1 功能模块设计 5 3. 状态信息栏&#x…

[COGS 2897] [THUPC 2017] 天天爱射击

COGS传送门 题目描述 小C爱上了一款名字叫做《天天爱射击》的游戏&#xff0c;在这款游戏中可以用子弹将木板打碎。如图所示&#xff0c;这个游戏有一些平行于x轴的木板。现在有一些子弹&#xff0c;按顺序沿着y轴方向向这些木板射去。第 i i i块木板被 S i S_i Si​个子弹击…

【选恐症安利】小熊猫C++原创配色

【选恐症安利】小熊猫C原创配色! 本人是超级强迫症和选择恐惧症&#xff01;经过三天的调色&#xff0c;成就了下面的情景&#xff1a; 哇&#xff0c;绝了&#xff01; 你可以在这里导入配色&#xff1a; 好了&#xff0c;放链接&#xff01; wwt.lanzoum.com/iv4VW0cbkep…

[day2]python网络爬虫实战:爬取美女写真图片(增强版)

l> 我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 文章目录 1.开发环境2.第三方库3.实现1.分析url格式2.分析图片格式3.保存图片到本地4.输入页数 4.优化1.防止被封2.多线程下载3.便捷获取图片地址 5.效果6.G…

Python写网络爬虫(一)

文章目录 网络爬虫简介爬虫在使用场景中的分类爬虫的矛与盾需要知道的协议常用请求头信息常用响应头信息requests模块如何使用requests&#xff1a;&#xff08;requests模块的编码流程&#xff09;新手实战演练正式入门爬虫get 方法的常用参数&#xff1a;简易网页采集器 首先…

那个顶撞雷军还爱在办公室打乒乓的副总裁——周光平

文章原创来自洞见网&#xff1a;http://www.localonline.com.cn/start/people/712.html&#xff0c;转载请注明出处。 近日&#xff0c;东南大学(原南京工学院)1977级校友周光平、严星夫妇捐资2000万元&#xff0c;在母校设立“平星基金”&#xff0c;用于支持信息科学与工程学…

雷军—我十年的程序员生涯

内容转自&#xff1a;http://blog.sina.com.cn/s/blog_4b0e23c90100b2qf.html 最近&#xff0c;和UCWEB同事讨论&#xff0c;怎么才能把我们的UCWEB做到极致。我说&#xff0c;“手机上的平台非常多&#xff0c;如果想做好&#xff0c;需要足够多、足够优秀的程序员。优秀的程序…

雷军谈人生三段低谷:站店卖货、泡吧泡论坛、错失互联网第一波浪潮!

自2020年小米十周年雷军进行了人生首次公开演讲以来&#xff0c;他似乎想要养成一种习惯&#xff0c;每年都举办一次年度演讲。 继2020年“相信自己&#xff0c;一往无前”和2021年“我的梦想&#xff0c;我的选择”两场年度演讲后&#xff0c;这不&#xff0c;在小米迎来12周…

中国第一程序员求伯君,WPS之父,雷军也佩服的人

中国第一程序员求伯君&#xff0c;WPS之父&#xff0c;最强码农的传奇经历 转载知乎冷冷读书 https://www.zhihu.com/people/leng-leng-80-6 2018年底&#xff0c;金山举办创业三十年庆典&#xff0c;三位创始人&#xff0c;求伯君、雷军和张旋龙相继到场。庆生中&#xff0c;雷…

用互联网思想武装自己---雷军

两年前的4月6日&#xff0c;我们几个人&#xff0c;在北四环的银谷大厦静悄悄的创办了小米公司&#xff0c;一起喝了碗小米粥&#xff0c;就开始艰难的创业之旅。仅仅两年时间&#xff0c;小米在百度手机品牌排行榜排在前五名&#xff0c;也在淘宝销售排行榜名列前茅&#xff0…

身价10亿的程序员 雷军当年也为他打工——WPS之父 求伯君

他的前半生&#xff0c;值得我们每一个人深思。 在普通人眼里&#xff0c;他寂寂无名&#xff0c;只有年岁稍长的文化人&#xff0c;才听说过他传奇般的存在。 在IT人眼里&#xff0c;他是块活化石&#xff0c;中国第一的大旗除了他&#xff0c;没人敢抗&#xff01; 他是求…