MPAndroidChart3使用详解8:RadarChart(雷达图)顶角显示圆点——额外设置一组顶点值数据方案

目录

 

1 实现:

2 效果:


1 实现:

Step 1:分别新建5个shape资源文件。

Step 2:内容如下,根据个人需求更改颜色、半径、尺寸。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <!--图形颜色-->
    <solid android:color="#36a9ce"/>
    <!--图形半径-->
    <corners android:radius="6dp"/>
    <!--图形尺寸-->
    <size android:width="12dp"
        android:height="12dp"/>
</shape>

Step 3:添加一组顶点值数据,如顶点值为100,则这组数据的所有值都为100,然后为每个数组设置一个图标(前面创建的shape资源文件),再将数据间的连线隐藏掉且不绘制数据值。

/**
* 创建一组虚拟图表数据
* @return
*/
private RadarDataSet drawAngleCircle() {
    List<RadarEntry> yVals = new ArrayList<>();
    // 各个顶点的图标资源
    int[] drawables = new int[]{
        R.drawable.shape_circle_1,
        R.drawable.shape_circle_2,
        R.drawable.shape_circle_3,
        R.drawable.shape_circle_4,
        R.drawable.shape_circle_5,
    };
    for (int i = 0; i < 5; i++) {
        RadarEntry radarEntry = new RadarEntry(100f);
        radarEntry.setIcon(getResources().getDrawable(drawables[i])); // 为每个数据设置一个图标 
        yVals.add(radarEntry);
    }
    RadarDataSet ds = new RadarDataSet(yVals, "");
    ds.setColors(Color.TRANSPARENT); // 不显示数据连线
    ds.setDrawValues(false); // 不绘制数据值
    return ds;
}

2 效果:

特别注意:这种方式比较简单,但如果辅助绘制圆点的数据控制不好的话,圆点位置比较容易失控,如果对于精准性要求较高的话最好采用“重写RadarChart控件添加顶角圆点绘制方案”。

那如何合理控制辅助绘制的圆点呢?

1.把控数据最大值作为顶角,比如这里所有数据的最大取值为100,否则圆点位置会绘制到图表内部。

yAxis.setAxisMaximum(80f); // 为什么是80不是100呢,可以试一下100就知道它是不是有自己的想法

2.保证图表中心点是从0开始,否则圆点位置会绘制到图表外部。

yAxis.setAxisMinimum(0f);

或者可以再加一组辅助的假数据,所有值都为0,就可以保证从0开始绘制也看不见。

List<RadarEntry> yVals = new ArrayList<>();
for (int i = 0; i < 5; i++) {
    yVals.add(new RadarEntry(0));
}
RadarDataSet ds = new RadarDataSet(yVals, lable);
ds.setDrawValues(false);
dataSets.add(ds);

如果不是将圆点绘制在图表的顶点,而是想绘制到每个真实数据值的顶点,把绘制圆点的那组数据值保持与真实数据顶点的值一致即可。

雷达图的使用教程:https://blog.csdn.net/Honiler/article/details/90407390

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Homilier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值