簡體   English   中英

Xamarin中的Shinobi圖表,帶有2個y軸的多個系列

[英]Shinobi Charts in Xamarin multiple, multiple series with 2 y-axis

我有一個問題,即將具有2個列系列和1個y軸的圖表轉換為具有相同列系列和2個y軸的圖表。

在頂部您會看到帶有1個y軸的圖表,看起來不錯:

問題例子

在底部,您會看到添加了另一個y軸后會發生什么,這些列是重疊的,而不是在x軸刻度線上並排放置。 是否有可能重寫決定列是否應該彼此相鄰而不是重疊的方法? 如果是這樣,我必須重寫什么?

您的幫助將不勝感激。

進一步的情況:

這樣做的目的是要看到可能具有不同規模的多個趨勢,即彼此相鄰的推銷員的業績或不同規模市場中的銷售營業額,以查看這兩個趨勢的相對增長,即使它們的規模可能相差很大。 例如,一個推銷員(1)在2017年售出另一個推銷員(2)的1/10,那么對於下一年,我們可以看到推銷員1將其銷售額增加了15%,而推銷員2僅將其銷售額增加了2%,這樣一來,即使一個客戶可能積累了足夠多的客戶來銷售10倍的商品,我們仍然可以看到哪個銷售人員的增長最快,並且我們可以獎勵一位將其客戶的價值提高了15%的銷售人員。

該實現使用從PC軟件發送的數據,該數據顯示在(當前僅)IOS應用程序和其他Web解決方案中。 數據可以變化,通常包括帶有數字的y軸和帶有銷售地區或一年中的月份等類別的x軸。 每個數據組都是一個添加到圖表中的序列,我們為用戶提供了選擇每個序列第一個或第二個y軸的選擇。 這個列的問題是一個願望,但是當比較同一個統計量時,數據可以用一個列和一個線系列來顯示,設計者就像列一樣多了一些。

另一種解決方案是將單個列系列設置為,以便在它們重疊時仍能看到它們,但是我找不到這樣的變量,據我所知,所有列寬均由間距,列數控制,刻度線的數量和圖表的大小

在第一個圖像中,由於兩個系列都使用相同的軸,因此圖表會自動將兩個列系列分組在一起,因此它們並排顯示。 在這種情況下,可以在系列中使用groupIndex屬性來覆蓋分組,以使它們重疊。

但是,如果系列位於相同的軸上,則只能將它們分組在一起,因此,在第二張圖像中,由於該系列使用不同的y軸,因此無法將它們分組(並且groupIndex屬性不會影響此行為)。

要解決此問題,我建議為X軸使用SChartDateTimeAxis ,並調整系列的x值和系列style上的barColumnSpacing屬性,以將列放置在所需的位置。

艾莉森

編輯:回答關於不知道類別的評論:

由於不可能對具有不同軸的系列進行分組,因此獲得所需圖表的唯一方法是操縱數據。

在這種情況下,我建議使用SChartNumberAxis並將x值設置為數字,這些數字將按需要SChartNumberAxis列,例如:

let salesData: [[Double : Double]] = [
    [0.5 : 5.65, 3.5 : 12.6, 6.5 : 8.4],
    [1.5 : 4.35, 4.5 : 13.2, 7.5 : 4.6, 10.5 : 0.6]
]

然后你可以使用sChart:alterTickMark:beforeAddingToAxis:方法SChartDelegate改變刻度標簽文本,例如,如果刻度線的值是1,你可以設置標簽的文本為“2017年”(不要忘了調整標簽,以適應); 如果是4,則可以將其設置為“ 2018”; 如果您不想顯示該數字,可以將其設置為空。

然后,您可能希望使用系列style上的barColumnSpacing屬性來固定列的寬度。

我意識到這是一個令人費解的解決方案,所以我想知道您是否可以告訴我們更多有關您的用例的信息? 這不是我們以前遇到的東西。 通常會使用多個y軸來顯示大小(例如溫度和降雨量)不具有可比性的數據,因此以這種方式使用兩個列序列似乎很不尋常。

暫無
暫無

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

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