簡體   English   中英

如何在danielgindi iOS圖表中創建多個y軸折線圖?

[英]How to create multiple y-axis Line chart in danielgindi iOS chart?

我想創建一個具有多個y軸的圖形。 danielgindi圖表中可以進行雙軸 y軸圖,但我想要更多的兩個y軸圖。 如下圖所示:

在此輸入圖像描述

let set1 = LineChartDataSet(values: yVals1, label: "DataSet 1")
set1.axisDependency = .left
set1.setColor(UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 1))
set1.setCircleColor(.white)
set1.lineWidth = 2
set1.circleRadius = 3
set1.fillAlpha = 65/255
set1.fillColor = UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 1)
set1.highlightColor = UIColor(red: 244/255, green: 117/255, blue: 117/255, alpha: 1)
set1.drawCircleHoleEnabled = false

let set2 = LineChartDataSet(values: yVals2, label: "DataSet 2")
set2.axisDependency = .right
set2.setColor(.red)
set2.setCircleColor(.white)
set2.lineWidth = 2
set2.circleRadius = 3
set2.fillAlpha = 65/255
set2.fillColor = .red
set2.highlightColor = UIColor(red: 244/255, green: 117/255, blue: 117/255, alpha: 1)
set2.drawCircleHoleEnabled = false

這是danielgindi圖表代碼,但在此代碼中顯示雙y軸。

我能怎么做? 提前致謝。

我只是快速查看代碼,簡短的回答是只支持兩個軸,我認為你可以猜測這個因為軸依賴是一個有兩個選項的枚舉。

如果您仍想使用三軸圖,則可以使用自定義類和/或數據准備來解決某些限制。

您可以使用自定義格式器在每個軸點上打印兩個標簽,從而使其中一個圖形上的標簽倍增。 它的外觀有多好取決於您的軸。 進入完全獨立的自動測距將是一個很大的問題。

您不能對不同的數據集使用不同的比例,因為轉換是由DataProvider提供的,基於從屬軸而不是數據集。 相對於第三軸繪制數據集更復雜,但並非如此。 快速查看渲染器代碼顯示渲染代碼要求變換的數據集將數據值轉換為基於從屬軸的像素值。 通過覆蓋

func getTransformer(forAxis axis:YAxis.AxisDependency) - > Transformer

在自定義數據集中,您可以讓渲染器使用不同的y-scale / transform渲染數據值。

或者,您可以將兩個數據集的源數據轉換為0-1(例如),然后轉換回自定義格式化程序中的軸標記。 這會破壞數據值標簽,但我不會在您的示例中看到您使用它們。

希望這可以幫助

暫無
暫無

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

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