2016-09-20 18 views
0

有沒有辦法設置shinobi charts的開始縮小值?Shinobi Chart初始數據縮小

我已經嘗試將一個日期設置回開始日期並將日期添加到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

期望的起動圖形 Desired starting graph

回答

0

通過指定創建圖表時的初始數據範圍可以實現此目的。

除了提供數據範圍之外,還必須擴展日期範圍,以便在加載圖表時儘快縮小圖表。

例如, 可以說,你的初始日期範圍:

  • 16年8月21日
  • 16年8月25日

您範圍的起始日期必須回滾返回1天,最後一天必須提前1天。所以範圍會變成:

  • 16年8月20日
  • 16年8月26日

    視圖控制器

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

    數據源

    - ( SChartDateRange *)getInitialDateRange {

    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