ios-charts / mpandroidcharts 堆积条形标签总计而不是每个条目的值
Posted
技术标签:
【中文标题】ios-charts / mpandroidcharts 堆积条形标签总计而不是每个条目的值【英文标题】:ios-charts / mpandroidcharts stacked bar label total instead of values of each entry 【发布时间】:2016-02-14 23:32:41 【问题描述】:我正在使用 ios-charts 并成功实现了堆叠条形图。 但是,我想在每个堆叠条的顶部显示仅堆栈的总数,而不是堆叠条的每个条目的值。 目前,我所能做的就是隐藏将 chartDataSet.drawValuesEnabled 设置为 false 的各个值。
这是可行的吗?
谢谢!
【问题讨论】:
【参考方案1】:不确定是否有更简单的方法,但您可以使用MarkerView
来完成此操作。 MarkerView
将显示突出显示的条目,因此在附加它后,您需要通过突出显示方法之一突出显示图表中的所有条目:
highlightValue(int xIndex, int dataSetIndex)
突出显示给定 DataSet 中给定 x-index 处的值。
highlightValues(Highlight[] highs)
突出显示给定数据集中给定索引处的值。
【讨论】:
谢谢!我真的不知道如何在 ios-charts 中使用 MarkerView,因为我发现的唯一解释是 mpandroidcharts,我不明白如何将它应用于 ios 版本。有什么例子吗?或者你能帮帮我吗?【参考方案2】:目前不支持这个。使用 MarkerView 或自己自定义
【讨论】:
我真的不明白如何在 ios-charts 中使用 MarkerView,因为我发现的唯一解释是 mpandroidcharts,我不明白如何将其应用于 ios 版本。有什么例子吗,或者你能帮帮我吗? 谢谢!我还有一个小问题,如果通过任何改变你知道如果可能的话如何解决它。要查看标记我必须突出显示数据,您知道是否有任何方法不更改突出显示数据的颜色? @Lyra 你需要看看代码。我不记得了。但是将高亮颜色设置为与正常颜色相同可能是一种解决方案 还是谢谢你,终于找到合适的属性改了,成功了,用chartDataSet.highlightColor = UIColor.clearColor()
谢谢你的快速解答!【参考方案3】:
我可以通过将IValueFormatter
分配给BarChartData
来做到这一点。
这是我对IValueFormatter
的实现
class StackedBarChartValueFormatter:NSObject, IValueFormatter
private let formatter = MKNumberFormatter()
func stringForValue(_ value: Double, entry: ChartDataEntry, dataSetIndex: Int, viewPortHandler: ViewPortHandler?) -> String
guard let barchartDataEntry = entry as? BarChartDataEntry else
return formatter.string(from: NSNumber(value: value)) ?? ""
var nonZeroYValues : [Double] = []
barchartDataEntry.yValues?.forEach
yValue in
if yValue != 0.0
nonZeroYValues.append(yValue)
if nonZeroYValues.last == value
return formatter.string(from: NSNumber(value: entry.y)) ?? ""
else
return ""
然后将此格式化程序的实例分配给BarChartData
的值格式化程序,如下所示。
let data = BarChartData(dataSet: chartDataSet)
data.setValueFormatter(StackedBarChartValueFormatter())
请忽略MKNumberFormatter
。它只是我创建的一个 NumberFormatter。关键是将ChartDataEntry
转换为BarChartDataEntry
,然后当它是yValues
的barchartDataEntry
的最后一项时返回entry.y
(这是所有Y 值的总和),否则返回一个空字符串。
【讨论】:
以上是关于ios-charts / mpandroidcharts 堆积条形标签总计而不是每个条目的值的主要内容,如果未能解决你的问题,请参考以下文章