AAChartKit icon indicating copy to clipboard operation
AAChartKit copied to clipboard

How to change range on Y axis

Open mladjan opened this issue 1 year ago • 11 comments

CleanShot 2024-01-27 at 21 23 19@2x

I have 2 kind of data. Value2 goes from 0 to 220, so range on X axis is fine. But on Y axis, it's from 107 to 105, so really small changes.

How to make Y axis more detailed, so changes are more visible?

This is the current code:

AAChartModel *aaChartModel= AAObject(AAChartModel)
    .chartTypeSet(AAChartTypeLine)
    .titleSet(@"")
    .categoriesSet(speedIntArray)
    .yAxisTitleSet(@"")
    .colorsThemeSet(@[@"#15A3FE",@"#FE7620"])
    .seriesSet(@[
            AAObject(AASeriesElement)
            .nameSet(@"Value 1")
            .dataSet(heightArray)
            ,
            AAObject(AASeriesElement)
            .nameSet(@"Value 2")
            .dataSet(speedIntArray)])
    .markerRadiusSet(@1);
    AAItemStyle *aaItemStyle = AAObject(AAItemStyle)
    .colorSet(@"#ffffff")
    .cursorSet(@"pointer")
    .fontSizeSet(@"12px")
    .fontWeightSet(AAChartFontWeightTypeThin);
    AAOptions *aaOptions = [AAOptionsConstructor configureChartOptionsWithAAChartModel:aaChartModel];
    aaOptions.legend.itemStyle = aaItemStyle;
    [_aaChartView aa_drawChartWithOptions:aaOptions];

mladjan avatar Jan 27 '24 20:01 mladjan

Maybe you need to change the chart to a dual Y-axis chart.

AAChartModel avatar Jan 30 '24 02:01 AAChartModel

@AAChartModel how? I don't see any AAChartType like this. Can you help me with some code snippet?

mladjan avatar Jan 30 '24 15:01 mladjan

  • https://github.com/AAChartModel/AAChartKit/issues/759

AAChartModel avatar Jan 30 '24 16:01 AAChartModel

I managed to make double `y axis chart, but there is no way to change the background color from White to something else.

Setting background doesn't work on this type of chart. I tried with:

_aaChartView.isClearBackgroundColor = YES;

Is there any other way to make it another color than white?

mladjan avatar Feb 05 '24 08:02 mladjan

What effect are you looking for? Can you provide a screenshot of the design draft?

AAChartModel avatar Feb 05 '24 08:02 AAChartModel

CleanShot 2024-02-05 at 09 19 10@2x This is how it looks now, I just need the background to be another color :)

mladjan avatar Feb 05 '24 08:02 mladjan

The code of AAChartView.m file

- (void)configureTheOptionsJsonStringWithAAOptions:(AAOptions *)aaOptions {
    if (_isClearBackgroundColor) {
        aaOptions.chart.backgroundColor = @"rgba(0,0,0,0)";
    }
    
    if (_clickEventEnabled == true) {
        aaOptions.clickEventEnabled = true;
        [self configurePlotOptionsSeriesPointEventsWithAAOptions:aaOptions];
    }
    if (_mouseOverEventEnabled == true) {
        aaOptions.touchEventEnabled = true;
        if (_clickEventEnabled == false) {//避免重复调用配置方法
            [self configurePlotOptionsSeriesPointEventsWithAAOptions:aaOptions];
        }
    }
    
    _optionJson = [AAJsonConverter pureOptionsJsonStringWithOptionsInstance:aaOptions];
}

The key content

   if (_isClearBackgroundColor) {
        aaOptions.chart.backgroundColor = @"rgba(0,0,0,0)"; // set the chart be clear color
    }

So, If you just want to change the chart bacckgroundColor, do not use

_aaChartView.isClearBackgroundColor = YES;

AAChartModel avatar Feb 05 '24 08:02 AAChartModel

I have removed "isClearBackground" property, and manually set:

aaaOptions.chart.backgroundColor = @"rgba(25,25,35,1)";

But it's still white

mladjan avatar Feb 05 '24 08:02 mladjan

You can also see the sample in the demo

  • https://github.com/AAChartModel/AAChartKit/issues/771

In this example, the background color is set to @"#191E40".

    AAChart *aaChart = AAChart.new
    .backgroundColorSet(@"#191E40");

AAChartModel avatar Feb 05 '24 08:02 AAChartModel

It works with this code sample:

 AAChart *aaChart = AAChart.new
    .backgroundColorSet(@"#191923");

    AAOptions *aaaOptions = AAOptions.new
    .chartSet(aaChart)
    .titleSet(aaTitle)
    .xAxisSet(aaXAxis)
    .yAxisSet((id)@[yAxisOne,yAxisTwo])
    .tooltipSet(aaTooltip)
    .seriesSet(aaSeries)
    ;

    
    [_aaChartView aa_drawChartWithOptions:aaaOptions];

mladjan avatar Feb 05 '24 08:02 mladjan

You can also see the sample in the demo

In this example, the background color is set to @"#191E40".

    AAChart *aaChart = AAChart.new
    .backgroundColorSet(@"#191E40");

Is there a possibility to add 3rd Y axis and to set proper scaling on that? When I added 3rd Y axis parameter, it uses scaling from second Y axis and because of that, resolution is small.

mladjan avatar Mar 12 '24 22:03 mladjan