gpt4 book ai didi

ios - Core Plot Swift BarPlot tickLocation 始终为零

转载 作者:行者123 更新时间:2023-11-29 02:20:32 25 4
gpt4 key购买 nike

我正在尝试在 Swift 下使用 core-plot 制作条形图,我在 xAxis 上制作自定义标签时遇到问题,它们始终处于 tickLocation 零。

也许有人可以帮助我,这是我的代码。

import UIKit

class aaa: UIViewController, CPTPlotDataSource{

var items :[NSNumber] = [10,35,18, 20, 50, 5]


@IBOutlet var scrollView: UIScrollView!
@IBOutlet weak var lblTitle: UILabel!

@IBOutlet weak var lblChartName: UILabel!
@IBOutlet weak var vGraph: CPTGraphHostingView!

override func awakeFromNib() {
super.awakeFromNib()
}

override func viewDidLoad() {
super.viewDidLoad()

self.scrollView.contentSize = CGSizeMake(320, 568);

var id: Int=general.idListed
lblTitle.text=general.namListed

items = [10, 35, 18, 20, 50, 5]

var CPDBarWidth:CGFloat = 0.25
var CPDBarInitialX:CGFloat = 0.25


var graph = CPTXYGraph(frame: CGRectZero)
graph.plotAreaFrame.masksToBorder = false
graph.paddingBottom = 50.0
graph.paddingLeft = 50.0
graph.paddingTop = 50.0
graph.paddingRight = 50.0
graph.backgroundColor = UIColor.whiteColor().CGColor


var titleStyle = CPTMutableTextStyle()
titleStyle.color = CPTColor.blackColor()
titleStyle.fontName = "Helvetica-Bold"
titleStyle.fontSize = 16.0

var title : NSString = "January 19 - 24, 2015"
graph.title = title
graph.titleTextStyle = titleStyle
graph.titlePlotAreaFrameAnchor = CPTRectAnchorTop
graph.titleDisplacement = CGPointMake(0.0, 40.0)


var xMin : Float = 0
var xMax : Float = Float(items.count) + 1
var yMin : Float = 0
var yMax : Float = maxItemsValue(items) + 5

var plotSpace = graph.defaultPlotSpace as CPTXYPlotSpace
var xRange = plotSpace.yRange.mutableCopy() as CPTMutablePlotRange
var yRange = plotSpace.yRange.mutableCopy() as CPTMutablePlotRange

xRange.setLocationFloat(xMin)
xRange.setLengthFloat(xMax)

yRange.setLocationFloat(yMin)
yRange.setLengthFloat(yMax)

plotSpace.xRange = xRange
plotSpace.yRange = yRange

var aaplPlot = CPTBarPlot()
aaplPlot.barsAreHorizontal = false

var barLineStyle = CPTMutableLineStyle()


barLineStyle.lineColor = CPTColor.lightGrayColor()
barLineStyle.lineWidth = 1

aaplPlot.dataSource = self
aaplPlot.delegate = self
aaplPlot.barWidthScale = 1
aaplPlot.barOffsetScale = 1
aaplPlot.lineStyle = barLineStyle


graph.addPlot(aaplPlot)

var axisTitleStyle = CPTMutableTextStyle()
axisTitleStyle.color = CPTColor.redColor()
axisTitleStyle.fontName = "Helvetica-Bold"
axisTitleStyle.fontSize = 12.0

var axisLineStyle = CPTMutableLineStyle()
axisLineStyle.lineWidth = 4.0
axisLineStyle.lineColor = CPTColor.redColor()

var axisSet = CPTXYAxisSet()
graph.axisSet = axisSet

axisSet.xAxis.labelingPolicy = CPTAxisLabelingPolicyNone
axisSet.xAxis.title = "Days of Week"
axisSet.xAxis.titleTextStyle = axisTitleStyle
axisSet.xAxis.titleOffset = 30.0
axisSet.xAxis.majorTickLength = 4
axisSet.xAxis.minorTickLength = 0
axisSet.xAxis.tickDirection = CPTSignNegative
axisSet.xAxis.axisLineStyle = axisLineStyle

var customLabels : NSMutableArray = NSMutableArray (capacity: items.count)
var tickLocations : NSMutableArray = NSMutableArray (capacity: items.count)
var labels : [String] = ["MON","THU","WEN","THR","FRI","SAT"]

var next : Int = 0

var newLabel : CPTAxisLabel
for item in items {
var xlabel : String = labels[next]
next++;

var tstyle : CPTMutableTextStyle = CPTMutableTextStyle()
tstyle.color = CPTColor.blueColor()
tstyle.fontSize = 10

newLabel = CPTAxisLabel(text: xlabel, textStyle: tstyle);
newLabel.setTickLocationFloat(Float(next))
newLabel.offset = 5
customLabels.addObject(newLabel)
tickLocations.addObject(Float(next))

}

axisSet.xAxis.majorTickLocations = NSSet(array: tickLocations)
axisSet.xAxis.axisLabels = NSSet(array: customLabels)

self.vGraph.hostedGraph = graph


}


override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

func maxItemsValue(items :[NSNumber])-> NSNumber{
var max : NSNumber=0

for item in items{
if item.floatValue > max.floatValue {
max = item
}
}

return max
}

func numberOfRecordsForPlot(plot: CPTPlot!) -> UInt {
return UInt(items.count)
}

func numberForPlot(plot: CPTPlot!, field fieldEnum: UInt, recordIndex idx: UInt) -> NSNumber! {
switch (fieldEnum) {
case 0:
if (idx < UInt(items.count)) {
return idx + 1
}
break;

case 1:
return items[Int(idx)]

default:

return 1

}

return 1
}


}

最佳答案

您需要设置每个新标签的tickLocation

newLabel.tickLocation = next

关于ios - Core Plot Swift BarPlot tickLocation 始终为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28203479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com