charts - ios-charts如何调整饼图高度

标签 charts swift4 ios-charts

我正在尝试将饼图正确地拟合到比图表高得多的 View 中。问题是我想在图表底部包含一个垂直的图例列表,这使得实际图表的高度动态变化。如果数据集中有太多条目,则图表底部的更多图例行不会显示。

是否有一种实用的方法来获取图表的“实际”或“渲染”高度,以便我可以将ieChart.frame.height设置为该值?或者,如何调整图表的高度,使其包含包括图例在内的所有内容?

enter image description here

@IBOutlet weak var pieChart: PieChartView!

var aDataEntry = PieChartDataEntry(value:30)
var bDataEntry = PieChartDataEntry(value:25)

var dataEntries = [PieChartDataEntry]()



override func viewDidLoad() {
    super.viewDidLoad()

    pieChart.chartDescription?.text = "A test"
    aDataEntry.label = "A"
    bDataEntry.label = "B"

    dataEntries = [aDataEntry, bDataEntry]

    updateChartData()

    // Do any additional setup after loading the view.
}

func updateChartData() {
    let chartDataSet = PieChartDataSet(values: dataEntries, label:nil)
    let chartData = PieChartData(dataSet: chartDataSet)
    var colours:[UIColor] = []
    for i in 1..<10 {
        colours.append(UIColor(named: "Colour" + String(i))!)
    }
    chartDataSet.colors = colours 
    pieChart.data = chartData
    pieChart.usePercentValuesEnabled = true
    pieChart.legend.orientation = .vertical
    pieChart.notifyDataSetChanged()
    print(pieChart.frame.height)
}

最佳答案

添加/设置图例后,您只需调用pieChartView.notifyDataSetChanged(),否则,您的图例将消失在 View 中。 这是示例:

pieChartView.legend.verticalAlignment = .bottom
pieChartView.legend.horizontalAlignment = .center
pieChartView.legend.orientation    = .vertical
pieChartView.notifyDataSetChanged()

编辑 1:要快速解决问题,请在调用 PieChartDataSet 时使用空字符串而不是 nil

let chartDataSet = PieChartDataSet(values: dataEntries, label:"")

关于charts - ios-charts如何调整饼图高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53035947/

相关文章:

javascript - 在 Web 应用程序上使用 Adob​​e Flash 图表库是个好主意吗?

javascript - 使用 d3.js 制作饼图?

ios - 使用建议栏快速获取键盘尺寸

swift - 来自字符串插值的警告

swift - iOS 图表中雷达图的问题设置数据

css - React Nivo 虚线

javascript - 如何在 C3 图表中使用稀疏数组?

ios - 如何将 CodingKeys 用于符合 Codable 协议(protocol)的枚举?

iOS-图表 : Increasing bar width in grouped sets of BarChartView

ios Charts 3 - 为每个数据点绘制 X 轴标签