LineChart使用

基本概念理解


圖表中各元素跟LineChart中對象的對應(yīng)關(guān)系:
圖表:LineChart
圖例:Legend
描述:Description
數(shù)據(jù)軸:
????X軸:XAxis
????Y軸(左側(cè)、右側(cè)):YAxis
????數(shù)據(jù)軸標簽
????刻線(X軸刻線、Y軸刻線)
數(shù)據(jù):LineData
????數(shù)據(jù)集:LineDataSet
????高亮線
數(shù)據(jù)標記:MarkerView

靜態(tài)結(jié)構(gòu)


????LineChart對象中存儲了圖例、描述、數(shù)據(jù)軸、數(shù)據(jù)等繪制圖表所需的數(shù)據(jù),并在內(nèi)部創(chuàng)建對象的renderer對象。在onDraw方法中,分別調(diào)用各種renderer對象進行圖表中各元素的繪制。

常用屬性設(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軸, 默認為true
        // lineChart.setScaleXEnabled(true); //是否可以縮放 僅x軸
        // lineChart.setScaleYEnabled(true); //是否可以縮放 僅y軸
        // lineChart.setPinchZoom(true);  // 是否支持x、y軸同時縮放,默認為false
        // lineChart.setDoubleTapToZoomEnabled(true); // 設(shè)置是否可以通過雙擊屏幕放大圖表。默認為true
        lineChart.setDragEnabled(true); // 是否可以拖拽
        lineChart.setHighlightPerDragEnabled(true); // 能否拖拽高亮線(數(shù)據(jù)點與坐標的提示線),默認為true
        lineChart.setDragDecelerationEnabled(true); // 拖拽滾動時,手放開是否會持續(xù)滾動,默認為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è)置焦點圓心的大小
        lineDataSet.setCircleColor(color); // 設(shè)置焦點圓心的顏色
        lineDataSet.setMode(LineDataSet.Mode.HORIZONTAL_BEZIER);
        lineDataSet.setAxisDependency(YAxis.AxisDependency.LEFT);
        // 設(shè)置點擊交叉線
        lineDataSet.setHighlightEnabled(true);//是否禁用點擊高亮線
        lineDataSet.setHighLightColor(Color.RED);//設(shè)置點擊交點后顯示交高亮線的顏色
        lineDataSet.enableDashedHighlightLine(10f, 5f, 0f);//點擊后的高亮線的顯示樣式
        lineDataSet.setHighlightLineWidth(1f);//設(shè)置點擊交點后顯示高亮線寬
        // 設(shè)置曲線下面的填充色
        lineDataSet.setDrawFilled(false);
        // lineDataSet.setFillAlpha(0);
        // lineDataSet.setFillColor(color);

數(shù)據(jù)軸

        // 設(shè)置左側(cè)坐標軸
        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è)置標簽屬性
        xAxis.setDrawLabels(true);//是否繪制軸線上的標簽
        xAxis.setTextSize(16);// 設(shè)置軸標簽字體大小
        // xAxis.setTextColor(Color.BLUE);//設(shè)置軸標簽的字體顏色
        xAxis.setLabelCount(dataXList.size()); // 設(shè)置x軸顯示標簽數(shù)量
        // xAxis.setAxisMinimum(0f);//設(shè)置x軸的最小值
        // xAxis.setAxisMaximum(10f);//設(shè)置最大值
        xAxis.setAvoidFirstLastClipping(true);//圖表將避免第一個和最后一個標簽條目被減掉在圖表或屏幕的邊緣
        xAxis.setLabelRotationAngle(10f);//設(shè)置x軸標簽的旋轉(zhuǎn)角度
        // 設(shè)置網(wǎng)格線屬性
        xAxis.setDrawGridLines(false);//設(shè)置x軸上每個點對應(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);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 圖表控件庫 MPAndroidChart 的使用 使用方法 項目源碼地址,包含了很多類型的圖標 https://g...
    jinchuang閱讀 889評論 0 0
  • This chapter covers the basic setup for using this librar...
    ngugg閱讀 1,164評論 0 1
  • 一、首先描述控件大致的使用流程: 1.構(gòu)建EntryList 一個List集合包含了一條曲線上的所有數(shù)據(jù),Entr...
    M_jj閱讀 2,909評論 0 1
  • 最新項目當中使用到了MPAndroidChart這個三方庫用來繪制相關(guān)的圖標.該庫能力確實十分強大,但是使用過程中...
    So_Why閱讀 4,514評論 0 6
  • Charts是一套非常漂亮的開源圖表組件,它是MPAndroidChart在蘋果端的移植版本,同時支持iOS/tv...
    清蘂翅膀的技術(shù)閱讀 17,489評論 4 11

友情鏈接更多精彩內(nèi)容