基本概念理解
圖表中各元素跟LineChart中對象的對應(yīng)關(guān)系:
圖表:LineChart
圖例:Legend
描述:Description
數(shù)據(jù)軸:
????X軸:XAxis
????Y軸(左側(cè)找田、右側(cè)):YAxis
????數(shù)據(jù)軸標(biāo)簽
????刻線(X軸刻線思恐、Y軸刻線)
數(shù)據(jù):LineData
????數(shù)據(jù)集:LineDataSet
????高亮線
數(shù)據(jù)標(biāo)記:MarkerView
靜態(tài)結(jié)構(gòu)
????LineChart對象中存儲了圖例、描述助泽、數(shù)據(jù)軸、數(shù)據(jù)等繪制圖表所需的數(shù)據(jù),并在內(nèi)部創(chuàng)建對象的renderer對象。在onDraw方法中磁携,分別調(diào)用各種renderer對象進(jìn)行圖表中各元素的繪制。
常用屬性設(shè)置
圖表:LineChart
lineChart.setDrawBorders(true); //顯示圖表邊框
// lineChart.setBorderColor(Color.BLACK); //設(shè)置 chart 邊框線的顏色良风。
// lineChart.setBorderWidth(2); //設(shè)置 chart 邊界線的寬度,單位 dp闷供。
lineChart.setExtraOffsets(0, 0, 0, 10);//設(shè)置圖表距離上下左右的距離
lineChart.zoom(1f, 1f, 0, 0);//顯示的時候是按照多大的比率縮放顯示,1f表示不放大縮小
lineChart.setScaleMinima(1f, 1f);
lineChart.setVisibleXRangeMaximum(30);
lineChart.setDrawGridBackground(false);//chart 繪圖區(qū)后面的背景矩形將繪制
// 圖表交互
lineChart.setTouchEnabled(true); // 設(shè)置是否可以觸摸
lineChart.setScaleEnabled(false); // 是否可以縮放 x和y軸, 默認(rèn)為true
// lineChart.setScaleXEnabled(true); //是否可以縮放 僅x軸
// lineChart.setScaleYEnabled(true); //是否可以縮放 僅y軸
// lineChart.setPinchZoom(true); // 是否支持x烟央、y軸同時縮放,默認(rèn)為false
// lineChart.setDoubleTapToZoomEnabled(true); // 設(shè)置是否可以通過雙擊屏幕放大圖表歪脏。默認(rèn)為true
lineChart.setDragEnabled(true); // 是否可以拖拽
lineChart.setHighlightPerDragEnabled(true); // 能否拖拽高亮線(數(shù)據(jù)點(diǎn)與坐標(biāo)的提示線)疑俭,默認(rèn)為true
lineChart.setDragDecelerationEnabled(true); // 拖拽滾動時,手放開是否會持續(xù)滾動婿失,默認(rèn)為true(false:拖到哪是哪钞艇,true:停止拖拽之后還會有緩沖)
lineChart.setDragDecelerationFrictionCoef(0.99f); // 與上面那個屬性配合,持續(xù)滾動時的速度快慢豪硅,[0,1) 0代表立即停止哩照。
lineChart.setNoDataText("沒有數(shù)據(jù)嗷"); //沒有數(shù)據(jù)時顯示的文字
lineChart.setNoDataTextColor(Color.BLUE);//沒有數(shù)據(jù)時顯示文字的顏色
lineChart.setLogEnabled(true);//打印日志
// lineChart.animateXY(1000,1000); // 兩個軸動畫,從左到右懒浮,從下到上
圖例:Legend
legend.setForm(Legend.LegendForm.LINE); // 設(shè)置form的形狀飘弧,正方形、圓形砚著、線性
legend.setFormSize(10f); // 設(shè)置Form的大小
legend.setFormLineWidth(10f); // 設(shè)置form的寬度
legend.setTextSize(16f); // 設(shè)置文字大小
legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);//顯示位置
legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.LEFT);
legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
legend.setDrawInside(false);
legend.setWordWrapEnabled(true);//是否支持自動換行
數(shù)據(jù)集:LineDataSet
lineDataSet.setLineWidth(1.5f); //設(shè)置線的寬度
lineDataSet.setValueTextSize(9f);//設(shè)置顯示值的文字大小
lineDataSet.setColor(color); //設(shè)置線的顏色
lineDataSet.setCircleRadius(1.5f); //設(shè)置焦點(diǎn)圓心的大小
lineDataSet.setCircleColor(color); // 設(shè)置焦點(diǎn)圓心的顏色
lineDataSet.setMode(LineDataSet.Mode.HORIZONTAL_BEZIER);
lineDataSet.setAxisDependency(YAxis.AxisDependency.LEFT);
// 設(shè)置點(diǎn)擊交叉線
lineDataSet.setHighlightEnabled(true);//是否禁用點(diǎn)擊高亮線
lineDataSet.setHighLightColor(Color.RED);//設(shè)置點(diǎn)擊交點(diǎn)后顯示交高亮線的顏色
lineDataSet.enableDashedHighlightLine(10f, 5f, 0f);//點(diǎn)擊后的高亮線的顯示樣式
lineDataSet.setHighlightLineWidth(1f);//設(shè)置點(diǎn)擊交點(diǎn)后顯示高亮線寬
// 設(shè)置曲線下面的填充色
lineDataSet.setDrawFilled(false);
// lineDataSet.setFillAlpha(0);
// lineDataSet.setFillColor(color);
數(shù)據(jù)軸
// 設(shè)置左側(cè)坐標(biāo)軸
xAxis.setEnabled(true);//設(shè)置軸啟用或禁用 如果禁用以下的設(shè)置全部不生效
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);//設(shè)置x軸的顯示位置
// 設(shè)置軸線屬性
xAxis.setDrawAxisLine(true);//是否繪制軸線
// xAxis.setAxisLineColor(Color.GREEN);//設(shè)置x軸線顏色
// xAxis.setAxisLineWidth(5f);//設(shè)置x軸線寬度
// 設(shè)置標(biāo)簽屬性
xAxis.setDrawLabels(true);//是否繪制軸線上的標(biāo)簽
xAxis.setTextSize(16);// 設(shè)置軸標(biāo)簽字體大小
// xAxis.setTextColor(Color.BLUE);//設(shè)置軸標(biāo)簽的字體顏色
xAxis.setLabelCount(dataXList.size()); // 設(shè)置x軸顯示標(biāo)簽數(shù)量
// xAxis.setAxisMinimum(0f);//設(shè)置x軸的最小值
// xAxis.setAxisMaximum(10f);//設(shè)置最大值
xAxis.setAvoidFirstLastClipping(true);//圖表將避免第一個和最后一個標(biāo)簽條目被減掉在圖表或屏幕的邊緣
xAxis.setLabelRotationAngle(10f);//設(shè)置x軸標(biāo)簽的旋轉(zhuǎn)角度
// 設(shè)置網(wǎng)格線屬性
xAxis.setDrawGridLines(false);//設(shè)置x軸上每個點(diǎn)對應(yīng)的線
// xAxis.setGridLineWidth(2f);//設(shè)置豎線寬度
// xAxis.setGridColor(Color.RED);//設(shè)置豎線顏色
// xAxis.enableGridDashedLine(10f, 10f, 0f); //設(shè)置豎線的顯示樣式為虛線(lineLength控制虛線段的長度次伶,spaceLength控制線之間的空間)
xAxis.setGranularity(1f);
xAxis.setValueFormatter(null);