ios - 将星期几放在图形、图表上

标签 ios swift charts

我正在使用图表来显示条形图,但是我无法让 x 轴打印出星期几,而不是:0、1、2、3 等。

初始化图表:

var weekdays = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]

func initializeChart() {
    chartView.noDataText = "No Data"
    chartView.animate(xAxisDuration: 2.0, yAxisDuration: 2.0, easingOption: .easeInBounce)
    chartView.xAxis.labelPosition = .bottom
     chartView.chartDescription.text = "Revenue"

    //chartView.xAxis.setLabelsToSkip(0)

    chartView.legend.enabled = false
    chartView.scaleYEnabled = false
    chartView.scaleXEnabled = false
    chartView.pinchZoomEnabled = false
    chartView.doubleTapToZoomEnabled = false

    chartView.leftAxis.axisMinimum = 0.0
    chartView.leftAxis.axisMaximum = 100.00
    chartView.highlighter = nil
    chartView.rightAxis.enabled = false
    chartView.xAxis.drawGridLinesEnabled = false
}

这是我正在填充的数据:

if json != nil {
    let week = json["week"]
    let month = json["month"]
    print("Check", week, month)

    var dataEntries: [BarChartDataEntry] = []

    for i in 0..<self.weekdays.count {
        let day = self.weekdays[i]
        let dataEntry = BarChartDataEntry(x: Double(i), yValues: [(week[day].double)!])
        dataEntries.append(dataEntry)
        print("data entry", dataEntry)
    }

    let chartDataSet = BarChartDataSet(values: dataEntries, label: "Weekdays")
    chartDataSet.colors = ChartColorTemplates.material()
    let chartData = BarChartData(dataSet: chartDataSet)

    self.chartView.data = chartData
}

我只想在 x 轴上打印星期几。你能帮忙吗?

最佳答案

您需要为 X 轴设置 valueFormatter,请尝试此代码。希望对您有所帮助!

if json != nil {
let week = json["week"]
let month = json["month"]
print("Check", week, month)

var dataEntries: [BarChartDataEntry] = []

for i in 0..<self.weekdays.count {
    let day = self.weekdays[i]
    let dataEntry = BarChartDataEntry(x: Double(i), yValues: 
[(week[day].double)!] , data: weekdays as AnyObject?))
    dataEntries.append(dataEntry)
    print("data entry", dataEntry)
}

let chartDataSet = BarChartDataSet(values: dataEntries, label: "Weekdays")
    chartDataSet.colors = ChartColorTemplates.material()
    let chartData = BarChartData(dataSet: chartDataSet)
    let xAxisValue = chartView.xAxis
    xAxisValue.valueFormatter = axisFormatDelegate
    self.chartView.data = chartData
}

extension DemoBaseViewController: IAxisValueFormatter {

func stringForValue(_ value: Double, axis: AxisBase?) -> String {
return weekdays[Int(value)]
}
}

关于ios - 将星期几放在图形、图表上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51914025/

相关文章:

javascript - 如何根据条件更改折线图中数据点的颜色?

ios - WatchConnectivity 文件传输不起作用

ios - 找不到“Firebase/Firebase.h”文件

objective-c - Xcode Interface Builder 不显示 App Delegate 对象

iphone - IOS 中的单元测试

ios - 使用 SwiftUI 获取 AVPlayerItem 轨道标题

c# - 如何更改图表列 C# 中的图例文本?

ios - MVVM 通用网络架构

swift - 无法使用 swift 3 从其数据源获取单元格

charts - 如何通过弹出另存为窗口将 kendo ui dataviz 图表导出为 (.png) 或 (.jpg) 图像格式?