今天来记录一下RadarChart(雷达图)的详细美化!
注:本人使用的版本是MPAndroidChart-v3.0.3(如若版本不同有某些方法更新,可在评论区留言,尽我所能帮你解决!)
MPAndroidChart的详细使用——LineChart折线图(一)(简单使用)
MPAndroidChart的详细使用——LineChart折线图(二)(详细美化)
MPAndroidChart的详细使用——BarChart条形图(一)(简单使用)
MPAndroidChart的详细使用——BarChart条形图(二)(详细美化)
MPAndroidChart的详细使用——BarChart条形图组(三)(条形图组)
MPAndroidChart的详细使用——BarChart叠状条形图(四)(堆叠柱状图)
MPAndroidChart的详细使用——HorizontalBarChart横向条形图(五)(横向条形图)
MPAndroidChart的详细使用——PieChart饼图(一)(简单使用)
MPAndroidChart的详细使用——PieChart饼图(二)(详细美化)
效果图~
XML
<com.github.mikephil.charting.charts.RadarChart
android:id="@+id/radar"
android:layout_width="match_parent"
android:layout_height="300dp">
</com.github.mikephil.charting.charts.RadarChart>
Java
public class RadarChartMaxActivity extends AppCompatActivity {
private RadarChart radar;
List<RadarEntry> list;
List<RadarEntry> list2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_radar_chart_max);
radar = (RadarChart) findViewById(R.id.radar);
list=new ArrayList<>();
list2=new ArrayList<>();
list.add(new RadarEntry(30));
list.add(new RadarEntry(35));
list.add(new RadarEntry(40));
list.add(new RadarEntry(35));
list.add(new RadarEntry(20));
list2.add(new RadarEntry(50));
list2.add(new RadarEntry(45));
list2.add(new RadarEntry(55));
list2.add(new RadarEntry(40));
list2.add(new RadarEntry(60));
RadarDataSet radarDataSet=new RadarDataSet(list,"男性");
radarDataSet.setColor(Color.RED);
RadarDataSet radarDataSet1=new RadarDataSet(list2,"女性");
radarDataSet1.setColor(Color.BLUE);
RadarData radarData=new RadarData(radarDataSet);
radarData.addDataSet(radarDataSet1);
radar.setData(radarData);
//Y轴最小值不设置会导致数据中最小值默认成为Y轴最小值
radar.getYAxis().setAxisMinimum(0);
//大字的颜色(中心点和各顶点的连线)
radar.setWebColor(Color.CYAN);
//所有五边形的颜色
radar.setWebColorInner(Color.CYAN);
//整个控件的背景颜色
radar.setBackgroundColor(Color.LTGRAY);
XAxis xAxis=radar.getXAxis();
xAxis.setTextColor(Color.RED);//X轴字体颜色
xAxis.setTextSize(16); //X轴字体大小
//自定义X轴坐标描述(也就是五个顶点上的文字,默认是0、1、2、3、4)
xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float v, AxisBase axisBase) {
if (v==0){
return "语文";
}
if (v==1){
return "数学";
}
if (v==2){
return "英语";
}
if (v==3){
return "生物";
}
if (v==4){
return "地理";
}
return "";
}
});
//是否绘制雷达框上对每个点的数据的标注 和Y轴坐标点一般不同时存在 否则显得很挤 默认为true
radarDataSet.setDrawValues(false);
radarDataSet1.setDrawValues(false);
radarDataSet.setValueTextSize(12); //数据值得字体大小(这里只是写在这)
radarDataSet.setValueTextColor(Color.CYAN);//数据值得字体颜色(这里只是写在这)
YAxis yAxis=radar.getYAxis();
//是否绘制Y轴坐标点 和雷达框数据一般不同时存在 否则显得很挤 默认为true
yAxis.setDrawLabels(true);
yAxis.setTextColor(Color.GRAY);//Y轴坐标数据的颜色
yAxis.setAxisMaximum(80); //Y轴最大数值
yAxis.setAxisMinimum(0); //Y轴最小数值
//Y轴坐标的个数 第二个参数一般填false true表示强制设置标签数 可能会导致X轴坐标显示不全等问题
yAxis.setLabelCount(10,false);
//对于右下角一串字母的操作
radar.getDescription().setEnabled(false); //是否显示右下角描述
radar.getDescription().setText("这是修改那串英文的方法"); //修改右下角字母的显示
radar.getDescription().setTextSize(20); //字体大小
radar.getDescription().setTextColor(Color.CYAN); //字体颜色
//图例
Legend legend=radar.getLegend();
legend.setEnabled(true); //是否显示图例
legend.setPosition(Legend.LegendPosition.BELOW_CHART_CENTER); //图例的位置
}
}