簡體   English   中英

使用ios-charts庫將條形圖中的列分組為可變的數據條目數

[英]Grouped columns in barchart with variable count of data entries using ios-charts library

我正在嘗試構建條形圖,對於x值使用可變數量的y值(例如,對於x = 1,我想要3個數據條目,對於x = 2,我想要3個數據條目,等等)。

使用ios圖表,問題在於圖表出於某種原因不正確地放置了條形圖。 我的圖形使用以下數據源:

    BarChartDataEntry *entry = [[BarChartDataEntry alloc] initWithValues:@[@1] xIndex:0];
    BarChartDataEntry *entry2 = [[BarChartDataEntry alloc] initWithValues:@[@4] xIndex:0];
    BarChartDataSet *set = [[BarChartDataSet alloc] initWithYVals:@[entry,entry2] label:@"test1"];

    BarChartDataEntry *entry3 = [[BarChartDataEntry alloc] initWithValues:@[@6] xIndex:1];
    BarChartDataEntry *entry4 = [[BarChartDataEntry alloc] initWithValues:@[@7] xIndex:1];
    BarChartDataSet *set2 = [[BarChartDataSet alloc] initWithYVals:@[entry3,entry4] label:@"test2"];

    BarChartDataEntry *entry5 = [[BarChartDataEntry alloc] initWithValues:@[@3] xIndex:2];
    BarChartDataSet *set3 = [[BarChartDataSet alloc] initWithYVals:@[entry5] label:@"test3"];

    NSArray *tstArr = @[set, set2, set3];

   //x-values
   <__NSArrayM 0x7a897960>(
   02.júla.15,
   23.júla.15,
   24.júla.15
   )

    BarChartData *data = [[BarChartData alloc] initWithXVals:xVals dataSets:tstArr];

產生以下Horizo​​ntalBarChart:

圖形

查看文檔,我什至不確定這是否可以與ios-charts一起使用。 也許自動布局與此有關。 如果有使用該庫的經驗的人可以做出貢獻,我將很高興。 另外,我可能必須使用Core plot。

編輯:我注意到我的邏輯是錯誤的,並且我創建了堆疊的酒吧而不是多個。 我將代碼更改為

    BarChartDataEntry *entry = [[BarChartDataEntry alloc] initWithValues:@[@1] xIndex:0];
    BarChartDataEntry *entry2 = [[BarChartDataEntry alloc] initWithValues:@[@4] xIndex:0];
    BarChartDataSet *set = [[BarChartDataSet alloc] initWithYVals:@[entry] label:@"test1"];
    BarChartDataSet *set2 = [[BarChartDataSet alloc] initWithYVals:@[entry2] label:@"test2"];

    BarChartDataEntry *entry3 = [[BarChartDataEntry alloc] initWithValues:@[@6] xIndex:1];
    BarChartDataEntry *entry4 = [[BarChartDataEntry alloc] initWithValues:@[@7] xIndex:1];
    BarChartDataSet *set3 = [[BarChartDataSet alloc] initWithYVals:@[entry3] label:@"test3"];
    BarChartDataSet *set4 = [[BarChartDataSet alloc] initWithYVals:@[entry4] label:@"test4"];

所以我有多個數據集用於單個x點。 這樣做效果更好,但是圖表仍然無法理解我的數據源,並且將所有內容放入單個x點(請注意,黑色選中的列)

圖表2

這是一個錯誤,我想您已經在github上打開了這個問題,對吧? 無論如何,您應該能夠繼續進行修復: https : //github.com/danielgindi/ios-charts/pull/248

如果一組中有兩個條,則應該只有兩個dataSet,而不是4,每個dataSet具有兩個dataEntries。 您所使用的有4個數據集,這會導致每個x軸區域剩余更多空間,這就是為什么它沒有居中的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM