MPAndroidChart的属性和方法

一、图表属性

1、刷新

invalidate():在chart中调用会使其刷新重绘

notifyDataChanged():让chart知道它依赖的基础数据已经改变,并执行所有必要的重新计算(比如偏移量,lenged,最大值,最小值...)。在动态添加数据时需要用到。

2、打印日志

setLogEnable(booleanenabled):设置为true将激活chart的logcat输出。但这不利于性能,如果不是必要的,应保持禁用。

3、chart属性

setBackgroundColor(intcolor):设置背景颜色,将覆盖整个图表视图。此外,背景颜色可以在布局文件.xml中进行设置。

setDescription(Descriptiondesc):设置图表的描述文字,会显示在图表的右下角。

setDescriptionColor(intcolor):设置描述文字的颜色。

setDescriptionPosition(floatx,floaty):自定义描述文字在屏幕上的位置(单位是像素)。

setDescriptionTypeface(Typefacet):设置描述文字的字体。

setDescriptionTextSize(floatsize):设置以像素为单位的描述文字,最小6f,最大16f。

setNoDataTextDescription(Stringdesc):设置当chart为空时显示的描述文字。

setDrawGridBackground(booleanenabled):如果启用,chart绘图区后面的背景矩形将绘制。

setGridBackgroundColor(intcolor):设置网格背景应与绘制的颜色。

setDrawBorder(booleanenabled):启用/禁用绘制图表边框(chart周围的线)。

setBorderColor(intcolor):设置chart边框线的颜色。

setBorderWidth(floatwidth):设置chart边界线的宽度,单位dp。

setMaxVisibleValueCount(intcount):设置最大可见绘制的chartcount的数量。只在setDrawValues()设置为true时有效。

4、启用/禁用手势交互

setTouchEnabled(booleanenabled):启用/禁用与图表的所有可能的触摸交互。

setDragEnabled(booleanenabled):启用/禁用拖动(平移)图表。

setScaleEnabled(booleanenabled):启用/禁用缩放图表上的两个轴。

setScaleXEnabled(booleanenabled):启用/禁用缩放在X轴上。

setScaleYEnabled(booleanenabled):启用/禁用缩放在Y轴上。

setPinchZoom(boolenaenabled):如果设置为true,没缩放功能。如果false,x轴和y轴可分别放大。

setDoubleTapToZoomEnabled(booleanenabled):设置为false以禁止通过在其上双击缩放图表。

setHighlightPerDragEnabled(booleanenabled):设置为true,允许每个图表表面拖过,当它完全缩小突出。默认值:true

setHighlightPerTapEnabled(booleanenabled):设置为false,以防止值由敲击姿态被突出显示。值仍然可以通过拖动或编程方式突出显示。默认值:true。

5、图表的抛掷/减速

setDragDecelerationEnabled(booleanenabled):如果设置为true,手指滑动抛掷图表后继续减速滚动。默认值:true。

setDragDecelerationFrictionCoef(floatcoef):减速的摩擦系数在[0;1]区间,数值越高表示速度回缓慢下降,例如,如果将其设置为0,将立即停止。1是一个无效的值,会自动转换至0.9999。

6、高亮

highlightValues(Highlight[]highs):高亮显示值,高亮显示的点击的位置在数据集中的值。设置null或空数组则撤销所有高亮。

highlightValue(intxIndex,intdataSetIndex):高亮给定xIndex在数据集的值。设置xIndex或dataSetIndex为-1撤销所有高亮。

getHighlightd():返回一个highlight[]其中包含所有高亮对象的信息,xIndex和dataSetIndex。以Java编程方式使得值高亮不会回调onChartValueSelectedListener。

7、选择回调

MPAndroidChart提供了许多用于交互回调的方法,其中OnChartValueSelectedListener在点击高亮时回调。

publicinterfaceOnChartValueSelectedListener{

/**

*当点击图表里面的值

*

*@parame选择的数据集

*@paramdataSetIndex数据集的索引

*@paramh相应的突出对象

*/

publicvoidonValueSelected(Entrye,intdataSetIndex,Highlighth);

/**

*当没有选择时

*/

publicvoidonNothingSelected();

}

让你的类实现该接口并设置对chart进行监听,即可接收回调。

8、手势回调

监听器OnchartGestureListener可以使得chart与手势操作进行交互。

