2017-03-27 16 views
1

iOS-Chartsを使用して横棒グラフを表示しています。 左側のx軸ラベルが途切れています。 グラフをダブルタップすると、正しいサイジングが行われ、ラベルはもう消えません。iOS-Charts xAxisラベルが切り取られます

ここで私はどのようにそれを修正する

func setChart(_ dataPoints: [(String,Int)], chart: HorizontalBarChartView) { 

    chart.noDataText = "No data available." 

    var dataEntries: [BarChartDataEntry] = [] 

    let maxNumberEntries = dataPoints.count 

    var xAxisLabel: [String] = [] 

    var counter:Int = maxNumberEntries-1 
    for _ in 0..<maxNumberEntries { 
     let dataEntry = BarChartDataEntry(x: Double(counter), yValues: [Double(dataPoints[counter].1)], label: dataPoints[counter].0) 
     dataEntries.append(dataEntry) 
     xAxisLabel.append(dataPoints[counter].0) 
     counter -= 1 
    } 

    xAxisLabel = xAxisLabel.reversed() 

    let chartDataSet = BarChartDataSet(values: dataEntries, label: "") 
    let chartData = BarChartData(dataSet: chartDataSet) 
    chart.data = chartData 
    chart.animate(xAxisDuration: 2.0, yAxisDuration: 2.0) 

    // disable zoom of chart 
    chart.pinchZoomEnabled = false 
    chart.scaleXEnabled = false 
    chart.scaleYEnabled = false 

    chart.chartDescription?.text = "" 
    chart.legend.enabled = false 

    // disable selection of bars 
    chartDataSet.highlightEnabled = false 
    chartDataSet.valueFont = NSUIFont.systemFont(ofSize: 10) 

    let numberFormatter = ValueFormatter() 
    chartData.setValueFormatter(numberFormatter) 

    // specify the width each bar should have 
    let barWidth = 0.8 
    chartData.barWidth = barWidth 

    let formato:BarChartFormatter = BarChartFormatter() 
    formato.strings = xAxisLabel 
    let xaxis:XAxis = XAxis() 

    _ = formato.stringForValue(Double(1), axis: xaxis) 
    xaxis.valueFormatter = formato 
    chart.xAxis.valueFormatter = xaxis.valueFormatter 

    let xAxis = chart.xAxis 
    xAxis.labelPosition = XAxis.LabelPosition.bottom // label at bottom 
    xAxis.drawGridLinesEnabled = false 
    xAxis.granularity = 1.0 
    xAxis.labelCount = maxNumberEntries 
    xAxis.labelRotationAngle = 0 

    // Don't show other axis 
    let leftAxis = chart.leftAxis 
    leftAxis.enabled = false 
    let rightAxis = chart.rightAxis 
    rightAxis.enabled = false 

} 

任意のアイデアを使用しているコードですか?

スクリーンショット:

cut-off xAxis labels

after double tap the labels are not cut-off anymore

+0

BarChart設定用のコードはありますか? – CodeChanger

+0

@CodeChanger - 最初の質問で使用しているコード全体を追加しました – Tobi

+0

解決策にはならないかもしれませんが、私の気になる点は、 'xAxis .labelFont = font'。 –

答えて

0

私は、すべてのデータが渡された後、すべての棒グラフのため

chart.fitScreen() 

を呼び出すことによって、この問題を解決しました。

関連する問題