2017-06-23 13 views
0

iOS Charts Libraryによって作成された折れ線グラフで作業しています。iOS Chartsライブラリ - X軸の最後の値をクリッピングする

X軸の値は、1980年から2000年までですが、最後の値「2000」下のスクリーンショットのように、X軸から逃している:

enter image description here

コードは以下の通りです:使用

#import <Charts/Charts-Swift.h> 

@interface ViewController() <ChartViewDelegate> { 
    IBOutlet UITextField *tfInput; 
    IBOutlet LineChartView *chartView; 
} 

@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    chartView.delegate = self; 
    chartView.chartDescription.enabled = NO; 
    chartView.drawGridBackgroundEnabled = YES; 
    chartView.legend.enabled = NO; 

    // X-axis 
    chartView.xAxis.gridLineDashLengths = @[@10.0, @10.0]; 
    chartView.xAxis.gridLineDashPhase = 0.f; 
    chartView.xAxis.labelPosition = XAxisLabelPositionBottom; 

    // Y-axis 
    chartView.rightAxis.enabled = NO; 
    NSMutableArray *theDataSet = [NSMutableArray array]; 
    // (logic of adding data into data set here) 
    [self updateChartDataWithData:theDataSet]; 
} 

- (void)updateChartDataWithdata:(NSMutableArray *)data { 
    LineChartDataSet *dataSet = nil; 
    if(chartView.data.dataSetCount > 0) { 
     // Load existing data set 
     dataSet = (LineChartDataSet *)chartView.data.dataSets[0]; 
     // ...and update it 
     dataSet.values = data; 
     [chartView.data notifyDataChanged]; 
     [chartView notifyDataSetChanged]; 
    } else { 
     // Create new dataset 
     dataSet = [[LineChartDataSet alloc] initWithValues:data label:@"Dataset"]; 
     dataSet.axisDependency = AxisDependencyLeft; 
     [dataSet setColor:[UIColor colorWithRed:51/255.f green:181/255.f blue:229/255.f alpha:1.f]]; 
     [dataSet setCircleColor:UIColor.whiteColor]; 
     dataSet.lineWidth = 2.0; 
     dataSet.circleRadius = 3.0; 
     dataSet.fillAlpha = 66/255.0; 
     dataSet.fillColor = [UIColor colorWithRed:51/255.f green:181/255.f blue:229/255.f alpha:1.f]; 
     dataSet.highlightColor = [UIColor colorWithRed:244/255.f green:117/255.f blue:117/255.f alpha:1.f]; 
     dataSet.drawCircleHoleEnabled = NO; 
     dataSet.drawValuesEnabled = NO; 

     dataSet.drawCirclesEnabled = NO; 

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

     LineChartData *data = [[LineChartData alloc] initWithDataSets:dataSets]; 
     [data setValueTextColor:UIColor.whiteColor]; 
     [data setValueFont:[UIFont systemFontOfSize:9.f]]; 

     chartView.data = data; 
    } 
} 

実際のデータは以下の通りである:

X: 1980 Y: 0.000000115 
X: 1981 Y: 0.000000028 
X: 1982 Y: 0.000000038 
X: 1983 Y: 0.000000016 
X: 1984 Y: 0.000000032 
X: 1985 Y: 0.000000038 
X: 1986 Y: 0.000000045 
X: 1987 Y: 0.000000069 
X: 1988 Y: 0.000000045 
X: 1989 Y: 0.000000074 
X: 1990 Y: 0.000000054 
X: 1991 Y: 0.000000058 
X: 1992 Y: 0.000000049 
X: 1993 Y: 0.000000066 
X: 1994 Y: 0.000000065 
X: 1995 Y: 0.000000059 
X: 1996 Y: 0.000000050 
X: 1997 Y: 0.000000048 
X: 1998 Y: 0.000000062 
X: 1999 Y: 0.000000081 
X: 2000 Y: 0.000000079 

私はチャートビューを見落としてしまったのですか?

p.s.グラフビューには右端に十分なスペースがありますが、最後の値は表示されません。

答えて

1

x軸の値は3で、2000は3の倍数ではなく、1980の開始点で与えられます。x軸の次の値は2001ですが、データセットの外にあります。示されていない。 これはgranularityプロパティを使用して変更できます。

chartView.xAxis.granularity = 4 

私はテストするためのアクセス権がありませんが、私はかなり確信しています。

+0

はい、ありがとうございます。 – Raptor

関連する問題