publicinterfaceOnChartGestureListener{

/**

*开始触摸图表时回调(按下)

*

*@paramme

*@paramlastPerformedGesture

*/

voidonChartGestureStart(MotionEventme,ChartTouchListener.ChartGesturelastPerformedGesture);

/**

*结束触摸图表时回调(抬起、取消)

*

*@paramme

*@paramlastPerformedGesture

*/

voidonChartGestureEnd(MotionEventme,ChartTouchListener.ChartGesturelastPerformedGesture);

/**

*长按图表时回调

*

*@paramme

*/

publicvoidonChartLongPressed(MotionEventme);

/**

*双击图表时回调

*

*@paramme

*/

publicvoidonChartDoubleTapped(MotionEventme);

/**

*单击图表时回调

*

*@paramme

*/

publicvoidonChartSingleTapped(MotionEventme);

/**

*根据手势回调

*

*@paramme1

*@paramme2

*@paramvelocityX

*@paramvelocityY

*/

publicvoidonChartFling(MotionEventme1,MotionEventme2,floatvelocityX,floatvelocityY);

/**

*缩放图表时回调

*

*@paramme

*@paramscaleXscalefactoronthex-axis

*@paramscaleYscalefactoronthey-axis

*/

publicvoidonChartScale(MotionEventme,floatscaleX,floatscaleY);

/**

*移动或旋转时调用

*

*@paramme

*@paramdXtranslationdistanceonthex-axis

*@paramdYtranslationdistanceonthey-axis

*/

publicvoidonChartTranslate(MotionEventme,floatdX,floatdY);

}

让你的类实现该接口并设置对chart进行监听,即可接受回调。

chart.setOnChartGestureListener(this);

设置了监听器后,chart会根据你的setXXXEnable()进行放缩移动等操作。不用在接口方法里对图表进行放缩移动等操作,接口方法可以让你实现其他对应功能,比如说你要打印放缩的是ScaleX,ScaleY:

@Override

publicvoidonChartScale(MotionEventme,floatscaleX,floatscaleY){

Log.i("Scale/Zoom","ScaleX:"+scaleX+",ScaleY:"+scaleY);

}

9、图表自属方法

雷达图(RadarChart)

setWebLineWidth(floatwidth)设置向外放射线条宽度

setWebLineWidthInner(floatwidth)设置内部环线宽度

setSkipWebLineCount(intcount)设置隐藏count条放射线条

setWebAlpha(intalpha)设置背景透明度

setWebColor(intcolor)设置向外放射线颜色

setWebColorInner(intcolor)设置内部环线颜色

setDrawWeb(booleanenabled)设置是否显示雷达图

柱形图(BarChart)

setDrawValueAboveBar(booleanenabled)设置数字显示在柱形条上部或下部

setDrawBarShadow(booleanenabled)设置是否显示全部柱形条,不填充部分显示灰色

setHighlightFullBarEnabled(booleanenabled)设置是否高亮显示

setFitBars(booleanenabled)设置X轴范围两侧柱形条是否显示一半

饼图(PieChart)

setUsePercentValues(booleanenabled)设置图表内值显示为原始值或百分之

setHoleColor(intcolor)设置中心圈背景颜色

setDrawSlicesUnderHole(booleanenable)设置在中心圈下面是否显示切片

setDrawHoleEnabled(booleanenabled)设置是否显示中心圈部分

setCenterText(CharSequencetext)设置中心圈文字

setDrawCenterText(booleanenabled)设置是否显示中心圈文字

setHoleRadius(finalfloatpercent)设置中心圈半径占整个饼状图半径的百分比,默认50%

setTransparentCircleColor(intcolor)设置透明圈的颜色

setTransparentCircleRadius(finalfloatpercent)设置透明圈半径占整个饼状图半径的百分比,默认55%

setTransparentCircleAlpha(intalpha)设置透明圈的透明度

setMaxAngle(floatmaxangle)设置饼图的最大角度,90<=maxangle<=360

二、坐标轴

1、Document

AxisBase是XAxis和YAxis的父类

AxisBase所有标签的基类

XAxisX轴标签设置。只是用setter方法来修改它,不要直接访问公共变量。(对于RadarChart蜘蛛网状图不是所有的Xlabls都适用。)

YAxisY轴标签设置和它的条目。只使用setter方法来修改它,不要直接访问公共变量。(对于RadarChart蜘蛛网状图不是所有的Ylabls都适用。)在为chart设置data之前,影响轴的值范围的Customizations需要先被应用。

2、概述

下面提及的方法可以适用于两个轴。

“轴”类允许特定的Style,由以下components/parts组成(可以包含):

轴的标签(y轴垂直绘制或X轴水平取向),contain轴的描述值。

所谓axis-line被直接绘制在标签旁且平行。

grid-lines在水平方向,且源自每一个轴标签。

LimitLines允许呈现的特别信息,如边界或限制。

3、控制轴的绘制。

setEnable(booleanenabled):设置轴启用或禁用。如果false,该轴的任何部分都不会被绘制(不绘制坐标轴/便签等)。

