如何移除PieChart图例中的'DataSet'文本?
解决PieChart图例自动显示'DataSet'文本的问题
这个问题我之前也碰到过,那个你没刻意添加的'DataSet'文本,其实是PieChartDataSet的默认label属性值!当你初始化PieChartDataSet但没有手动指定它的label时,Chart库会自动给它赋值为"DataSet",而图例组件会把这个值作为对应数据集的标识文本显示出来。
移除这个文本的两种方法
方法1:直接将DataSet的label设为空字符串
这是最直接的解决方案,在你创建PieChartDataSet的地方,添加一行代码把label设置为空即可:
fileprivate func setupPieChartData() { let dataSet = PieChartDataSet() // 添加这一行,把label设为空字符串,移除默认的"DataSet"文本 dataSet.label = "" dataSet.colors = ChartColorTemplates.material() dataSet.valueColors = [Settings.shared.currentTheme.textColor] // 后续的entry添加逻辑保持不变 for key in self.data.keys.sorted() { if let team = self.teamService.team(for: key), let reportCount = self.data[key]?.count { let entry = PieChartDataEntry(value: Double(reportCount), label: team.teamName) dataSet.append(entry) } } let data = PieChartData(dataSet: dataSet) let formatter = NumberFormatter() formatter.numberStyle = .decimal formatter.maximumFractionDigits = 0 data.setValueFormatter(DefaultValueFormatter(formatter: formatter)) self.pieChartData = data }
设置为空字符串后,图例就不会再显示这个多余的"DataSet"文本了。
方法2:隐藏整个图例(如果不需要图例的话)
如果你根本不需要显示图例,也可以直接关闭图例的显示:
在你的setupPieChart()方法中添加一行:
self.pieChartView.legend.enabled = false
额外说明
如果你之后想自定义图例的显示内容,也可以给dataSet.label设置成你需要的自定义文本,这样图例就会显示你指定的内容,而不是默认的"DataSet"。
内容的提问来源于stack exchange,提问作者Tycho Pandelaar
相关产品推荐
相关产品推荐

