@@ -21,7 +21,7 @@ public struct circle_segment {
21
21
}
22
22
}
23
23
24
- internal func scaleValue( scale: Scale = . linear, value: Double , maxValue: Double , maxHeight: CGFloat , limit: Double ) -> CGFloat {
24
+ internal func scaleValue( scale: Scale = . linear, value: Double , maxValue: Double , zeroValue : Double , maxHeight: CGFloat , limit: Double ) -> CGFloat {
25
25
var value = value
26
26
if scale== . none && value> 1 && maxValue!= 0 {
27
27
value/= maxValue
@@ -45,12 +45,11 @@ internal func scaleValue(scale: Scale = .linear, value: Double, maxValue: Double
45
45
localMaxValue= cbrt ( maxValue)
46
46
}
47
47
case . logarithmic:
48
- let zeroVal = 256.0
49
48
if value> 0 {
50
- value= log ( value/ zeroVal )
49
+ value= log ( value/ zeroValue )
51
50
}
52
51
if localMaxValue> 0 {
53
- localMaxValue= log ( maxValue/ zeroVal )
52
+ localMaxValue= log ( maxValue/ zeroValue )
54
53
}
55
54
case . fixed:
56
55
if value> limit{
@@ -132,16 +131,18 @@ public class LineChartView: NSView {
132
131
133
132
private var scale : Scale
134
133
private var fixedScale : Double
134
+ private var zeroValue : Double
135
135
136
136
private var cursor : NSPoint ? = nil
137
137
private var stop : Bool = false
138
138
139
- public init ( frame: NSRect , num: Int , suffix: String = " % " , color: NSColor = . controlAccentColor, scale: Scale = . none, fixedScale: Double = 1 ) {
139
+ public init ( frame: NSRect , num: Int , suffix: String = " % " , color: NSColor = . controlAccentColor, scale: Scale = . none, fixedScale: Double = 1 , zeroValue : Double = 0.01 ) {
140
140
self . points= Array ( repeating: nil , count: num)
141
141
self . suffix= suffix
142
142
self . color= color
143
143
self . scale= scale
144
144
self . fixedScale= fixedScale
145
+ self . zeroValue= zeroValue
145
146
146
147
super. init ( frame: frame)
147
148
@@ -194,7 +195,7 @@ public class LineChartView: NSView {
194
195
continue
195
196
}
196
197
197
- var y = scaleValue ( scale: self . scale, value: v. value, maxValue: maxValue, maxHeight: height, limit: self . fixedScale)
198
+ var y = scaleValue ( scale: self . scale, value: v. value, maxValue: maxValue, zeroValue : self . zeroValue , maxHeight: height, limit: self . fixedScale)
198
199
if self . flipY{
199
200
y= height- y
200
201
}
@@ -400,8 +401,8 @@ public class NetworkChartView: NSView {
400
401
let bottomFrame = NSRect ( x: 0 , y: 0 , width: frame. width, height: frame. height/ 2 )
401
402
let inFrame = self . reversedOrder? topFrame: bottomFrame
402
403
let outFrame = self . reversedOrder? bottomFrame: topFrame
403
- self . inChart= LineChartView ( frame: inFrame, num: num, color: inColor, scale: scale, fixedScale: fixedScale)
404
- self . outChart= LineChartView ( frame: outFrame, num: num, color: outColor, scale: scale, fixedScale: fixedScale)
404
+ self . inChart= LineChartView ( frame: inFrame, num: num, color: inColor, scale: scale, fixedScale: fixedScale, zeroValue : 256.0 )
405
+ self . outChart= LineChartView ( frame: outFrame, num: num, color: outColor, scale: scale, fixedScale: fixedScale, zeroValue : 256.0 )
405
406
406
407
super. init ( frame: frame)
407
408