如何在swift(IOS图表)中使用daniel gindi/图表库在饼图中显示百分比符号
我使用的是图表框架(Daniel gindi)。它工作得很好,但是 如何在图表上显示%(符号)如何在swift(IOS图表)中使用daniel gindi/图表库在饼图中显示百分比符号,ios,swift,pie-chart,Ios,Swift,Pie Chart,我使用的是图表框架(Daniel gindi)。它工作得很好,但是 如何在图表上显示%(符号) 我还尝试使用NSNumberFormatter()方法在percantage中转换数据值,但不获取%sign。 我在这里上传代码 @IBOutlet var pieChart: PieChartView! override func viewDidLoad() { super.viewDidLoad() var data = [25.0,
我还尝试使用NSNumberFormatter()方法在percantage中转换数据值,但不获取%sign。
我在这里上传代码
@IBOutlet var pieChart: PieChartView!
override func viewDidLoad() {
super.viewDidLoad()
var data = [25.0,37.5,12.5,12.5,12.5] // pie chart data
var status = ["A","B","C","D","E"] // status
setChart(status, values: data)
self.pieChart.drawSliceTextEnabled = false
}
func setChart(dataPoints: [String], values: [Double]) {
pieChart.noDataText = "you need to provide data for chart"
pieChart.noDataTextDescription = ""
self.pieChart.descriptionText = ""
var dataEntries: [ChartDataEntry] = []
//pieChart.centerText = " "
for i in 0..<dataPoints.count {
let dataEntry = ChartDataEntry(value: values[i], xIndex: i)
dataEntries.append(dataEntry)
}
let pieChartDataSet = PieChartDataSet(yVals: dataEntries, label: "")
var colors: [UIColor] = []
for _ in 0..<dataPoints.count {
let red = Double(arc4random_uniform(256))
let green = Double(arc4random_uniform(256))
let blue = Double(arc4random_uniform(256))
let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1)
colors.append(color)
pieChartDataSet.colors = colors
}
let pieChartData = PieChartData(xVals: dataPoints, dataSet: pieChartDataSet)
pieChart.data = pieChartData
pieChart.animate(yAxisDuration: 2.0, easingOption: .EaseInOutBack)
}
@ibchart:PieChartView!
重写func viewDidLoad(){
super.viewDidLoad()
var数据=[25.0,37.5,12.5,12.5,12.5]//饼图数据
变量状态=[“A”、“B”、“C”、“D”、“E”]//状态
设置图表(状态、值:数据)
self.pieChart.drawSliceTextEnabled=false
}
func集合图表(数据点:[字符串],值:[双精度]){
pieChart.nodata=“您需要为图表提供数据”
pieChart.noDataTextDescription=“”
self.pieChart.descriptionontext=“”
变量数据项:[ChartDataEntry]=[]
//pieChart.centerText=“”
对于0中的i.在图表上显示%符号。
只需使用下面的代码
let formatter = NSNumberFormatter()
formatter.numberStyle = .PercentStyle
formatter.maximumFractionDigits = 1
formatter.multiplier = 1.0
pieChartData.dataSet?.valueFormatter = formatter
在切片上显示值后,您将获得%符号
来源
有一个愉快的编码。只需将这些行添加到图表中的百分比格式中即可
let formatter = NSNumberFormatter()
formatter.numberStyle = .PercentStyle
formatter.maximumFractionDigits = 1
formatter.multiplier = 1.0
pieChartData.setValueFormatter(formatter)
// text color of percentage label
slcCell.pieChartView.data?.setValueTextColor(UIColor.clearColor())
在最新版本的Swift3
上,您可以对饼图执行%
格式设置,如下所示:
let formatter = NumberFormatter()
formatter.numberStyle = .percent
formatter.maximumFractionDigits = 1
formatter.multiplier = 1.0
pieChartData.setValueFormatter(DefaultValueFormatter(formatter:formatter))
我想,PercentFormatter
、YAxisValueFormatter
或XaxiValueFormatter
可能是一个提示…您的问题解决了吗?然后关闭此问题。方法使用pieChartDataSet.valueFormatter=formatter而不是pieChartData.dataSet?.valueFormatter=formatter而不是get%signI具有类似于[6,5,3,12]的值,如果我将上述代码与multiplier=10
一起使用,它将显示为60%、50%、30%、120%,与multiplier=1一起使用,百分比分别为6%、5%、3%、12%。但是,我需要根据提供的值计算百分比到100。因此,我需要自己给出百分比值。你能帮我吗
let formatter = NumberFormatter()
formatter.numberStyle = .percent
formatter.maximumFractionDigits = 1
formatter.multiplier = 1.0
chart.data?.setValueFormatter(formatter as? IValueFormatter)