swift - Swift 图表不显示值标签
问题描述
我正在使用 Daniel Gindi 的Swift Charts库。我试图在散点图中显示每个点的单独值。
我已将集合的 drawValuesEnabled 设置为 true,并创建了一个自定义 IValueFormatter。然而,格式化程序类中的方法似乎从未被调用过,也没有显示任何标签。还有什么可能是造成这种情况的原因?
编辑:创建散点图的代码如下:
let graphView: ScatterChartView = {
let scatter = ScatterChartView()
scatter.translatesAutoresizingMaskIntoConstraints = false
scatter.chartDescription?.enabled = true
scatter.dragEnabled = true
scatter.setScaleEnabled(true)
//scatter.maxVisibleCount = 200
scatter.pinchZoomEnabled = false
scatter.backgroundColor = .clear
scatter.leftAxis.enabled = false
scatter.rightAxis.enabled = true
scatter.rightAxis.drawGridLinesEnabled = false
scatter.rightAxis.valueFormatter = TimeValueFormatter()
scatter.xAxis.labelPosition = XAxis.LabelPosition.bottom
scatter.xAxis.axisMaxLabels = 8
scatter.xAxis.granularity = 1
scatter.xAxis.drawLabelsEnabled = true
scatter.xAxis.drawGridLinesEnabled = false
//date formatter should be provided by controller
scatter.legend.enabled = false
return scatter
}()
数据集(x轴为整数,y轴为时间):
self.dataSet = {
let set = ScatterChartDataSet(values: entries)
set.setScatterShape(.circle)
set.setColor(UIColor.PRColors.prGreen)
set.valueFormatter = TimeValueFormatter()
return set
}()
预期结果是带有每个点显示的 y 值的标签,如示例项目中所示。
解决方案
弄清楚了。事实证明,当您使用 ChartDataEntry 对象数组创建数据集时,该数组必须是不可变的(let
而不是var
),否则将不会显示标签。
推荐阅读
- excel - Outlook 字段和等效属性
- java - java - 如何在Java Swing中拥有不会不断变化/闪烁颜色的简单动画形状?
- r - 使用 dplyr 将“开始停止数据”(又名转码)转换为长格式(又名时间码)
- javascript - 涉及大写字母时,JavaScript 不删除文本
- azure - 错误:400 客户端错误:对 url Azure Powershell 的错误请求
- java - 如何在数组中同时调用抽象方法和接口方法?
- oracle - 数据分组 10 秒。PLSQL
- python - 如何替换句子中除一个以外的所有字符
- reactjs - 在 createTheme() 中添加自定义主题变量
- selenium-webdriver - 如何在不需要任何接受或拒绝条件的 Web 应用程序中为“警报弹出”编写代码