setDrawGridLines(booleanenabled):设置为true,则绘制网格线。

setDrawAxisLines(booleanenabled):设置为true,则绘制该行旁边的轴线(axis-line)。

setDrawLables(booleanenabled):设置为true,则绘制轴的标签。

4、修改轴

setTextColor(intcolor):设置轴标签的颜色。

setTextSize(floatsize):设置轴标签的文字大小。

setTypeface(Typefacetf):设置周标倩的Typeface。

setGridColor(intcolor):设置该轴的网格线颜色。

setGridLineWidth(floatwidth):设置该轴网格线的宽度。

setAxisLineColor(intcolor):设置轴线的轴的颜色。

setAxisLineWidth(floatwidth):设置该轴轴行的宽度。

enableGridDashedLine(floatlineLength,floatspaceLength,floatphase):启用网格线的虚线模式中得出,比如像这样“----”。

“lineLength”控制虚线段的长度

“spaceLength”控制线之间的空间

“phase”控制线的起始点

5、限制线

两个轴支持LimitLines来呈现特定信息,如边界或限制线。LimitLines加入到YAxis在水平方向上绘制,添加到XAxis在垂直方向绘制。如何通过给定的轴添加和删除LimitLines:

addLimitLines(LimitLinel):给该轴添加一个新的LimitLine。

removeLimitLine(LimitLinel):从该轴删除指定的LimitLine。

removeAllLimitLines():删除所有的LimitLine。

getLimitLines():获得所有的LimitLine

setDrawLimitLineBehindData(booleanenable):控制LimitLines与actualdata之间的z-order。如果设置为true,LimitLines绘制在actualdata的后面,否则在其前面。默认值:false。

6、概述

XAxis、YAxis类是AxisBase的一个子类。

XAxis类是所有与水平轴相关的“数据和信息容器”。每个LineChart,BarChart,ScateerChart,CandleStickChart和RadarChart都有一个XAxis对象。XAxis对象展示了以ArrayList<String>或String[](“xVals”)形式递交给ChartData对象的数据。得到XAxis的实例:XAxisxAxis=chart.getXAxis();

YAxis类是一切与垂直轴相关的数据和信息的容器。每个LineChart,BarChart,ScateerChartorCandleStickChart都有left和right的YAxis的对象,分别在左右两边。但是RadarChart只有一个YAxis。缺省情况下,图表的两个轴都被启用,并且将被绘制。得到XAxis的实例:YAxisyAxis=chart.getYAxis();

7、属性:

isDrawAxisLineEnabled():返回坐标轴是否能被绘制(returntrue/fasle)

setCenterAxisLabels(booleanenabled):设置标签是否居中

isCenterAxisLabelsEnabled():返回坐标轴标签是否居中

setDrawLabels(booleanenabled):设置是否可以绘制文本

isDrawLabelsEnabled():返回坐标轴是否可以绘制文本

setLabelCount(intcount):设置坐标轴的标签数量,当count>25时,count=25;当count<2时,count=2

setLabelCount(intcount,booleanforce):设置坐标轴的标签数量,这个数字是不固定if(force==false),只能是近似的。如果if(force==true),则确切绘制指定数量的标签,但这样可能导致轴线分布不均匀。

isForceLabelsEnabled():返回是否强加标签。默认:false

getLabelCount():返回标签数量

setGranularityEnabled(booleanenabled):设置是否可以设置间隔

isGranularityEnabled():返回是否可以设置间隔

getGranularity():返回坐标轴间隔大小

setGranularity(floatgranularity):设置坐标轴间隔大小

getLongestLabel():返回坐标轴最长的文本,String类型

getFormattedLabel(intindex):返回坐标轴的格式化文本,String类型

setValueFormatter(IAxisValueFormatterf):设置坐标轴文本的格式

getAxisMaximum():返回坐标轴的最大值,float类型

getAxisMinimum():返回坐标轴的最小值,float类型

setAxisMinimum(floatmin):设置坐标轴的最小值

setAxisMaximum(floatmax):设置坐标轴的最大值

calculate(floatdataMin,floatdataMax):计算坐标轴的最大值和最小值的差值

setSpaceMin(floatmSpaceMin):设置坐标轴额外的最小的空间

setSpaceMax(floatmSpaceMax):设置坐标轴额外的最大的空间

setAvoidFirstLastClipping(booleanenabled):设置X轴第一个和最后一个标签超出屏幕

setLabelRotationAngle(floatangle):设置X轴标签文字的方向

setPosition(XAxisPositionpos):设置X轴标签的位置

setZeroLineWidth(floatwidth):设置Y轴第一条线的宽度

setZeroLineColor(intcolor):设置Y轴第一条线的颜色

