MPAndroidChart Developer Document
1、入门................................................................................................................................................ 5
添加依赖.................................................................................................................................................................5
创建视图.................................................................................................................................................................5
添加数据.................................................................................................................................................................5
样式.........................................................................................................................................................................6
2、与图表的交互..................................................................................................................................6
启用/禁用交互...................................................................................................................................................... 6
图表 fling /减速................................................................................................................................................... 6
突出显示值............................................................................................................................................................ 6
手势回调.................................................................................................................................................................6
3、突出................................................................................................................................................ 8
启用/禁用突出显示..............................................................................................................................................8
以编程方式突出显示........................................................................................................................................... 8
选择回调.................................................................................................................................................................8
高亮.........................................................................................................................................................................9
自定义高亮............................................................................................................................................................ 9
4、轴心................................................................................................................................................ 9
控制应绘制哪些部分(轴)...............................................................................................................................9
自定义轴范围(最小/最大).............................................................................................................................9
造型/修改轴........................................................................................................................................................10
格式化轴值..........................................................................................................................................................10
限制线.................................................................................................................................................................. 10
5、XAxis........................................................................................................................................... 11
自定义轴值..........................................................................................................................................................11
Example Code.................................................................................................................................................. 11
6、YAxis............................................................................................................................................12
Axis Dependency............................................................................................................................................ 12
零线.......................................................................................................................................................................12
更多示例代码......................................................................................................................................................13
7、设置数据....................................................................................................................................... 13
条目的顺序..........................................................................................................................................................15
BarChart............................................................................................................................................................. 15
1 / 38
分组 BarChart....................................................................................................................................................16
堆积的 BarChart................................................................................................................................................18
PieChart..............................................................................................................................................................18
8、Setting Colors............................................................................................................................19
9、ValueFormatter 接口.................................................................................................................19
创建格式化程序................................................................................................................................................. 20
预定义的格式化程序.........................................................................................................................................20
10、AxisValueFormatter 接口.......................................................................................................20
创建格式化程序................................................................................................................................................. 20
设置格式化程序................................................................................................................................................. 21
限制间隔..............................................................................................................................................................22
预定义的格式化程序.........................................................................................................................................22
示例格式化程序................................................................................................................................................. 22
Legacy Formatters..........................................................................................................................................22
11、General Chart Settings & Styling(常规图表设置和样式)....................................................22
Refreshing......................................................................................................................................................... 22
Logging(记录)...................................................................................................................................................22
一般图表样式......................................................................................................................................................22
12、特定图表设置和样式(Specific Chart Settings & Styling)....................................................23
Line-,Bar-,Scatter-,Candle-和 BubbleChart..................................................................................23
BarChart(条图)............................................................................................................................................ 23
PieChart(饼形图).............................................................................................................................................. 23
RadarChart(雷达图)................................................................................................................................... 24
13、Legend(图例)............................................................................................................................24
控制是否应绘制图例.........................................................................................................................................24
样式/修改图例....................................................................................................................................................24
避免缠绕/剪裁....................................................................................................................................................24
自定义图例..........................................................................................................................................................24
设置自定义标签和颜色.....................................................................................................................................25
Example..............................................................................................................................................................25
14、动态和实时数据..........................................................................................................................25
15、Modifying the Viewport....................................................................................................... 25
抑制可见的东西................................................................................................................................................. 25
2 / 38
移动视图(目标位置).....................................................................................................................................26
使用动画移动视图............................................................................................................................................. 26
缩放(以编程方式).........................................................................................................................................26
Zooming with animations........................................................................................................................... 26
Full example......................................................................................................................................................27
16、动画 ............................................................................................................................................ 27
Animation easing(动画缓和).................................................................................................................. 27
17. MarkerView(弹出视图)IMarker Interface.........................................................................28
IMarker Interface(界面)........................................................................................................................... 28
Creating a MarkerView.................................................................................................................................29
获取/设置标记....................................................................................................................................................30
Legacy MarkerView........................................................................................................................................30
18、ChartData 类............................................................................................................................ 31
样式数据..............................................................................................................................................................31
Getters / Convenience..................................................................................................................................31
Clearing.............................................................................................................................................................. 31
Highlighting......................................................................................................................................................31
Dynamic Data...................................................................................................................................................31
19、Data classes in detail............................................................................................................. 32
BarData (class BarData)................................................................................................................................32
ScatterData (class ScatterData).................................................................................................................32
PieData (class PieData).................................................................................................................................32
BubbleData (class BubbleData).................................................................................................................32
CombinedData (class CombinedData)................................................................................................... 32
20、The DataSet class................................................................................................................... 32
Styling data.......................................................................................................................................................33
Highlighting......................................................................................................................................................33
21、DataSet classes in detail....................................................................................................... 33
Line-,Bar-,Scatter-,Candle-和 RadarDataSet...............................................................................33
Line- & RadarDataSet (methods only for LineDataSet and RadarDataSet).............................33
LineDataSet (class LineDataSet)................................................................................................................34
BarDataSet (class BarDataSet)................................................................................................................... 34
ScatterDataSet (class ScatterDataSet).................................................................................................... 34
3 / 38
CandleDataSet (class CandleDataSet).................................................................................................... 34
BubbleDataSet (class BubbleDataSet)....................................................................................................35
PieDataSet (class PieDataSet).................................................................................................................... 35
22、The ViewPortHandler............................................................................................................ 35
获得一个实例......................................................................................................................................................35
Scale & Translation........................................................................................................................................35
图表尺寸和内容................................................................................................................................................. 35
23、FillFormatter............................................................................................................................36
24、Proguard.................................................................................................................................. 36
25、Realm.io 数据库集成................................................................................................................ 36
26、Custom DataSets....................................................................................................................37
Example..............................................................................................................................................................37
27、Miscellaneous(其他)...........................................................................................................37
Chart content................................................................................................................................................... 37
有用的 getter 方法........................................................................................................................................... 37
一些更多的方法(Chart 类).........................................................................................................................37
4 / 38
1、入门
本章介绍使用此库的基本设置。
添加依赖
首先,将此库的依赖项添加到项目中。如何执行此操作在此存储库的用法部分中进行了描述。Gradle 是使
用此库作为依赖项的推荐方法。
创建视图
要使用 LineChart,BarChart,ScatterChart,CandleStickChart,PieChart,BubbleChart 或 RadarChart,
请在.xml 中定义它:
然后从您的 Activity,Fragment 或其他内容中检索它:
或者在代码中创建它(然后将其添加到布局中):
添加数据
拥有图表实例后,您可以创建数据并将其添加到图表中。此示例使用 LineChart,其中 Entry 类表示图表
中具有 x 和 y 坐标的单个条目。其他图表类型(例如 BarChart)为此目的使用其他类(例如 BarEntry)。
要向图表添加数据,请将您拥有的每个数据对象包装到 Entry 对象中,如下所示:
下一步,您需要将创建的 List 添加到 LineDataSet 对象。DataSet 对象保存属于一起的数据,并
允许对该数据进行单独设计。以下使用的“标签”仅具有描述性目的,并在图例中显示(如果已启用)。
5 / 38
最后一步,您需要将创建的 LineDataSet 对象(或多个对象)添加到 LineData 对象。此对象包含由 Chart
实例表示的所有数据,并允许进一步样式化。创建数据对象后,您可以将其设置为图表并刷新它:
请考虑上面的场景一个非常基本的设置。有关更详细的说明,请参阅设置数据部分,其中说明了如何根据
示例将数据添加到各种图表类型。
样式
有关图表表面和数据的设置和样式的信息,请访问常规设置和样式部分。有关各个图表类型的更具体的样
式和设置,请查看特定设置和样式 Wiki 页面。
2、与图表的交互
该库允许您完全自定义与图表视图的可能触摸(和手势)交互,并通过回调方法对交互作出反应。
启用/禁用交互
setTouchEnabled(boolean enabled):允许启用/禁用与图表的所有可能的触摸交互。
setDragEnabled(boolean enabled):启用/禁用图表的拖动(平移)。
setScaleEnabled(boolean enabled):启用/禁用两个轴上图表的缩放。
setScaleXEnabled(boolean enabled):启用/禁用 x 轴缩放。
setScaleYEnabled(boolean enabled):启用/禁用 y 轴缩放。
setPinchZoom(boolean enabled):如果设置为 true,则启用缩放缩放。如果禁用,则可以单独缩
放 x 轴和 y 轴。
setDoubleTapToZoomEnabled(boolean enabled):将此值设置为 false 以禁止通过双击来缩放图
表。
图表 fling /减速
setDragDecelerationEnabled(boolean enabled):如果设置为 true,则图表会在触摸后继续滚动。
默认值:true。
setDragDecelerationFrictionCoef(float coef):减速摩擦系数[0;1]间隔,较高的值表示速度将缓
慢下降,例如,如果设置为 0,它将立即停止。1 是无效值,将自动转换为 0.9999。
突出显示值
如何允许通过点击手势和编程方式突出显示条目在突出显示部分中进行了描述。
手势回调
OnChartGestureListener:将允许您对图表上的手势做出反应:
public interface OnChartGestureListener {
/**
* Callbacks when a touch-gesture has started on the chart (ACTION_DOWN)
6 / 38
*
* @param me
* @param lastPerformedGesture
*/
void onChartGestureStart(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture);
/**
* Callbacks when a touch-gesture has ended on the chart (ACTION_UP, ACTION_CANCEL)
*
* @param me
* @param lastPerformedGesture
*/
void onChartGestureEnd(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture);
/**
* Callbacks when the chart is longpressed.
*
* @param me
*/
public void onChartLongPressed(MotionEvent me);
/**
* Callbacks when the chart is double-tapped.
*
* @param me
*/
public void onChartDoubleTapped(MotionEvent me);
/**
* Callbacks when the chart is single-tapped.
*
* @param me
*/
public void onChartSingleTapped(MotionEvent me);
/**
* Callbacks then a fling gesture is made on the chart.
*
* @param me1
* @param me2
* @param velocityX
* @param velocityY
*/
public void onChartFling(MotionEvent me1, MotionEvent me2, float velocityX, float velocityY);
/**
* Callbacks when the chart is scaled / zoomed via pinch zoom gesture.
*
* @param me
* @param scaleX scalefactor on the x-axis
* @param scaleY scalefactor on the y-axis
*/
public void onChartScale(MotionEvent me, float scaleX, float scaleY);
/**
* Callbacks when the chart is moved / translated via drag gesture.
*
* @param me
* @param dX translation distance on the x-axis
* @param dY translation distance on the y-axis
*/
public void onChartTranslate(MotionEvent me, float dX, float dY);
}
只需让你的接收回调的类实现这个接口并将其设置为图表的监听器:
7 / 38
3、突出
本节重点介绍通过 tap-gesture 和基于发行版 v3.0.0 以编程方式突出显示图表中条目的主题。
启用/禁用突出显示
setHighlightPerDragEnabled(boolean enabled):在图表上将此值设置为 true,以便在完全缩小
时在图表表面上进行每次拖动时突出显示。默认值:true
setHighlightPerTapEnabled(boolean enabled):在图表上将此设置为 false,以防止通过点按手
势突出显示值。仍可通过拖动或以编程方式突出显示值。默认值:true
setMaxHighlightDistance(float distanceDp):设置 dp 中的最大高光距离。在图表上轻敲远离条
目的距离不会触发突出显示。默认值:500dp
除此之外,还可以为各个 DataSet 对象配置突出显示:
以编程方式突出显示
highlightValue(float x,int dataSetIndex,boolean callListener):突出显示给定 DataSet 中给
定 x 位置的值。提供-1 作为 dataSetIndex 以撤消所有突出显示。布尔标志确定应该调用选择侦听器
还是不调用选择侦听器。
highlightValue(Highlight high,boolean callListener):突出显示由提供的 Highlight 对象表示
的值。提供 null 以撤消所有突出显示。布尔标志确定应该调用选择侦听器还是不调用选择侦听器。
highlightValues(突出显示[]高):突出显示给定 Highlight []数组所表示的值。提供 null 或空数组以
撤消所有突出显示。
getHighlighted():返回一个 Highlight []数组,其中包含有关所有突出显示的条目,x-index 和
dataset-index 的信息。
选择回调
这个图书馆的互动提供了一个回调的听众人数。其中一个是 OnChartValueSelectedListener 在回调时,
突出价值观通过触摸:
8 / 38