package com.anychart.sample.charts; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import com.anychart.AnyChart; import com.anychart.AnyChartView; import com.anychart.chart.common.dataentry.DataEntry; import com.anychart.chart.common.dataentry.HeatDataEntry; import com.anychart.charts.HeatMap; import com.anychart.enums.SelectionMode; import com.anychart.graphics.vector.SolidFill; import com.anychart.sample.R; import java.util.ArrayList; import java.util.List; public class HeatMapChartActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_chart_common); AnyChartView anyChartView = findViewById(R.id.any_chart_view); anyChartView.setProgressBar(findViewById(R.id.progress_bar)); HeatMap riskMap = AnyChart.heatMap(); riskMap.stroke("1 #fff"); riskMap.hovered() .stroke("6 #fff") .fill(new SolidFill("#545f69", 1d)) .labels("{ fontColor: '#fff' }"); riskMap.interactivity().selectionMode(SelectionMode.NONE); riskMap.title().enabled(true); riskMap.title() .text("Risk Matrix in Project Server") .padding(0d, 0d, 20d, 0d); riskMap.labels().enabled(true); riskMap.labels() .minFontSize(14d) .format("function() {\n" + " var namesList = [\"Low\", \"Medium\", \"High\", \"Extreme\"];\n" + " return namesList[this.heat];\n" + " }"); riskMap.yAxis(0).stroke(null); riskMap.yAxis(0).labels().padding(0d, 15d, 0d, 0d); riskMap.yAxis(0).ticks(false); riskMap.xAxis(0).stroke(null); riskMap.xAxis(0).ticks(false); riskMap.tooltip().title().useHtml(true); riskMap.tooltip() .useHtml(true) .titleFormat("function() {\n" + " var namesList = [\"Low\", \"Medium\", \"High\", \"Extreme\"];\n" + " return '' + namesList[this.heat] + ' Residual Risk';\n" + " }") .format("function () {\n" + " return 'Likelihood: ' + this.x + '
' +\n" + " 'Consequence: ' + this.y;\n" + " }"); List data = new ArrayList<>(); data.add(new CustomHeatDataEntry("Rare", "Insignificant", 0, "#90caf9")); data.add(new CustomHeatDataEntry("Rare", "Minor", 0, "#90caf9")); data.add(new CustomHeatDataEntry("Rare", "Moderate", 0, "#90caf9")); data.add(new CustomHeatDataEntry("Rare", "Major", 0, "#90caf9")); data.add(new CustomHeatDataEntry("Rare", "Extreme", 0, "#90caf9")); data.add(new CustomHeatDataEntry("Unlikely", "Insignificant", 0, "#90caf9")); data.add(new CustomHeatDataEntry("Unlikely", "Minor", 0, "#90caf9")); data.add(new CustomHeatDataEntry("Unlikely", "Moderate", 0, "#90caf9")); data.add(new CustomHeatDataEntry("Unlikely", "Major", 1, "#ffb74d")); data.add(new CustomHeatDataEntry("Unlikely", "Extreme", 1, "#ffb74d")); data.add(new CustomHeatDataEntry("Possible", "Insignificant", 0, "#90caf9")); data.add(new CustomHeatDataEntry("Possible", "Minor", 0, "#90caf9")); data.add(new CustomHeatDataEntry("Possible", "Moderate", 1, "#ffb74d")); data.add(new CustomHeatDataEntry("Possible", "Major", 1, "#ffb74d")); data.add(new CustomHeatDataEntry("Possible", "Extreme", 1, "#ffb74d")); data.add(new CustomHeatDataEntry("Likely", "Insignificant", 0, "#90caf9")); data.add(new CustomHeatDataEntry("Likely", "Minor", 1, "#ffb74d")); data.add(new CustomHeatDataEntry("Likely", "Moderate", 1, "#ffb74d")); data.add(new CustomHeatDataEntry("Likely", "Major", 2, "#ef6c00")); data.add(new CustomHeatDataEntry("Likely", "Extreme", 2, "#ef6c00")); data.add(new CustomHeatDataEntry("Almost\\nCertain", "Insignificant", 0, "#90caf9")); data.add(new CustomHeatDataEntry("Almost\\nCertain", "Minor", 1, "#ffb74d")); data.add(new CustomHeatDataEntry("Almost\\nCertain", "Moderate", 1, "#ffb74d")); data.add(new CustomHeatDataEntry("Almost\\nCertain", "Major", 2, "#ef6c00")); data.add(new CustomHeatDataEntry("Almost\\nCertain", "Extreme", 3, "#d84315")); riskMap.data(data); anyChartView.setChart(riskMap); } private class CustomHeatDataEntry extends HeatDataEntry { CustomHeatDataEntry(String x, String y, Integer heat, String fill) { super(x, y, heat); setValue("fill", fill); } } }