2016-03-30 21 views
1

Şu anda projemde iosChart kullanıyorum. Ben resimde aşağıda gösterilen bar grafik kullandık:iosChart: x ekseni etiketi hiç gösterilmiyor

sorun, (2. ve 4.) tüm x gösterilmiyor olan - ekseni etikel. yakınlaştırdığımda gösteriyorum. Bu etiketi göstermenin bir yolu var mı?

chartView.delegate = self; 

chartView.descriptionText = @""; 
chartView.noDataTextDescription = GGLocalizeString(@"deshboard.ui.chart.empty"); 

chartView.drawBarShadowEnabled = NO; 
chartView.drawValueAboveBarEnabled = YES; 

chartView.maxVisibleValueCount = 60; 
chartView.pinchZoomEnabled = NO; 
chartView.drawGridBackgroundEnabled = NO; 

ChartXAxis *xAxis = chartView.xAxis; 
xAxis.labelPosition = XAxisLabelPositionBottom; 
xAxis.labelFont = [UIFont systemFontOfSize:10.f]; 
xAxis.drawGridLinesEnabled = NO; 
xAxis.spaceBetweenLabels = 2.0; 

ChartYAxis *leftAxis = chartView.leftAxis; 
leftAxis.labelFont = [UIFont systemFontOfSize:10.f]; 
leftAxis.labelCount = 8; 
leftAxis.valueFormatter = [[NSNumberFormatter alloc] init]; 
leftAxis.valueFormatter.maximumFractionDigits = 1; 
leftAxis.valueFormatter.negativeSuffix = @""; 
leftAxis.valueFormatter.positiveSuffix = @""; 
leftAxis.labelPosition = YAxisLabelPositionOutsideChart; 
leftAxis.spaceTop = 0.15; 

ChartYAxis *rightAxis = chartView.rightAxis; 
rightAxis.drawGridLinesEnabled = NO; 
rightAxis.labelFont = [UIFont systemFontOfSize:10.f]; 
rightAxis.labelCount = 8; 
rightAxis.valueFormatter = leftAxis.valueFormatter; 
rightAxis.spaceTop = 0.15; 

chartView.legend.position = ChartLegendPositionBelowChartLeft; 
chartView.legend.form = ChartLegendFormSquare; 
chartView.legend.formSize = 9.0; 
chartView.legend.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:11.f]; 
chartView.legend.xEntrySpace = 4.0; 


if (self.chartData.arrayCityData.count == 0) { 
    return cell; 
} 

//X - VALUE 
NSMutableArray *xVals = [[NSMutableArray alloc] init]; 

for (int i = 0; i < [self.chartData.arrayCityData count]; i++) 
{ 
    DealData *dealData = [self.chartData.arrayCityData objectAtIndex:i]; 

    [xVals addObject: [NSString stringWithFormat:@"%@(%.2f%%)",dealData.name,[dealData.totalClick floatValue]*100/[self totalCityClicks]]]; 
} 

//Y - VALUE 
NSMutableArray *yVals = [[NSMutableArray alloc] init]; 

for (int i = 0; i < [self.chartData.arrayCityData count]; i++) 
{ 
    DealData *dealData = [self.chartData.arrayCityData objectAtIndex:i]; 

    [yVals addObject:[[BarChartDataEntry alloc] initWithValue:[dealData.totalClick doubleValue] xIndex:i]]; 
} 

BarChartDataSet *set1 = [[BarChartDataSet alloc] initWithYVals:yVals label:GGLocalizeString(@"deshboard.ui.cell.lblTitle6.cities")]; 
set1.barSpace = 0.35; 

NSMutableArray *dataSets = [[NSMutableArray alloc] init]; 
[dataSets addObject:set1]; 

BarChartData *data = [[BarChartData alloc] initWithXVals:xVals dataSets:dataSets]; 
[data setValueFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:10.f]]; 

//remove decimal 
NSNumberFormatter *vf = [[NSNumberFormatter alloc] init]; 
vf.generatesDecimalNumbers = NO; 
data.valueFormatter = vf; 

chartView.data = data; 
    chartView.legend.position = ChartLegendPositionBelowChartLeft; 
    chartView.legend.form = ChartLegendFormSquare; 
    chartView.legend.formSize = 9.0; 
    chartView.legend.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:11.f]; 
    chartView.legend.xEntrySpace = 4.0; 


    if (self.chartData.arrayCityData.count == 0) { 
     return cell; 
    } 

    //X - VALUE 
    NSMutableArray *xVals = [[NSMutableArray alloc] init]; 

    for (int i = 0; i < [self.chartData.arrayCityData count]; i++) 
    { 
     DealData *dealData = [self.chartData.arrayCityData objectAtIndex:i]; 

     [xVals addObject: [NSString stringWithFormat:@"%@(%.2f%%)",dealData.name,[dealData.totalClick floatValue]*100/[self totalCityClicks]]]; 
    } 

    //Y - VALUE 
    NSMutableArray *yVals = [[NSMutableArray alloc] init]; 

    for (int i = 0; i < [self.chartData.arrayCityData count]; i++) 
    { 
     DealData *dealData = [self.chartData.arrayCityData objectAtIndex:i]; 

     [yVals addObject:[[BarChartDataEntry alloc] initWithValue:[dealData.totalClick doubleValue] xIndex:i]]; 
    } 

    BarChartDataSet *set1 = [[BarChartDataSet alloc] initWithYVals:yVals label:GGLocalizeString(@"deshboard.ui.cell.lblTitle6.cities")]; 
    set1.barSpace = 0.35; 

    NSMutableArray *dataSets = [[NSMutableArray alloc] init]; 
    [dataSets addObject:set1]; 

    BarChartData *data = [[BarChartData alloc] initWithXVals:xVals dataSets:dataSets]; 
    [data setValueFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:10.f]]; 

    //remove decimal 
    NSNumberFormatter *vf = [[NSNumberFormatter alloc] init]; 
    vf.generatesDecimalNumbers = NO; 
    data.valueFormatter = vf; 

    chartView.data = data; 
+0

Grafiği ayarlamak için kullandığınız kodu gösterin, belki? – trojanfoe

+0

@trojanfoe eklendi! –

cevap

2

sıra varsayılan olarak, ios-çizelgeleri x ekseni etiketleri çizmek aralığını karar vermek x ekseni için bir modül hesaplar:

İşte benim kodudur. Bu senin durumun. çünkü her etiket çubuktan daha uzun olduğu için, etiket çakışmasını önlemek için bunu yapmalıyız. Bunu istemiyorsanız Etiket sonra sadece kodunun altına ekleyin ve ben iş olduğunu düşünüyorum bkz birbiriyle örtüşme ise

, sadece xAxis.setLabelsToSkip(0)

1

diyoruz.

[xAxis setLabelsToSkip:0]; 
[xAxis setWordWrapEnabled:YES];