AAChartModel / AAChartCore

📈📊☕️☕️☕️An elegant modern declarative data visualization chart framework for Android. Extremely powerful, supports line, spline, area, areaspline, column, bar, pie, scatter, angular gauges, arearange, areasplinerange, columnrange, bubble, box plot, error bars, funnel, waterfall and polar chart types.极其精美而又强大的 Android 数据可视化图表框架,支持柱状图、条形图、折线图、曲线图、折线填充图、曲线填充图、气泡图、扇形图、环形图、散点图、雷达图、混合图等各种类型的多达几十种的信息图图表,完全满足工作所需.
Apache License 2.0
921 stars 129 forks source link

文字如何居左 #201

Closed qizhengzheng closed 1 month ago

qizhengzheng commented 1 month ago

image

//        String[] ss = new String[]{
//                "<div style=\\\"text-align:left\\\">丽水职业技术学院(莲都区欣苑街357号)<br/>1111</div>",
//                "<div style=\\\"text-align:left\\\">丽水</div>",
//                "<div style=\\\"text-align:left\\\">丽水职业技术学院(莲都区欣苑街357号</div>",
//                "<div style=\\\"text-align:left\\\">丽水职业技术学院(莲都区欣苑街357号</div>",
//                "<div style=\\\"text-align:left\\\">丽水职业技术学院(莲都区欣苑街357号</div>",
//                "<div style=\\\"text-align:left\\\">丽水职业技术学院(莲都区欣苑街357号</div>",
//        };
//        System.out.println(Arrays.toString(ss));
        List<String> colorsArr = new ArrayList<>();
        colorsArr.add("#9692ff");
        colorsArr.add("#5bd1ff");
        colorsArr.add("#1cd389");
        String[] categories = new String[schoolName.length];
        for (int i = 0;i<(schoolName.length);i++){
            categories[i] = "<div style=\\\"text-align:left\\\">"+schoolName[i]+"</div>";
//            System.out.println(i+"<div style=\\\"text-align:left\\\">"+schoolName[i]+"</div>");
            if (i>4){
                colorsArr.add("#668eff");
            }
        }
        System.out.println(Arrays.toString(categories));
        Number minHeight = 1100;
        if (schoolName.length<6){
            minHeight = 0;
        }
        else if (schoolName.length>=6&&schoolName.length<8){
            minHeight = 230;
        }
        else if (schoolName.length>=8&&schoolName.length<10){
            minHeight = 250;
        } else if (schoolName.length>=10&&schoolName.length<12){
            minHeight = 330;
        }

        AAChartModel aaChartModel = new AAChartModel()
                .chartType("bar")
                .title("")
                .animationType(AAChartAnimationType.Bounce)
                .subtitle("")
                .backgroundColor("#fff")
                .dataLabelsEnabled(true)
                .tooltipEnabled(false)
                .legendEnabled(false)
                .xAxisReversed(true)
                .xAxisGridLineWidth(0f)
                .yAxisLabelsEnabled(false)
                .yAxisGridLineWidth(0f)
                .categories(categories)
                .colorsTheme(colorsArr.toArray(new Object[colorsArr.size()]))
                .axesTextColor("#5bd1ff")
                .subtitleStyle(new AAStyle()
                        .color("#333333")
                        .fontWeight("400")
                        .fontSize(150)
                )
                .dataLabelsStyle(new AAStyle()
                        .color("#333333")
                        .fontWeight("400")
                        .fontSize(15)
                )
                .scrollablePlotArea(
                        new AAScrollablePlotArea()
                                .opacity(1.9F)
                                //图表的高度,设置的比屏幕高,就可以滑动
                                .minHeight(minHeight)
                                //起始,是在最顶部(0f)还是最底部(1f)
                                .scrollPositionY(0f)
                )
                .series(new AASeriesElement[]{
                        new AASeriesElement()
                                .name("Tokyo")
    //                                .data(new Object[]{10.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6,10.0})
                                .data(nums)
                                .colorByPoint(true)
                                .dataLabels(
                                new AADataLabels()
                                        .enabled(true)
                                        .format("{y:.0f}人")
                        )
                });
    //        }
        AAOptions aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel);

        AACrosshair aaCrosshair = new AACrosshair()
                .dashStyle(AAChartLineDashStyleType.LongDashDot)
                .color("#333")
                .width(1.f);

        AALabels aaLabels = new AALabels()
                .useHTML(true)
                .style(new AAStyle()
                        .fontSize(15.f)
                        .fontWeight("400")
                        .color("#333")//轴文字颜色
                );

        aaOptions.xAxis
    //                .tickWidth(2.f)//X轴刻度线宽度
                .lineWidth(0f)//X轴轴线宽度
    //                .lineColor("#333")//X轴轴线颜色
    //                .crosshair(aaCrosshair)
                .labels(aaLabels);
        Long max = 100L;
        if (nums.length>0){
            for (Object t : nums){
                if ((Long) t > max){
                    max = (Long) t;
                }
            }
            max = (long) (max * 1.15);
        }

        aaOptions.yAxis
                .max(max);
        return aaOptions;
AAChartModel commented 1 month ago
AAOptions aaOptions = new AAOptions()
    .chart(new AAChart().type(AAChartType.Bar))
    .xAxis(new AAXAxis()
        .categories(new String[]{"Category 1", "Category 2", "Category 3"})
        .labels(new AALabels()
            .align(AAChartAlignType.Left) // 设置 x 轴标签居左对齐
        )
    )
    .series(new AASeriesElement[]{
        new AASeriesElement()
            .name("Example")
            .data(new Object[]{1, 3, 2})
    });

请类似于这样配置代码试试效果.

qizhengzheng commented 1 month ago

image 你好加上成这种了,怎么让图在文字后面对起排列

AAChartModel commented 1 month ago

参考在线 API 文档:

AAChartModel commented 1 month ago
Highcharts.chart('container', {
    chart: {
        type: 'bar'
    },
    title: {
        text: 'Left aligned X axis labels'
    },
    xAxis: {
        categories: ['ApplesApplesApplesApplesApples', 'Oranges', 'Pears', 'Grapes', 'Bananas'],
        labels: {
            align: 'left',
            reserveSpace: true
        }
    },
    yAxis: {
        min: 0,
        title: {
            text: 'Total fruit consumption'
        }
    },
    legend: {
        reversed: true
    },
    plotOptions: {
        series: {
            stacking: 'normal'
        }
    },
    series: [{
        name: 'John',
        data: [5, 3, 4, 7, 2]
    }, {
        name: 'Jane',
        data: [2, 2, 3, 2, 1]
    }, {
        name: 'Joe',
        data: [3, 4, 4, 2, 5]
    }]
});

类似如上配置代码, 可得如下图表📊:

截屏2024-08-13 14 45 48
AAChartModel commented 1 month ago

更新 AAChartCore 至最新代码.

参考此次提交内容:

配置 AAOptions 即可.