MPAndroidChart的具体属性方法
android中常用的第三方图表MPAndroidChart的一些具体属性及方法说明
注意:在将折线图转为曲线图时,lineDataSet.setMode(LineDataSet.Mode.CUBIC_BEZIER);方法有的版本的jar包不能使用,
要设置lineDataSet.setDrawCubic(true);(默认是折线)
2 import android.app.Activity;
3 import android.graphics.Color;
import android.os.Bundle; import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.components.LimitLine;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.data.LineDataSet; import java.util.ArrayList; public class MainActivity extends Activity { private LineChart mLineChart;
private XAxis xAxis; //X坐标轴
private YAxis yAxis; //Y坐标轴 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); mLineChart = (LineChart) findViewById(R.id.chart); xAxis = mLineChart.getXAxis();
yAxis = mLineChart.getAxisLeft(); LineData mLineData = getLineData();
showChart(mLineChart, mLineData); } private void showChart(LineChart lineChart, LineData lineData) { //General Chart Styling 通用的图表造型,还有些对于特定图表有这特定方法的造型。
//请参考https://github.com/PhilJay/MPAndroidChart/wiki/Specific-chart-settings
lineChart.setBackgroundColor(Color.argb(200, 173, 215, 210));// 设置图表背景 参数是个Color对象 lineChart.setDescription("setDescription我在这儿"); //图表默认右下方的描述,参数是String对象
lineChart.setDescriptionColor(Color.rgb(227, 135, 0)); //上面字的颜色,参数是Color对象
// lineChart.setDescriptionPosition(400f,600f); //上面字的位置,参数是float类型,像素,从图表左上角开始计算
// lineChart.setDescriptionTypeface(); //上面字的字体,参数是Typeface 对象
lineChart.setDescriptionTextSize(16); //上面字的大小,float类型[6,16] lineChart.setNoDataTextDescription("没有数据呢(⊙o⊙)"); //没有数据时显示在中央的字符串,参数是String对象 lineChart.setDrawGridBackground(false);//设置图表内格子背景是否显示,默认是false
lineChart.setGridBackgroundColor(Color.rgb(256, 0, 0));//设置格子背景色,参数是Color类型对象 lineChart.setDrawBorders(true); //设置图表内格子外的边框是否显示
lineChart.setBorderColor(Color.rgb(236, 228, 126)); //上面的边框颜色
lineChart.setBorderWidth(20); //上面边框的宽度,float类型,dp单位
// lineChart.setMaxVisibleValueCount();设置图表能显示的最大值,仅当setDrawValues()属性值为true时有用 //Interaction with the Chart 图表的交互 //Enabling / disabling interaction
lineChart.setTouchEnabled(true); // 设置是否可以触摸
lineChart.setDragEnabled(true);// 是否可以拖拽 lineChart.setScaleEnabled(true);// 是否可以缩放 x和y轴, 默认是true
lineChart.setScaleXEnabled(true); //是否可以缩放 仅x轴
lineChart.setScaleYEnabled(true); //是否可以缩放 仅y轴 lineChart.setPinchZoom(true); //设置x轴和y轴能否同时缩放。默认是否
lineChart.setDoubleTapToZoomEnabled(true);//设置是否可以通过双击屏幕放大图表。默认是true lineChart.setHighlightEnabled(false); //If set to true, highlighting/selecting values via touch is possible for all underlying DataSets.
lineChart.setHighlightPerDragEnabled(true);//能否拖拽高亮线(数据点与坐标的提示线),默认是true lineChart.setAutoScaleMinMaxEnabled(false); // Chart fling / deceleration
lineChart.setDragDecelerationEnabled(true);//拖拽滚动时,手放开是否会持续滚动,默认是true(false是拖到哪是哪,true拖拽之后还会有缓冲)
lineChart.setDragDecelerationFrictionCoef(0.99f);//与上面那个属性配合,持续滚动时的速度快慢,[0,1) 0代表立即停止。 //Highlighting programmatically // highlightValues(Highlight[] highs)
// Highlights the values at the given indices in the given DataSets. Provide null or an empty array to undo all highlighting.
// highlightValue(int xIndex, int dataSetIndex)
// Highlights the value at the given x-index in the given DataSet. Provide -1 as the x-index or dataSetIndex to undo all highlighting.
// getHighlighted()
// Returns an Highlight[] array that contains information about all highlighted entries, their x-index and dataset-index. //其他请参考https://github.com/PhilJay/MPAndroidChart/wiki/Interaction-with-the-Chart
//如手势相关方法,选择回调方法 // The Axis 坐标轴相关的,XY轴通用
xAxis.setEnabled(true); //是否显示X坐标轴 及 对应的刻度竖线,默认是true
xAxis.setDrawAxisLine(true); //是否绘制坐标轴的线,即含有坐标的那条线,默认是true
xAxis.setDrawGridLines(true); //是否显示X坐标轴上的刻度竖线,默认是true
xAxis.setDrawLabels(true); //是否显示X坐标轴上的刻度,默认是true xAxis.setTextColor(Color.rgb(145, 13, 64)); //X轴上的刻度的颜色
xAxis.setTextSize(5); //X轴上的刻度的字的大小 单位dp
// xAxis.setTypeface(Typeface tf); //X轴上的刻度的字体
xAxis.setGridColor(Color.rgb(145, 13, 64)); //X轴上的刻度竖线的颜色
xAxis.setGridLineWidth(1); //X轴上的刻度竖线的宽 float类型
xAxis.enableGridDashedLine(40, 3, 0); //虚线表示X轴上的刻度竖线(float lineLength, float spaceLength, float phase)三个参数,1.线长,2.虚线间距,3.虚线开始坐标 //可以设置一条警戒线,如下:
LimitLine ll = new LimitLine(10f, "警戒线");
ll.setLineColor(Color.RED);
ll.setLineWidth(4f);
ll.setTextColor(Color.GRAY);
ll.setTextSize(12f);
// .. and more styling options
xAxis.addLimitLine(ll); // X轴专用
xAxis.setLabelsToSkip(1); //设置坐标相隔多少,参数是int类型
xAxis.resetLabelsToSkip(); //将自动计算坐标相隔多少
xAxis.setAvoidFirstLastClipping(true);
xAxis.setSpaceBetweenLabels(4);
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM_INSIDE);//把坐标轴放在上下 参数有:TOP, BOTTOM, BOTH_SIDED, TOP_INSIDE or BOTTOM_INSIDE. // Y轴专用
yAxis.setStartAtZero(false); //设置Y轴坐标是否从0开始
yAxis.setAxisMaxValue(50); //设置Y轴坐标最大为多少
yAxis.resetAxisMaxValue(); //重新设置Y轴坐标最大为多少,自动调整
yAxis.setAxisMinValue(10); //设置Y轴坐标最小为多少
yAxis.resetAxisMinValue(); //重新设置Y轴坐标,自动调整
yAxis.setInverted(false); //Y轴坐标反转,默认是false,即下小上大
yAxis.setSpaceTop(0); //Y轴坐标距顶有多少距离,即留白
yAxis.setSpaceBottom(0); //Y轴坐标距底有多少距离,即留白
yAxis.setShowOnlyMinMax(false); //参数如果为true Y轴坐标只显示最大值和最小值
yAxis.setLabelCount(10, false); //第一个参数是Y轴坐标的个数,第二个参数是 是否不均匀分布,true是不均匀分布
yAxis.setPosition(YAxis.YAxisLabelPosition.OUTSIDE_CHART); //参数是INSIDE_CHART(Y轴坐标在内部) 或 OUTSIDE_CHART(在外部(默认是这个))
// yAxis.setValueFormatter(YAxisValueFormatterf);
// Sets a custom ValueFormatter for this axis. This interface allows to format/modify
// the original label text and instead return a customized text. // add data
lineChart.setData(lineData); // 设置数据 // get the legend (only possible after setting data)
Legend mLegend = lineChart.getLegend(); // 设置比例图标示,就是那个一组y的value的 // modify the legend ...
// mLegend.setPosition(LegendPosition.LEFT_OF_CHART);
mLegend.setForm(Legend.LegendForm.CIRCLE);// 样式
mLegend.setFormSize(2f);// 字体
mLegend.setTextColor(Color.WHITE);// 颜色
// mLegend.setTypeface(mTf);// 字体 lineChart.animateX(1000); // 立即执行的动画,x轴
} private LineData getLineData() { ArrayList<Entry> valsComp1 = new ArrayList<Entry>(); //坐标点的集合
ArrayList<Entry> valsComp2 = new ArrayList<Entry>(); Entry c1e1 = new Entry(100.000f, 1); //坐标点的值,Entry(Y坐标,X坐标);
valsComp1.add(c1e1);
Entry c1e2 = new Entry(50.000f, 2);
valsComp1.add(c1e2); Entry c2e1 = new Entry(30.000f, 1); //坐标点的值,Entry(Y坐标,X坐标);
valsComp2.add(c2e1);
Entry c2e2 = new Entry(80.000f, 3);
valsComp2.add(c2e2); LineDataSet setComp1 = new LineDataSet(valsComp1, "Company"); //坐标线,LineDataSet(坐标点的集合, 线的描述或名称);
LineDataSet setComp2 = new LineDataSet(valsComp2, "Company");
setComp1.setAxisDependency(YAxis.AxisDependency.LEFT); //以左边坐标轴为准 还是以右边坐标轴为基准
setComp2.setAxisDependency(YAxis.AxisDependency.LEFT); ArrayList<LineDataSet> dataSets = new ArrayList<LineDataSet>(); //坐标线的集合。
dataSets.add(setComp1);
dataSets.add(setComp2); ArrayList<String> xVals = new ArrayList<String>(); //X坐标轴的值的集合
xVals.add("1.Q"); xVals.add("2.Q"); xVals.add("3.Q"); xVals.add("4.Q");
xVals.add("1.Q"); xVals.add("2.Q"); xVals.add("3.Q"); xVals.add("4.Q"); LineData data = new LineData(xVals, dataSets); //LineData(X坐标轴的集合, 坐标线的集合);
mLineChart.setData(data); //为图表添加 数据
mLineChart.invalidate(); // 重新更新显示 return data;
}
} 转自 : http://blog.csdn.net/ash_zheng/article/details/48712827
MPAndroidChart的具体属性方法的更多相关文章
- HTML5 Audio/Video 标签,属性,方法,事件汇总
HTML5 Audio/Video 标签,属性,方法,事件汇总 (转) 2011-06-28 13:16:48 <audio> 标签属性:src:音乐的URLpreload:预加载au ...
- python7 静态方法、类方法、属性方法 ;反射;异常处理
#-*- coding:utf8 -*- # 静态方法@staticmethod # 静态方法(当eat变成静态方法后,再通过实例调用时就不会自动把实例本身当作一个参数传给self了.) clas ...
- Delphi中TStringList类常用属性方法详解
TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 先把要讨论的几个属性列出来: 1.CommaText 2.Delim ...
- React-Native的基本控件属性方法
对React-Native的学习,从熟悉基本控件开始. View 属性方法 序号 名称 属性Or方法 类型 说明 1 accessibilityLabel 属性 string 2 accessib ...
- 常用元素的属性/方法 attr / val / html /text
常用元素的属性/方法 得到一个元素的高度, $("#myid").height() 得到一个元素的位置, $("#myid").offset() 返回的是一个o ...
- List的方法和属性 方法或属性 作用
List的方法和属性 方法或属性 作用 Capacity 用于获取或设置List可容纳元素的数量.当数量超过容量时,这个值会自动增长.您可以设置这个值以减少容量,也可以调用trin()方法来减少容量以 ...
- iOS对UIViewController生命周期和属性方法的解析
目录[-] iOS对UIViewController生命周期和属性方法的解析 一.引言 二.UIViewController的生命周期 三.从storyBoard加载UIViewController实 ...
- HTML5 Audio/Video 标签,属性,方法,事件汇总 (转)
HTML5 Audio/Video 标签,属性,方法,事件 <audio> 标签属性:src:音乐的URLpreload:预加载autoplay:自动播放loop:循环播放contro ...
- JS中的内置对象简介与简单的属性方法
JS中的数组: 1.数组的概念: 数组是在内存中连续存储的多个有序元素的结构,元素的顺序称为下标,通过下标查找对应元素 2.数组的声明: ①通过字面量声明var arr1 = [,,,,] JS中同一 ...
随机推荐
- SQL Server 2008 附加数据库之后显示为 只读 的解决方法
嗯,附加完成后,数据库的灰色的,后面括号里写着(只读). 方法一: 碰到这中情况一般是使用的 sa 或者其它 SQL Server 身份验证登录的,只要改为 Windows 身份验证,再附加数据库即可 ...
- 在谷歌浏览器中安装防广告的插件(abp)
1.打开谷歌浏览器 2.打开 设置-->见到"扩展程序"--->在搜索框中搜索"adb"-->点击"Adblock plus&quo ...
- Android 源码阅读笔记
Zygote: .Zygote 是系统启动之后创建的第二个进程2.Zygote 创建zygote Socket.虚拟机3.Zygote 在虚拟机中通过forkSystemServer, 创建Serve ...
- 字符串匹配算法KMP算法
数据结构中讲到关于字符串匹配算法时,提到朴素匹配算法,和KMP匹配算法. 朴素匹配算法就是简单的一个一个匹配字符,如果遇到不匹配字符那么就在源字符串中迭代下一个位置一个一个的匹配,这样计算起来会有很多 ...
- ssh以密钥的方式登录服务器时,只要有密钥可以登服务器,如果有密钥和公钥同时存在(在公钥没问题的情况下可以),但如果公钥有问题,就不能登录成功
在~/.ssh/下如果只有密钥或公私同时存在时,都可以成功登录服务器,但!!!!!!如果公钥有换成别的服务器的公钥时,是无法登录远程的服务器!!!!
- SeekBar: 修改SeekBar中进度条的高度
SeekBar中有两个很特别的属性需要留意下: 1.android:maxHeight和android:minHeight .前者是用来指定进度条最大高度的(此高度并非SeekBar整个控件的高度), ...
- Flink安装、高可用性
Flink JobManager HA模式部署(基于Standalone) SCP 命令 SSH免密码登录,搭建Flink standalone集群 https://blog.csdn.net/jie ...
- delphi中Webbrowser疑难问题集锦<转>
1.获得网页中变量值 htm中<script> var currID=123</script> 程序中可以这么调用 id := Form1.WebBrows ...
- 【ARM】2440裸机系列-图片显示
功能 LCD显示字汉字,字符和图片 说明 汉字,字符和图片需要用相应的取模软件得到相应的c文件,然后包含到工程中 主要代码 1)绘制背景 void Brush_ U32 c) { int x,y ...
- H3C交换机配置的备份与恢复(TFTP方法)
局域网维护中,有时候我们需要对网络设备的配置进行备份与还原. 相信有很多网管员备份配置都是采用display current命令查询当前设备运行配置信息,然后采用ctrl+c,ctrl+v的方式将信息 ...