2016-08-20 6 views
8

チャートライブラリに問題があります。私が直面している問題は、棒グラフが私のビューの境界内に「フィット」していないことです。次の図は、最初のバーと最後のバーの両方を半分にカットし、最も高いバーのラベルも部分的にカットしていることを示しています。iOSチャートスウィフトバーグラフが表示範囲を超えています

Bars and labels are cut along the graph borders

私はオンラインで検索すると、私は正確に同じ問題を記述しているようだ次のスレッドhttps://github.com/danielgindi/Charts/issues/353を得ました。

私は6つのインデックスでいくつかの乱数を持つ単純なデータセットを使用します。データは次のようにグラフに追加されます。

let values: [Int] = [5, 8, 1, 2, 1, 2] 
var dataEntries: [BarChartDataEntry] 

for i in 0..<values.count { 
    let dataEntry = BarChartDataEntry(x: Double(i), y: Double(values[i])) 
    dataEntries.append(dataEntry) 
} 

let chartDataSet = BarChartDataSet(values: dataEntries, label: "Count") 
let chartData = BarChartData(dataSet: chartDataSet) 
barChartView.data = chartData 

誰かが私を助けてくれることを願っています。前もって感謝します!

答えて

16

xAxisの最小値と最大値を手動で設定して、最初と最後のバーが半分にならないようにすることができます。

次のコード行を追加すると、正常に動作するはずです。

yourBarChartView.xAxis.axisMinimum = -0.5; 
yourBarChartView.xAxis.axisMaximum = Double(yourAxisDataList.count) - 0.5; 
+0

ありがとうございます、仕事は魅力が好きです!もっと多くの人々がこの問題を抱えていると思うので、私はこの答えを正しいものとしてマークします。 ashmi123はラベル問題の適切な答えを提供しましたが。 – Woodahack

+0

あなたは最新のライブラリバージョンを使用していますか?このバグはv2.2.5で修正されており、このコードを追加する必要はありません。私はまた、新しいバージョンで私のアプリの1つでこれをチェックして、期待どおりに動作しています。 –

+0

ブランチChart3.0-Swift2.3のバージョンでは、このハックは有効です。ありがとう! – Voldy

5

以下のように、あなたはトップと底面図にオフセットを追加することができます。X軸の最小値と最大値を計算することに関してのライブラリにバグがあり

barChartView.extraTopOffset = 40.0f; 
barChartView.extraBottomOffset = 10.0f; 
+0

はどうもありがとうございました、これはラベルの問題を修正したようです。残念ながら残っているハーフバーの問題は、extraLeftOffset/extraRightOffsetを設定することで修正されません。デモアプリケーションを実行すると、バーグラフが正しく表示されているようです。 – Woodahack

+0

あなたはそれが断ち切れた場所の正確な画像を表示できますか? – ashmi123

+0

私の前のポストのリンクはまだカットオフのために保持されています。バーを正確に半分にカットしているようです。 viewcontrollerのサイズを変更することは役に立たないようです。 http://i.stack.imgur.com/iW17f.png – Woodahack

0

それはHorizantal棒グラフ

barChartView.leftAxis.spaceBottom = 0.0 

または barChartView.rightAxisであれば、それは縦棒グラフ

barChartView.xAxis.spaceMin = 5.0f; 
barChartView.xAxis.spaceMax = 5.0f; 

ある場合。

0

バーグラフのx軸の値を-0.99〜-0.5の値で編集できます。

enter image description here

付::yourBarChart.xAxis.axisMinimum = -0.5

enter image description here

付:この例 チェックyourBarChart.xAxis.axisMinimum = -0.99

関連する問題