XCL-Chart柱形图的期望线/分界线
周日在柱形图上加了两个小功能,当中之中的一个是加上了期望线/分界线,功能非常小,但我个人非常喜欢这个功能(好像之前也没看到别的图表库原生支持这个。
)
主要是加上这些小小的横线后,能非常明显的区分出数据的层次。通过柱形与线的对照,能够一下就知道,眼下处于什么层次或阶级。
这样的功能在强调某个底线或分级时特别有感觉。比方。销售人员的销售底线。价格的红线等,在商业报表中表强调时应当非常实用。只是我在Demo中是举了个考试成绩的柱形图。
虽不那么商业化。但应当能够比較让人好理解这个线的意义所在。
图例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGNsMTY4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
附上XCL-Charts实现此图的代码:
package com.demo.xclcharts.view; import java.text.DecimalFormat;
import java.util.LinkedList;
import java.util.List; import org.xclcharts.chart.BarChart;
import org.xclcharts.chart.BarData;
import org.xclcharts.chart.DesireLineData;
import org.xclcharts.common.IFormatterDoubleCallBack;
import org.xclcharts.common.IFormatterTextCallBack;
import org.xclcharts.renderer.XEnum; import android.content.Context;
import android.graphics.Color; public class BarChart03View extends GraphicalView { //标签轴
private List<String> chartLabels = new LinkedList<String>();
private List<BarData> chartData = new LinkedList<BarData>();
private List<DesireLineData> mDesireLineDataSet = new LinkedList<DesireLineData>(); public BarChart03View(Context context) {
super(context);
// TODO Auto-generated constructor stub
chartLabels();
chartDataSet();
chartDesireLines();
chartRender(); } private void chartRender()
{
try { BarChart chart = new BarChart();
//图所占范围大小
chart.setChartRange(0.0f, 0.0f, getScreenWidth(),getScreenHeight());
chart.setCanvas(this.mCacheCanvas);
if(chart.isVerticalScreen())
{
chart.setPadding(15, 20, 8, 10);
}else{
chart.setPadding(20, 20, 10, 8);
} //标题
chart.setChartTitle("小小熊 - 期末考试成绩");
chart.setChartSubTitle("(XCL-Charts Demo)");
//数据源
chart.setDataSource(chartData);
chart.setLabels(chartLabels);
chart.setDesireLines(mDesireLineDataSet); //图例
chart.getLegend().setLeftLegend("分数");
chart.getLegend().setLowerLegend("科目"); //数据轴
chart.getDataAxis().setAxisMax(100);
chart.getDataAxis().setAxisMin(0);
chart.getDataAxis().setAxisSteps(5);
//指隔多少个轴刻度(即细刻度)后为主刻度
chart.getDataAxis().setDetailModeSteps(4); //背景网格
chart.getPlotGrid().setHorizontalLinesVisible(true); //横向显示柱形,如想看横向显示效果,可打开这两行的凝视就可以
//chart.setChartDirection(XEnum.Direction.HORIZONTAL);
//chart.getPlotGrid().setVerticalLinesVisible(true); //定义数据轴标签显示格式
chart.getDataAxis().setLabelFormatter(new IFormatterTextCallBack(){ @Override
public String textFormatter(String value) {
// TODO Auto-generated method stub
Double tmp = Double.parseDouble(value);
DecimalFormat df=new DecimalFormat("#0");
String label = df.format(tmp).toString();
return (label);
} }); //在柱形顶部显示值
chart.getBar().setItemLabelsVisible(true);
//设定格式
chart.setItemLabelFormatter(new IFormatterDoubleCallBack() {
@Override
public String doubleFormatter(Double value) {
// TODO Auto-generated method stub
DecimalFormat df=new DecimalFormat("#0");
String label = df.format(value).toString();
return label;
}}); //隐藏Key
chart.setPlotKeyVisible(false);
//绘制图
chart.render();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void chartDataSet()
{
//标签相应的柱形数据集
List<Double> dataSeriesA= new LinkedList<Double>();
dataSeriesA.add(98d);
dataSeriesA.add(100d);
dataSeriesA.add(95d);
dataSeriesA.add(100d);
BarData BarDataA = new BarData("",dataSeriesA,(int)Color.rgb(53, 169, 239)); chartData.add(BarDataA);
} private void chartLabels()
{
chartLabels.add("语文");
chartLabels.add("数学");
chartLabels.add("英语");
chartLabels.add("计算机");
} /**
* 期望线/分界线
*/
private void chartDesireLines()
{
mDesireLineDataSet.add(new DesireLineData("及格线",60d,(int)Color.RED,7));
mDesireLineDataSet.add(new DesireLineData("优秀",90d,(int)Color.rgb(35, 172, 57),5));
} }
从代码中能够看出,与样例中其他的柱形图不同。在设置数据源时。我多设置了一个数据源:
//数据源
chart.setDataSource(chartData);
chart.setLabels(chartLabels);
chart.setDesireLines(mDesireLineDataSet);
即除了数据轴与标签轴的数据源以外,还设置了期望线的数据源。
而期望线由四个參数构成。
mDesireLineDataSet.add(new DesireLineData("及格线",60d,(int)Color.RED,7));
mDesireLineDataSet.add(new DesireLineData("优秀",90d,(int)Color.rgb(35, 172, 57),5));
标签 : 用于标识线的意义,为""则不显示
值 :用来与数据轴的值进行对照,来确认显示位置
颜色
:线的颜色
线的粗细:能够在特别强调时。与颜色配合来让人醒目。
这仅仅是每条线各自的属性,实现上,通过"chart.getDesireLinePaint()",能够得到线的画笔类。在上面设置透明度等等效果。
关注的能够试一下这个小功能。
XCL-Charts地址在"写的Android图表库XCL-Charts,整理好如今开源了!!!"中有写.
MAIL: xcl_168@aliyun.com
BLOG:http://blog.csdn.net/xcl168
XCL-Chart柱形图的期望线/分界线的更多相关文章
- silverlight chart 折线图 的线颜色如何修改???
silverlight chart 折线图 的线颜色如何修改??? 我做出来都是这些偏黄色,请问如何修改线的颜色,以及线的宽度?谢谢
- R画柱形图和箱线图
数据格式如下 gene_id Sham-1 Sham-2 Sham-3 Sham-4 Sham-5 Rep-1h-1 Rep-1h-2 Rep-1h-3 Rep-1h-4 Rep-1h-5 Rep-3 ...
- 关于k Line Chart (k线图)
K Line Chart python实现k线图的代码,之前找过matplotlib中文文档但是画k线图的finance方法已经弃用了.所以自己在网上搜寻一下加上改编,很好的实现出k线图, 代码如下: ...
- Echars详解
简介 ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9 /1 ...
- XCL-Charts画一个图(CurveChart)
情节线图与往常不同的是,它是一个比较特殊线位置计算.所以我得到一个单独的类.相同.只需要输入数据源的基类, 加,控制要添加的.你可以画出你自己主动设置按照预期的效果. 代码: //图基类 chart ...
- HighCharts使用总结
1.常用属性 chart: type:areaspline(线面图).arearange(区间图) zoomType: 缩放类型(沿着'xy'轴缩放) alignTicks:设置坐标轴刻度对齐. 当有 ...
- 图表制作工具之ECharts
简介 ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10 ...
- ExtJS组件的xtype属性列表
ExtJS的应用界面是由很多小部件组合而成的,这些小部件被称作“组件(Component)”,所有组件都是Ext.Component的子类,Ext.Component提供了生命周期管理包括初始化.渲染 ...
- R语言学习笔记︱Echarts与R的可视化包——地区地图
笔者寄语:感谢CDA DSC训练营周末上完课,常老师.曾柯老师加了小课,讲了echart与R结合的函数包recharts的一些基本用法.通过对比谢益辉老师GitHub的说明文档,曾柯老师极大地简化了一 ...
随机推荐
- PHP实现的毫秒定时器,同时解决进程不重复堆积
定时器任务,在WEB应用比较常见,如何使用PHP实现定时器任务,大致有两种方案:1)使用Crontab命令,写一个shell脚本,在脚本中调用PHP文件,然后定期执行该脚本:2)配合使用ignore_ ...
- JavaScript 实现留言框
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JavaString库
String库 .length() 字符串的长度,一个字符串为空(空字符串对象)和null(不指向任何对象)是两个概念,中文字符和英文字符是一样的计数(一个中文是一个字符,一个英文字母是一个字符) . ...
- 【Codeforces Round #483 (Div. 2) C】Finite or not?
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 有个性质. 如果p/q是分数的最简形式. 那么p/q能化成有限小数. 当且仅当q的质因数分解形式中只有质因子2和5 (且不能出现其他 ...
- 洛谷 P1490 买蛋糕
P1490 买蛋糕 题目描述 野猫过生日,大家当然会送礼物了(咳咳,没送礼物的同志注意了哈!!),由于不知道送什么好,又考虑到实用性等其他问题,大家决定合伙给野猫买一个生日蛋糕.大家不知道最后要买的蛋 ...
- windows下使用libsvm3.2
一.官方介绍 libsvm主页:https://www.csie.ntu.edu.tw/~cjlin/libsvm/index.html libsvm介绍文档:http://www.csie.ntu. ...
- [React] Unit test a React Render Prop component
In this lesson, I use Enzyme and Jest to unit test a Counter Render Prop component. Writing integrat ...
- 使用Java语言实现,自己主动生成10个整数(1~100,求出生成数列中的最大值和最小值,不同意使用Arrays类的sort方法
这是考察主要的java基础,没啥难点,直接上代码,近期在准备面试,所以做一些基础的面试题练练手 public class Demo1 { public static void main(String[ ...
- XP单机版安装金蝶K3的13.1版本号,金蝶K3Wise安装步骤,安装成功
在我们安装金蝶K3时往往会出现各种报错.主要是由于我们的Windows Xp操作系统是Ghost版本号.或者是windows XP HOME或者是精简版,因此某些组件在系统里没有.导致我们安装金蝶K3 ...
- JUnit4.8.2源码分析-4 RunNotifier与RunListener
JUnit4运行过程中,org.junit.runner.notification. RunListener和RunNotifier运用了观察者模式. 1.观察者 观察者Observer/Listen ...