2016-09-20 6 views
0

shinobi chartsの開始ズームアウト値を設定する方法はありますか?Shinobiチャートの初期データをズームアウト

SChartDateRange(X軸)の開始日に日付を1つ戻して終了日を追加しましたが、解決しませんでした。

ありがとうございます!

現在表&軸セットアップ

//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

チャートを作成するときに初期データ範囲を指定することでこれを達成できました。

データ範囲を指定するだけでなく、グラフが読み込まれるとすぐにズームアウトするように日付範囲を拡張する必要があります。例えば

、 はあなたの最初の日付範囲と言うことができます:

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

あなたの範囲の最初の日付が巻かれなければなりません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 {

    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

関連する問題