setDrawZeroLine(booleanmDrawZeroLine):设置Y是否显示第一条线

setSpaceBottom(floatpercent):设置底部距离

setSpaceTop(floatpercent):设置顶部距离

setStartAtZero(booleanstartAtZero):设置Y轴是否从0开始

setInverted(booleanenabled):设置Y轴是否翻转

setDrawTopYLabelEntry(booleanenabled):设置是否显示顶部标签

setPosition(YAxisLabelPositionpos):设置Y轴标签位置

三、数据(DataSet)

DataSet类是所有数据集类的基类,是Chart中一组或一类的Entry的集合。它被设计成Chart内部逻辑上分离的不同值组(例如,LineChart中特定行的值或BarChart中特定bar组的值)。

1、属性

setMode(LineDataSet.Modemode):设置模式

CUBIC_BEZIER立方曲线

LINEAR直线

STEPPED阶梯

HORIZONTAL_BEZIER水平曲线

setCubicIntensity(floatintensity):设置曲线的弯曲程度

getColors():返回颜色(LineChart:折线;BarChart:柱图等),List<Integer>类型

getValueColors():返回文本颜色,List<Integer>类型

getColor():返回索引为0的颜色,int类型

getColor(intindex):返回索引为index的颜色,int类型

setColors(List<Integer>colors)/setColors(int...colors)/setColors(int[]colors,Contextc):设置颜色

setLabel(Stringlabel):设置文本

getLabel():获得文本,String类型

setHighlightEnabled(booleanenabled):设置为true,允许通过点击高亮突出ChartData对象和其DataSets

setValueFormatter(IValueFormatterf):设置文本格式

setValueTextColor(intcolor)/setValueTextColors(List<Integer>colors):设置文本颜色

setValueTypeface(Typefacetf):设置文本的字体

setValueTextSize(floatsize):设置文本的字体大小

setForm(Legend.LegendFormform):设置形状的大小

setFormLineWidth(floatformLineWidth):设置线的宽度

setDrawValues(booleanenabled):设置是否显示文本

setVisible(booleanvisible):设置是否显示

setDrawFilled(booleanfilled):设置是否填充

setFillAlpha(intalpha):设置填充透明度

setFillColor(intcolor):设置填充颜色

setFillDrawable(Drawabledrawable):设置填充drawable

setDrawCircleHole(booleanenabled):设置是否实心

removeFirst():移除第一个值

removeEntry(intindex):移除下标index的值

removeLast():移除最后一个值

removeEntryByXValue(floatxValue);根据值移除,不建议使用

四、Legend

Legend通常由一个标签的形式/形状来表示多个条目(entries)的每一个。

Entries数量自动生成的legend取决于DataSet的标签不同颜色的数量(在所有DataSet的对象)。Legend的标签取决于图表中所使用的DataSet对象。如果没有为DataSet对象指定标签,图表将自动生成它们。如果多个颜色用于一个DataSet,这些颜色分类,只通过一个标签说明。

1、属性

setXOffset(floatxOffset):设置在X轴方向的偏移量

setYOffset(floatyOffset):设置在Y轴方向的偏移量

setTypeface(Typefacetf):设置文本的字体

setTextSize(floatsize):设置文本字体大小

setTextColor(intcolor):设置文本颜色

setEnabled(booleanenabled):设置是否可用(简单理解为是否显示)

setEntries(List<LegendEntry>entries);设置图例,传LegendEntry的集合

setExtra(LegendEntry[]entries)设置图例,传LegendEntry数组

setExtra(List<Integer>colors,List<String>labels)设置图例,传color的集合和LegendEntry的集合

setExtra(int[]colors,String[]labels)设置图例,传color的数字和LegendEntry数组

setCustom(LegendEntry[]entries)设置图例,灰色图标不可见

setCustom(List<LegendEntry>entries)设置图例,灰色图标不可见

setHorizontalAlignment(LegendHorizontalAlignmentvalue)设置水平对齐方式

setVerticalAlignment(LegendVerticalAlignmentvalue)设置垂直对齐方式

setOrientation(LegendOrientationvalue)设置方向

setDrawInside(booleanvalue)设置是否画在图表里

setDirection(LegendDirectionpos)设置文字的方向

setForm(LegendFormshape)设置形状

setFormSize(floatsize)设置形状大小

setFormLineWidth(floatsize)设置线条宽度(形状为线状时)

setFormLineDashEffect(DashPathEffectdashPathEffect)设置线状轨迹

setXEntrySpace(floatspace)设置图例水平方向的间距

setYEntrySpace(floatspace)设置图例垂直方向的间距

setFormToTextSpace(floatspace)设置图例和文字的间距

setWordWrapEnabled(booleanenabled)设置图例是否重新创建一行

相关推荐