Anychart Android极坐标图xAxis标签将其更改为char字符串

问题描述 投票:0回答:1

早上好,

[我正在尝试在android(https://github.com/AnyChart/AnyChart-Android)中实现AnyChart极坐标图,其外观应类似于此(https://playground.anychart.com/gallery/Polar_Charts/Line_Polar_Chart)。我知道这个例子是用javascript编写的,并且我正在Android中开发它,这并不完全相同,但是保留对我想要实现的结果的引用是可以的。

从该示例开始,我一直在努力将xAxis标签(0°,30°,...)更改为定制的字符串,例如(“ Zero”,“ Thirty”,...)。我没有设法找到一个返回标签字符串(https://api.anychart.com/v8/anychart.core.ui.LabelsFactory#getLabel)的xAxis标签获取器,但找不到标签设置器...

我的目标是保持Anychart极坐标图的数值功能,其中可以从(45°,值1)到(45°,值5)绘制一条线,并在图的xlabel上显示字符,因此,与其在标签上看到“ 45°”,不如说“四十五”]

有人知道这是否可以实现吗?非常感谢!

android axis-labels anychart
1个回答
0
投票

您可以使用xAxis标签的format()功能来实现。在回调函数中,您可以实现自己的逻辑,以将数字转换为单词(如果是大小写,哈希图等)。该片段描述了如何实现这一目标。

        AnyChartView anyChartView = findViewById(R.id.any_chart_view);

        Polar polar = AnyChart.polar();

        List<DataEntry> data = new ArrayList<>();
        data.add(new ValueDataEntry(0, 10));
        data.add(new ValueDataEntry(15, 8));
        data.add(new ValueDataEntry(30, 12));
        data.add(new ValueDataEntry(45, 11));

        Set set = Set.instantiate();
        set.data(data);
        Mapping series1Data = set.mapAs("{ x: 'x', value: 'value' }");

        polar.line(series1Data);

        Linear scale = Linear.instantiate();
        scale.minimum(0).maximum(360);
        scale.ticks().interval(30);
        polar.xScale(scale);

        polar.xAxis().labels().format("function() {" +
                "if (this.tickValue == 60) return 'sixty';" +
                "if (this.tickValue == 90) return 'ninety';" +
                "if (this.tickValue == 120) return 'hundred twenty';" +
                "return this.tickValue;" +
                "}");

        anyChartView.setChart(polar);

下面是结果:enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.