Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ios图表雷达图表关闭自动缩放功能_Ios_Objective C_Ios Charts_Radar Chart - Fatal编程技术网

ios图表雷达图表关闭自动缩放功能

ios图表雷达图表关闭自动缩放功能,ios,objective-c,ios-charts,radar-chart,Ios,Objective C,Ios Charts,Radar Chart,这两个雷达图的橙色部分数据点相同,但灰色部分数据点不同。但是,正如您所看到的,它是自动缩放的,橙色位在第二张图表上会变大,即使它们是相同的精确数据点。有没有办法关闭自动缩放功能?我想100%的去权利的图表的边缘也 -(void)setupRadarChart { self.radarChart.descriptionText = @""; self.radarChart.webLineWidth = .75; self.radarChart.innerWebLineWid

这两个雷达图的橙色部分数据点相同,但灰色部分数据点不同。但是,正如您所看到的,它是自动缩放的,橙色位在第二张图表上会变大,即使它们是相同的精确数据点。有没有办法关闭自动缩放功能?我想100%的去权利的图表的边缘也

-(void)setupRadarChart
{
    self.radarChart.descriptionText = @"";
    self.radarChart.webLineWidth = .75;
    self.radarChart.innerWebLineWidth = 0.375;
    self.radarChart.webAlpha = 1.0;
    self.radarChart.userInteractionEnabled = NO;
    self.radarChart.xAxis.enabled = YES;
    ChartYAxis *yAxis = self.radarChart.yAxis;
    yAxis.enabled = NO;
    ChartLegend *l = self.radarChart.legend;
    l.position = ChartLegendPositionBelowChartLeft;
    l.font = [UIFont systemFontOfSize:UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 12 : (headerWidth/40)];
    [self setRadarData];
}

- (void)setRadarData
{
    NSMutableArray *parties = [[NSMutableArray alloc] init];
    for (PillarModel *m in [DataManager sharedData].pillars)
    {
        [parties addObject:m.abbreviation];
    }
    NSMutableArray *yVals2 = [[NSMutableArray alloc] init];
    NSMutableArray *benchMark = [[NSMutableArray alloc] init];
    BOOL shouldAdd = YES;

    for (PillarModel *pillar in [DataManager sharedData].pillars)
    {    int totalPillarScore = (int)[[DataManager sharedData] getTotalScorePossible:[[DataManager sharedData] getIndividualQuestionResultsForPillar:pillar.pillarId]];
        if ((isCompany ? [[DataManager sharedData] getCompanyScoresForCategory:pillar] : [[DataManager sharedData] getIndividualScoreForCategory:pillar.pillarId]) != 0)
        {
            shouldAdd = NO;
        }
        if (pillar.pillarId == numberOfPillars -1 && shouldAdd) {
            [yVals2 addObject:[[ChartDataEntry alloc] initWithValue:0.01 xIndex:pillar.pillarId]];

        }
        else{
            double val = (isCompany ? (double)[[DataManager sharedData] getCompanyScoresForCategory:pillar]/totalPillarScore                                                                                : (double)[[DataManager sharedData] getIndividualScoreForCategory:pillar.pillarId] / totalPillarScore);
            [yVals2 addObject:[[ChartDataEntry alloc] initWithValue:val xIndex:pillar.pillarId]];
        }
        float pillarBenchMark = [[[[[DataManager sharedData].benchmarkJSONDict objectForKey:hightlightedView.lowercaseString] objectForKey:pillar.title] objectForKey:@"pillar"] intValue];
        float ifNoBenchMarkThanCompanyScore = (pillarBenchMark ? pillarBenchMark : (isCompany ? [[DataManager sharedData] getIndividualScoreForCategory:pillar.pillarId]: [[DataManager sharedData] getCompanyScoresForCategory:pillar]));
        [benchMark addObject:[[ChartDataEntry alloc] initWithValue:ifNoBenchMarkThanCompanyScore/totalPillarScore xIndex:pillar.pillarId]];
    }

    NSMutableArray *xVals = [[NSMutableArray alloc] init];

    for (int i = 0; i < numberOfPillars; i++)
    {
        [xVals addObject:parties[i % parties.count]];
    }

    NSString *label = (isCompany ? @"Company score" : @"Your score");
    RadarChartDataSet *set2 = [[RadarChartDataSet alloc] initWithYVals:yVals2 label:label];
    [set2 setColor:[DataManager sharedData].mainColor];
    set2.drawFilledEnabled = YES;
    set2.fillAlpha = 1.0f;
    set2.lineWidth = 2.0;

    RadarChartDataSet *benchMarkSet = [[RadarChartDataSet alloc] initWithYVals:benchMark label:@"Benchmark"];
    [benchMarkSet setColor:[UIColor colorWithRed:125/255.0f green:125/255.0f blue:125/255.0f alpha:0.6f]];
    benchMarkSet.drawFilledEnabled = YES;
    benchMarkSet.fillAlpha = 0.0f;
    benchMarkSet.lineWidth = 2.0;
    benchMarkSet.highlightLineDashLengths = @[[NSNumber numberWithInt:2]];
    benchMarkSet.highlightLineDashPhase = 2;

    RadarChartData *data = [[RadarChartData alloc] initWithXVals:xVals dataSets:@[set2, benchMarkSet]];
    [data setValueFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:8.f]];
    [data setDrawValues:NO];

    self.radarChart.data = data;
}
-(无效)设置雷达艺术
{
self.radarChart.descriptionontext=@”;
self.radarChart.webLineWidth=.75;
self.radarChart.innerWebLineWidth=0.375;
self.radarChart.webAlpha=1.0;
self.radarChart.userInteractionEnabled=否;
self.radarChart.xAxis.enabled=是;
ChartYAxis*yAxis=self.radarChart.yAxis;
yAxis.enabled=否;
ChartLegend*l=self.radarChart.legend;
l、 位置=ChartLegendPositionBelowChartLeft;
l、 font=[UIFont systemFontOfSize:UI_用户界面_惯用语()==UIUserInterfaceIdiomPad?12:(headerWidth/40)];
[自设置雷达数据];
}
-(无效)setRadarData
{
NSMutableArray*parties=[[NSMutableArray alloc]init];
用于[DataManager sharedData].PillarModel中的(PillarModel*m)
{
[缔约方添加对象:m.缩写];
}
NSMutableArray*yVals2=[[NSMutableArray alloc]init];
NSMutableArray*基准=[[NSMutableArray alloc]init];
BOOL shouldAdd=是;
对于[DataManager sharedData].PillarModel中的(PillarModel*支柱)
{int totalPillarScore=(int)[[DataManager sharedData]GetTotalScore可能:[[DataManager sharedData]getIndividualQuestionResultsForPillar:pillar.Pillard]];
如果((isCompany?[[DataManager sharedData]GetCompanyCoresForCategory:支柱]:[[DataManager sharedData]getIndividualScoreForCategory:支柱.支柱])!=0)
{
shouldAdd=否;
}
如果(支柱.支柱==支柱数量-1&&shouldAdd){
[yVals2添加对象:[[ChartDataEntry alloc]initWithValue:0.01 xIndex:柱子.柱]];
}
否则{
double val=(isCompany?(double)[[DataManager sharedData]GetCompanyCoresForCategory:PillarCore]/TotalPillarCore:(double)[[DataManager sharedData]getIndividualScoreForCategory:pillar.PillarCore]/TotalPillarCore);
[yVals2添加对象:[[ChartDataEntry alloc]initWithValue:val xIndex:posal.pilland]];
}
float pillarBenchMark=[DataManager sharedData].benchmarkJSONDict objectForKey:hightlightedView.lowercaseString]objectForKey:pillar.title]objectForKey:@“pillar”]intValue];
float if nobenchmarkthan companyscore=(pillarBenchMark?pillarBenchMark:(isCompany?[[DataManager sharedData]获取类别:支柱的个人得分。Pillard]:[[DataManager sharedData]获取公司核心类别:支柱]);
[基准添加对象:[[ChartDataEntry alloc]initWithValue:ifNoBenchMarkThanCompanyScore/TotalPillarCore xIndex:pillar.Pillard];
}
NSMutableArray*xVals=[[NSMutableArray alloc]init];
for(int i=0;i
恐怕您不应该直接使用customAxisMax,因为它使用内部访问级别

相反,您可以使用
axisMaxValue
来控制它

/// The maximum value for this axis.
/// If set, this value will not be calculated automatically depending on the provided data.
/// Use `resetCustomAxisMin()` to undo this.
public var axisMaxValue: Double
{
    get
    {
        return _axisMaximum
    }
    set
    {
        _customAxisMax = true
        _axisMaximum = newValue
    }
}
//2016-06-12更新

public var factor: CGFloat
{
    let content = _viewPortHandler.contentRect
    return min(content.width / 2.0, content.height / 2.0)
            / CGFloat(_yAxis.axisRange)
}
RadarChartView
将计算一个
因子
,将值转换为像素


也许,您可以使用
axisMinValue
axisMaxValue
控制自动缩放。

发布的答案孙博弘 不正确,但这让我意识到这是多么容易解决。这既解决了自动缩放问题,现在也达到了边缘

self.radarChart.yAxis.customAxisMin = 0;
self.radarChart.yAxis.customAxisMax = 1;

这对我不起作用,像素值只是使事物像素化。
self.radarChart.yAxis.customAxisMin = 0;
self.radarChart.yAxis.customAxisMax = 1;