2016-09-20 4 views
0

shinobi charts의 시작 축소 값을 설정하는 방법은 무엇입니까? Shinobi 차트 초기 데이터가 축소

은 이미 일을 시작하고 SChartDateRange (X 축)하지만 해결을위한 날짜를 종료에 날짜를 추가 한 날짜를 다시 설정했습니다.

미리 감사드립니다.

현재 표 & 축 설정

//properties 
@IBOutlet weak var chartView: UIView! 
private var chart:ShinobiChart? 
private let chartDataSource = LineGraphModDataSource() 


//methods 
override func viewDidLoad() 
{ 
super.viewDidLoad() 

chart = ShinobiChart(frame: chartView.bounds) 
chartView.addSubview(chart!) 

self.setupChart() 

}//eom 

func setupChart() 
{ 
    chart?.delegate = self 
    chart?.licenseKey = Constants.shared.getLicenseKey() 
    chart?.title    = "Chart #9" 
    chart?.autoresizingMask = [.flexibleHeight , .flexibleWidth] 
    chart?.datasource = chartDataSource 

/* X axis - Dates */ 
let dateRange:SChartDateRange = chartDataSource.getInititalDateRange() 
chart?.xAxis = SChartDateTimeAxis() 
chart?.xAxis.range = dateRange 
chart?.xAxis.axisPosition = SChartAxisPositionNormal 
chart?.xAxis.title = "Dates" 
chart?.xAxis.labelFormatString = "MM dd yy" 
chart?.xAxis.majorTickFrequency = SChartDateFrequency.dateFrequency(withDay: 3) 
chart?.xAxis.minorTickFrequency = SChartDateFrequency.dateFrequency(withDay: 1) 

//style 
    //major 
chart?.xAxis.style.majorGridLineStyle.showMajorGridLines = true 
chart?.xAxis.style.majorTickStyle.showTicks = true 
chart?.xAxis.style.majorTickStyle.showLabels = true 

    //minor 
chart?.xAxis.style.minorTickStyle.showTicks = true 
chart?.xAxis.style.minorTickStyle.showLabels = true 

//axis movement 
chart?.xAxis.enableGesturePanning = true 
chart?.xAxis.enableGestureZooming = true 
chart?.xAxis.enableMomentumPanning = true 
chart?.xAxis.enableMomentumZooming = true 

/* Y axis - Values */ 
chart?.yAxis = SChartNumberAxis() 
chart?.yAxis.defaultRange = SChartRange(minimum: 0, andMaximum: 10) 
chart?.yAxis.title = "Y axis" 
chart?.yAxis.axisPosition = SChartAxisPositionReverse 
chart?.yAxis.majorTickFrequency = 1 
chart?.yAxis.minorTickFrequency = 1 
chart?.yAxis.rangePaddingLow = 0.5 
chart?.yAxis.rangePaddingHigh = 0.5 


//style 
chart?.yAxis.style.majorGridLineStyle.showMajorGridLines = true 
chart?.yAxis.style.majorTickStyle.showTicks = true 
chart?.yAxis.style.majorTickStyle.showLabels = true 
chart?.yAxis.style.minorTickStyle.showTicks = true 
chart?.yAxis.style.minorTickStyle.showLabels = true 

//axis movement 
chart?.yAxis.enableGesturePanning = true 
chart?.yAxis.enableGestureZooming = true 
chart?.yAxis.enableMomentumPanning = true 
chart?.yAxis.enableMomentumZooming = true 

} // EOM

현재 시작 그래프 Current starting graph

원하는 시작 그래프

답변

0

차트를 생성 할 때, 초기 데이터 범위를 지정함으로써 이것을 달성 할 수 있었다. 데이터 범위를 제공 할뿐만 아니라

는 날짜 범위는 그래프가 즉시 축소 보일 수 있도록이로드 확장해야합니다.

  • 8/21/16
  • 8/25/16

하여 범위의 첫 번째 날짜가 롤백해야합니다 예를 들어

, 은 초기 날짜 범위가 말할 수 있습니다 뒤로 1 일 및 마지막 날은 1 일 이동해야합니다. 따라서 범위가 될 것입니다 :

  • 8/20/16
  • 8/26/16

    보기 컨트롤러

    SChartDateRange * startingDateRange = [self.datasource getInitialDateRange]; 
    self.chart.xAxis = [[SChartDateTimeAxis alloc] initWithRange:startingDateRange]; 
    self.chart.xAxis.majorTickFrequency = [[SChartDateFrequency alloc]initWithDay:1]; 
    

    데이터 소스

    - (SChartDateRange *) getInitialDateRange,451,515,{

    NSInteger lastIndex = [self.afterData count]; 
    lastIndex = lastIndex-1; 
    
    NSDate * minDate = [self getDateFromIndex:0]; 
    NSDate * maxDate = [self getDateFromIndex:lastIndex]; 
    
    //expanding range by 1 day so its more visible on map 
    NSInteger secondInDay = 86164; 
    minDate = [minDate dateByAddingTimeInterval:-secondInDay]; 
    maxDate = [maxDate dateByAddingTimeInterval:secondInDay]; 
    
    SChartDateRange * range = [[SChartDateRange alloc]initWithDateMinimum:minDate andDateMaximum:maxDate]; 
    
    return range; 
    

    } // EOM

관련 문제