आप/अपने ग्राफ़ के में% जोड़ने के लिए छिपाने के साथ ही ग्राफ से 0.0 मूल्यों को दूर करना चाहते हैं:
# के लिए कोड की लाइनों के नीचे इस्तेमाल किया स्विफ्ट 3: -
func updateChartData() {
let chart = PieChartView(frame: mViewOutlet.frame)
// let chart = PieChartView(frame: CGRect(x: 122, y: 235 , width: self.mViewOutlet.frame.size.width, height: self.mViewOutlet.frame.size.height))
// 2. generate chart data entries
let track = ["Present","Leave", "EG/LC", "Halfday", "Absent", "Weeklyoff", "Holidays"]
// let money = [65, 13, 10, 2]
let money = mDaysArray
var entries = [PieChartDataEntry]()
for (index, value) in money.enumerated() {
print("index: \(index) \n value: \(value)")
let entry = PieChartDataEntry()
if value != 0 {
entry.y = Double(value)
}else{
}
entries.append(entry)
// entry.label = track[index] // if we want to remove name label
}
// 3. chart setup
let set = PieChartDataSet(values: entries, label: "Pie Chart")
// this is custom extension method. Download the code for more details.
//4. set chart color
let presentColor = UIColor(red: 80.0/255.0, green: 180.0/255.0, blue: 50.0/255.0, alpha: 1.0)
// let lateColor = UIColor(red: 241.0/255.0, green: 194.0/255.0, blue: 114.0/255.0, alpha: 1.0)
let leaveColor = UIColor(red: 203.0/255.0, green: 68.0/255.0, blue: 242.0/255.0, alpha: 1.0)
let egColor = UIColor(red: 95.0/255.0, green: 180.0/255.0, blue: 239.0/255.0, alpha: 1.0)
let halfdayColor = UIColor(red: 82.0/255.0, green: 64.0/255.0, blue: 152.0/255.0, alpha: 1.0)
let absentColor = UIColor(red: 242.0/255.0, green: 58.0/255.0, blue: 02.0/255.0, alpha: 1.0)
let weekOffColor = UIColor(red: 186.0/255.0, green: 221.0/255.0, blue: 79.0/255.0, alpha: 1.0)
let holidayColor = UIColor(red: 35.0/255.0, green: 215.0/255.0, blue: 179.0/255.0, alpha: 1.0)
let colors: [UIColor] = [presentColor,leaveColor,egColor,halfdayColor,absentColor,weekOffColor,holidayColor]
set.colors = colors
let data = PieChartData(dataSet: set)
let formatter = NumberFormatter()
formatter.numberStyle = .percent
formatter.maximumFractionDigits = 2
formatter.multiplier = 1.0
formatter.percentSymbol = "%"
formatter.zeroSymbol = ""
data.setValueFormatter(DefaultValueFormatter(formatter: formatter))
chart.data = data
chart.noDataText = "No data available"
chart.usePercentValuesEnabled = true
// user interaction
chart.isUserInteractionEnabled = false
let d = Description()
// d.text = "iOSCharts.io"
chart.chartDescription = d
// chart.tintColor = UIColor.black
// chart.centerText = "Pie Chart"
chart.holeRadiusPercent = 0.2
chart.chartDescription?.enabled = false
chart.legend.enabled = false
chart.data?.notifyDataChanged()
chart.notifyDataSetChanged()
chart.setNeedsDisplay()
chart.animate(xAxisDuration: 1.3, yAxisDuration: 1.3)
chart.transparentCircleColor = UIColor.clear
// self.view.addSubview(chart)
self.mPieChartMainView.addSubview(chart)
}
टी जवाब के लिए धन्यवाद! मैं यह जोड़ना भूल गया कि मैं 'स्विफ्ट 3.0' का उपयोग कर रहा था और मुझे अपना कोड थोड़ा बदलना पड़ा ('NSNumberFormatter' से 'NumberFormatter' में बदलें) लेकिन यह मुझे' dataSet.valueFormatter = integerFormatter' पर एक त्रुटि देता है जो कहता है: 'IValueFormatter' टाइप करने के लिए 'संख्याफॉर्मेटर' प्रकार का मान असाइन नहीं किया जा सकता है ' –
ठीक है, यह स्विफ्ट 3 रूपांतरण के साथ एक मुद्दा है। 'dataSet.valueFormatter = चार्टडिफॉल्ट वैल्यूफॉर्मेटर (फॉर्मेटर: पूर्णांकफॉर्मेटर) 'का उपयोग करें। मैं तुरंत जवाब अद्यतन करता हूं – Dean
वाह यह एक आकर्षण की तरह काम करता है! धन्यवाद! और मैं कैसे बना सकता हूं कि शेष तत्वों में दो दशमलव होंगे? मुझे इसकी आवश्यकता है कि एक ही समय में 0 मान छुपाए गए हैं, शेष मान फ़्लोट होंगे, लेकिन शेष मान स्वचालित रूप से पूर्णांक के रूप में दिखाए जाते हैं। मुझे पता है कि मैं इसे एंड्रॉइड पर निम्नानुसार कर सकता हूं: 'दशमलव फ़ार्मेट ("###, ###, ###, ## 0.0")' लेकिन यह स्विफ्ट पर मौजूद नहीं है। मैं यह भी देख सकता हूं कि 'noZeroFormatter.generatesDecimalNumbers' मौजूद है जो मैंने अनुमान लगाया है कि यह चार्ट पर दशमलव संख्याओं को अनुमति देना है। मैंने इसे 'सत्य' पर सेट कर दिया है लेकिन ऐसा लगता है कि यह काम नहीं करता है। –