2016-09-20 4 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 

} // МНВ

Текущий исходный граф Current starting graph

Желаемый график запуска Desired starting graph

ответ

0

Удалось добиться этого, указав начальный диапазон данных при создании диаграммы.

В дополнение к предоставлению диапазона данных диапазон дат должен быть расширен таким образом, чтобы график мог казаться уменьшенным, как только он загрузится.

Например, позволяет сказать, что ваш первоначальный диапазон дат:

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

Первая дата на вашем диапазоне должны быть свернуты назад 1 день, а последний день должен быть поднят на 1 день. Таким образом, диапазон стал бы:

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

    View Controller

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

    Datasource

    - (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; 
    

    } // МНВ

Смежные вопросы