请参阅底部更新(4/30/2015)
我正在使用ios-charts在Swift for iOS中实现一个饼图,并选择自定义图例.值得注意的是,图表显示在UICollectionView的单元格中.问题是,在第一次显示时,不显示自定义图例内容.相反,我获得了从数据生成的图例内容.
如果我在屏幕外滚动视图,然后将其滚动回屏幕,则会显示正确的自定义图例.所以,我猜我需要在设置自定义图例后强制重绘/重新布局/重新设置.我还没弄明白怎么做. 有没有人有想法?我完全错过了什么吗?谢谢!
初始显示图表 - 数据生成(错误)图例

滚动并返回到屏幕后的图表 - (正确的图例)

这是我绘制此图表的代码:
func initChart(pieChart: PieChartView) {
numFormatter.maximumFractionDigits = 0
pieChart.backgroundColor = UIColor.whiteColor()
pieChart.usePercentValuesEnabled = false
pieChart.drawHoleEnabled = true
pieChart.holeTransparent = true
pieChart.descriptionText = ""
pieChart.centerText = "30%\nComplete"
pieChart.data = getMyData()
// Setting custom legend info, called AFTER setting data
pieChart.legend.position = ChartLegend.ChartLegendPosition.LeftOfChartCenter
pieChart.legend.colors = [clrGreenDk, clrGold, clrBlue]
pieChart.legend.labels = ["Complete","Enrolled","Future"]
pieChart.legend.enabled = true
}
func getMyData() -> ChartData {
var xVals = ["Q201","R202","S203","T204","U205", "V206"]
var courses: [ChartDataEntry] = …Run Code Online (Sandbox Code Playgroud) 我想使用不渲染任何x轴或网格线的ios图表渲染(堆叠)水平条形图.我已经禁用了我能找到的每个设置,但是底部的x轴仍然呈现.
func setUpBarChart() {
// General bar chart settings
barChart.pinchZoomEnabled = false
barChart.drawGridBackgroundEnabled = false
barChart.drawBarShadowEnabled = false
barChart.drawValueAboveBarEnabled = false
barChart.drawBordersEnabled = false
barChart.drawMarkers = false
barChart.legend.enabled = false
barChart.descriptionText = ""
barChart.drawBordersEnabled = false
// Left-axis settings
barChart.leftAxis.drawLabelsEnabled = false
barChart.leftAxis.drawTopYLabelEntryEnabled = false
barChart.leftAxis.drawAxisLineEnabled = false
// x-axis settings
barChart.xAxis.drawAxisLineEnabled = false
barChart.xAxis.drawGridLinesEnabled = false
barChart.xAxis.drawLabelsEnabled = false
barChart.xAxis.enabled = false
// add some dummy data
let entry = BarChartDataEntry(values: [10,2,5], xIndex: 0)
let set = BarChartDataSet(yVals: [entry], …Run Code Online (Sandbox Code Playgroud) 如何更改BarChart中特定条形图上方文本的属性(例如字体大小,文本颜色等)?
在这个例子中,我想要红色的" - $ 5,000.00"并增加条形上方每个文本的字体大小.
这是一些代码:
@IBOutlet weak var barChartView: BarChartView!
// init barChartView --------------------------------------
barChartView.descriptionText = ""
barChartView.legend.enabled = false
// grid lines
barChartView.xAxis.drawAxisLineEnabled = false
barChartView.xAxis.drawGridLinesEnabled = false
barChartView.leftAxis.drawAxisLineEnabled = false
barChartView.leftAxis.drawGridLinesEnabled = false
barChartView.rightAxis.drawAxisLineEnabled = false
barChartView.rightAxis.drawGridLinesEnabled = false
// X-axis line
barChartView.xAxis.drawAxisLineEnabled = true
barChartView.xAxis.axisLineColor = axisGridsAndLabelsColor
// X-axis labels
barChartView.xAxis.labelTextColor = axisGridsAndLabelsColor
barChartView.xAxis.labelPosition = .Bottom
// Y-axis labels
accountsBarChartView.leftAxis.labelTextColor = axisGridsAndLabelsColor
accountsBarChartView.rightAxis.drawLabelsEnabled = false
//---------------------------------------------------------
// bar chart's data
var dataPoints = [String]() …Run Code Online (Sandbox Code Playgroud) 我想只在手指在图表上时突出显示数据点,只要它从我想要调用的屏幕上抬起,或者简单地取消选择突出显示.
func chartValueNothingSelected(chartView: ChartViewBase) {
print("Nothing Selected")
markerView.hidden = true
}
Run Code Online (Sandbox Code Playgroud)
我试图覆盖触摸结束,但没有让它工作.
我有一个使用Daniel Gindi iOS图表构建的条形图.它代表一段时间内的历史数据.我遇到的问题是数据是从左到右(新数据 - >旧数据)绘制的.我需要将它绘制为从右到左(旧数据 - >新数据).我知道我可以颠倒我输入数据的顺序BarChartData,但后来我的图表问题仍然是左对齐.它需要正确对齐.我在这里讨论了讨论反转x轴的问题以及如何解决它(目前不是框架的一个包含特性),但是我无法弄清楚实际需要做什么.以下是我需要的例子:
这就是我的图表目前的样子:
这就是我需要的样子:
我的问题
有没有办法颠倒x轴?
要么
有没有办法正确对齐图表?
以下是我的一些代码并尝试解决此问题:
class ViewController: UIViewController {
@IBOutlet weak var barChartView: BarChartView!
//...
func plotChart() {
// Create history data
//...
barChartView.data = chartData // 'chartData' is the BarChartData() containing all of the history information
// No efect
barChartView.legend.direction = .RightToLeft
// Chart breaks
barChartView.leftAxis.axisMinValue = 30
barChartView.leftAxis.axisMaxValue = 0
// Breaks the ability to zoom
barChartView.setVisibleXRangeMinimum(CGFloat(40))
barChartView.setVisibleXRangeMaximum(CGFloat(1))
}
}
Run Code Online (Sandbox Code Playgroud) 我知道MPAndroidChart可以处理图表上的事件.其文档都有详细记录.
然而,我无法找到有关相同事件的任何文档ios-chart.我知道它的创建者告诉我们应该遵循MPAndroidChart他的库的文档,但我无法在Swift 3.0上处理这些事件.
我也找不到任何处理ios-chart库的这些事件的例子.
那么,是否有可能处理ios-chart图书馆的点击事件?
编辑:根据@AdamM我的反馈,我将把数据设置到图表的功能.
func enterData(valuesChart: [BarChartDataEntry]){
let chartDataSet = BarChartDataSet(values: valuesChart, label: "Total Values")
let charData = BarChartData(dataSets: [chartDataSet])
barChartView?.data = charData
barChartView?.animate(xAxisDuration: 2.0, yAxisDuration: 2.0)
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我是编程和swift的新手,所以我有一个问题......如何在iOS图表中设置最大缩放?尝试:
func setBarChart(dataPoints: [String], humidity: [Double], andDays: Int, forTime: String)
{
let formato = BarChartFormatter()
let xaxis = XAxis()
var humidityEntry: [BarChartDataEntry] = []
for i in 0..<dataPoints.count
{
let dataEntry = BarChartDataEntry(x: Double(i), y: humidity[i])
humidityEntry.append(dataEntry)
formato.getNumberOfDays(Double(i), axis: xaxis, andDays: andDays)
}
xaxis.valueFormatter = formato
let barChartDataSet3 = BarChartDataSet(values: humidityEntry, label: "Humidity")
barChartDataSet3.setColor(UIColor.cyan)
barChartDataSet3.barBorderColor = UIColor.blue
barChartDataSet3.valueTextColor = UIColor.lightText
barChartView.leftAxis.labelTextColor = UIColor.white
barChartView.rightAxis.labelTextColor = UIColor.white
barChartView.leftAxis.labelFont = UIFont.systemFont(ofSize: 11)
barChartView.rightAxis.labelFont = UIFont.systemFont(ofSize: 11)
barChartView.scaleYEnabled = false
// barChartView.setVisibleXRange(minXRange: 0.1, …Run Code Online (Sandbox Code Playgroud) 我正在使用带有Swift 3的iOS图表.
我有100 x 100 PieChartView渲染饼图,但它没有填充视图(NSView确切地说是一个).灰色框是视图,饼图和边缘之间有很大的间隙.
我已确认视图为100 x 100:
print(graph.frame) //<-- (25.0, 65.0, 100.0, 100.0)
Run Code Online (Sandbox Code Playgroud)
所以我假设我需要在饼图中配置一些东西,以使其成为视图中的完整大小.这是我到目前为止所尝试的无济于事:
graph.holeRadiusPercent = 0.7
graph.transparentCircleRadiusPercent = 0
graph.legend.enabled = false
graph.chartDescription?.enabled = false
graph.minOffset = 0
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我只想在点击 iOS 图表时突出显示和显示价值。我启用了突出显示而不是值,因为我只在点击和突出显示时想要它们
lineChartDataSet.drawValuesEnabled = false
lineChartDataSet.highlightEnabled = true
Run Code Online (Sandbox Code Playgroud)
我需要这个功能吗?
func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight) {}
Run Code Online (Sandbox Code Playgroud) 我目前正在使用iOS Library Charts并且在为x Axis实现TimeLine 时遇到了一些问题。
图书馆链接:https : //github.com/danielgindi/Charts
我有一个对象列表作为图表的输入。
let objectList : [Object] = fillObjectList()
class Object {
var timeCreated : Date
var value : Double
}
Run Code Online (Sandbox Code Playgroud)
我已经实现了一个解决方案,我只是将
timeCreated.timeIntervalsince1970用作 x 轴的值。但这看起来不是那么好。
所以如果你们有使用iOS Charts Library的经验,希望你们能想出解决这个问题的办法。非常感谢您的帮助!