MPAndroidChart3 RadarChart(雷達(dá)圖)案例

先引入一下
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'


圖片.png

maven { url 'https://jitpack.io' }

圖片.png

布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".RadarActivity">
    <com.github.mikephil.charting.charts.RadarChart
        android:id="@+id/radarChart"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
</LinearLayout>

activity


package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;

import com.github.mikephil.charting.charts.RadarChart;
import com.github.mikephil.charting.components.AxisBase;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
import com.github.mikephil.charting.data.RadarData;
import com.github.mikephil.charting.data.RadarDataSet;
import com.github.mikephil.charting.data.RadarEntry;
import com.github.mikephil.charting.formatter.IAxisValueFormatter;
import com.github.mikephil.charting.formatter.ValueFormatter;
import com.github.mikephil.charting.interfaces.datasets.IRadarDataSet;

import java.util.ArrayList;
import java.util.List;

public class RadarActivity extends AppCompatActivity {

    private RadarChart radarChart;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_radar);
        radarChart = findViewById(R.id.radarChart);
        setChartData2_2();
        XAxis xAxis = radarChart.getXAxis();
// 模擬X軸標(biāo)簽數(shù)據(jù)
        xAxis.setTextColor(Color.GRAY); // 文本顏色為灰色
        xAxis.setTextSize(20f); // 文本大小為18dp
// 設(shè)置標(biāo)簽的顯示格式
        xAxis.setValueFormatter(new ValueFormatter() {
            @Override
            public String getFormattedValue(float value) {
                final String[] weekStrs = new String[]{"美貌", "智慧", "愛我的心", "會(huì)胖多少", "美貌加持"};
                System.out.println(weekStrs[(int) value]);
//                return super.getFormattedValue(value);
                return weekStrs[(int) value];
            }

        });

        YAxis yAxis = radarChart.getYAxis();
        yAxis.setAxisMaximum(70f); // 要達(dá)到100需要把該值設(shè)為80,至于原因可以試著向下調(diào)小和向上調(diào)大看看效果就

    }
    /**
     * 設(shè)置圖表數(shù)據(jù)
     */
    private void setChartData2_2() {
        /* RadarData的List類型參數(shù)的構(gòu)造方法 */
        List<IRadarDataSet> dataSets = new ArrayList<>();
        dataSets.add(creatingData("靈魂"));
        RadarData data = new RadarData(dataSets);
        radarChart.setData(data);
    }

    /**
     * 創(chuàng)建虛擬圖表數(shù)據(jù)
     * @param lable 數(shù)據(jù)標(biāo)簽
     * @return
     */
    private RadarDataSet creatingData(String lable) {
        List<RadarEntry> yVals = new ArrayList<>();
            for (int i = 0; i < 5; i++) {
                yVals.add(new RadarEntry((float) (Math.random() * 100))); // 生成1-100的隨機(jī)數(shù)
        }

        RadarDataSet ds = new RadarDataSet(yVals, lable);
        ds.setColor(Color.parseColor("#FFC1C1"));
        ds.setDrawFilled(true); // 繪制填充,默認(rèn)為false
        ds.setFillColor(Color.parseColor("#FFC1C1")); // 填充顏色
        ds.setFillAlpha(51); // 填充內(nèi)容透明度
        ds.setDrawValues(false); // 指定那組數(shù)據(jù)(RadarDataSet對(duì)象)不顯示標(biāo)簽
        return ds;
    }
    /**
     * 創(chuàng)建一組虛擬圖表數(shù)據(jù)
     * @param lable 標(biāo)簽
     * @param color 顏色
     * @return
     */
    private RadarDataSet creatingData(String lable, int color) {
        RadarDataSet ds = creatingData(lable);
        ds.setColor(color);
//        ds.setColor(color, 102); // 第二個(gè)參數(shù)(alpha)設(shè)置顏色的透明度
        ds.setDrawFilled(true); // 繪制填充,默認(rèn)為false
        ds.setFillColor(color); // 填充顏色
        ds.setFillAlpha(51); // 填充內(nèi)容透明度
        ds.setDrawValues(false); // 指定那組數(shù)據(jù)(RadarDataSet對(duì)象)不顯示標(biāo)簽
        return ds;
    }
}

效果圖


圖片.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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