Skip to content

Commit 1aba33e

Browse files
authored
Merge pull request #30 from KarthikRIyer/histogram
Implement Histogram
2 parents de51a6f + ee674d9 commit 1aba33e

26 files changed

+1540
-241
lines changed

Package.swift

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,22 @@ let package = Package(
126126
name: "ScatterPlotExample",
127127
dependencies: ["AGGRenderer", "SVGRenderer", "SwiftPlot"],
128128
path: "examples/ScatterPlot"),
129+
.target(
130+
name: "HistogramExample",
131+
dependencies: ["AGGRenderer", "SVGRenderer", "SwiftPlot"],
132+
path: "examples/Histogram"),
133+
.target(
134+
name: "HistogramStepExample",
135+
dependencies: ["AGGRenderer", "SVGRenderer", "SwiftPlot"],
136+
path: "examples/HistogramStep"),
137+
.target(
138+
name: "HistogramStackedExample",
139+
dependencies: ["AGGRenderer", "SVGRenderer", "SwiftPlot"],
140+
path: "examples/HistogramStacked"),
141+
.target(
142+
name: "HistogramStackedStepExample",
143+
dependencies: ["AGGRenderer", "SVGRenderer", "SwiftPlot"],
144+
path: "examples/HistogramStackedStep"),
129145
//.testTarget(
130146
// name: "swiftplotTests",
131147
// dependencies: ["swiftplot"]),

examples/Histogram/main.swift

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import SwiftPlot
2+
import AGGRenderer
3+
import SVGRenderer
4+
import Foundation
5+
6+
var filePath = "examples/Reference/"
7+
let fileName = "_20_histogram"
8+
9+
var x = [Float]()
10+
var y = [Float]()
11+
var mean: Float = 100
12+
var deviation: Float = 15
13+
let numberOfSamples = 10000
14+
15+
for _ in 1...numberOfSamples {
16+
let x1 = Float.random(in: 0.0...1.0)
17+
let x2 = Float.random(in: 0.0...1.0)
18+
let z1 = sqrt(-2 * log(x1))*cos(2*Float.pi*x2)
19+
x.append(z1*deviation + mean)
20+
}
21+
22+
var agg_renderer = AGGRenderer()
23+
var svg_renderer = SVGRenderer()
24+
25+
var histogram: Histogram = Histogram(isNormalized: false)
26+
histogram.addSeries(data: x, bins: 50, label: "Plot 1", color: .blue)
27+
histogram.plotTitle = PlotTitle("HISTOGRAM")
28+
histogram.plotLabel = PlotLabel(xLabel: "X", yLabel: "Frequency")
29+
30+
histogram.drawGraphAndOutput(fileName: filePath+"agg/"+fileName, renderer: agg_renderer)
31+
histogram.drawGraphAndOutput(fileName: filePath+"svg/"+fileName, renderer: svg_renderer)

examples/HistogramStacked/main.swift

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import SwiftPlot
2+
import AGGRenderer
3+
import SVGRenderer
4+
import Foundation
5+
6+
var filePath = "examples/Reference/"
7+
let fileName = "_22_histogram_stacked"
8+
9+
var x = [Float]()
10+
var y = [Float]()
11+
var mean1: Float = 100
12+
var mean2: Float = 150
13+
var deviation: Float = 15
14+
let numberOfSamples = 10000
15+
16+
for _ in 1...numberOfSamples {
17+
let x1 = Float.random(in: 0.0...1.0)
18+
let x2 = Float.random(in: 0.0...1.0)
19+
let z1 = sqrt(-2 * log(x1))*cos(2*Float.pi*x2)
20+
x.append(z1*deviation + mean1)
21+
}
22+
23+
for _ in 1...numberOfSamples {
24+
let x1 = Float.random(in: 0.0...1.0)
25+
let x2 = Float.random(in: 0.0...1.0)
26+
let z1 = sqrt(-2 * log(x1))*cos(2*Float.pi*x2)
27+
y.append(z1*deviation + mean2)
28+
}
29+
30+
var agg_renderer = AGGRenderer()
31+
var svg_renderer = SVGRenderer()
32+
33+
var histogram: Histogram = Histogram(isNormalized: false)
34+
histogram.addSeries(data: x, bins: 50, label: "Plot 1", color: .blue)
35+
histogram.addStackSeries(data: y, label: "Plot 2", color: .orange)
36+
histogram.plotTitle = PlotTitle("HISTOGRAM STACKED")
37+
histogram.plotLabel = PlotLabel(xLabel: "X", yLabel: "Frequency")
38+
39+
histogram.drawGraphAndOutput(fileName: filePath+"agg/"+fileName, renderer: agg_renderer)
40+
histogram.drawGraphAndOutput(fileName: filePath+"svg/"+fileName, renderer: svg_renderer)
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import SwiftPlot
2+
import AGGRenderer
3+
import SVGRenderer
4+
import Foundation
5+
6+
var filePath = "examples/Reference/"
7+
let fileName = "_23_histogram_stacked_step"
8+
9+
var x = [Float]()
10+
var y = [Float]()
11+
var mean1: Float = 100
12+
var mean2: Float = 150
13+
var deviation: Float = 15
14+
let numberOfSamples = 10000
15+
16+
for _ in 1...numberOfSamples {
17+
let x1 = Float.random(in: 0.0...1.0)
18+
let x2 = Float.random(in: 0.0...1.0)
19+
let z1 = sqrt(-2 * log(x1))*cos(2*Float.pi*x2)
20+
x.append(z1*deviation + mean1)
21+
}
22+
23+
for _ in 1...numberOfSamples {
24+
let x1 = Float.random(in: 0.0...1.0)
25+
let x2 = Float.random(in: 0.0...1.0)
26+
let z1 = sqrt(-2 * log(x1))*cos(2*Float.pi*x2)
27+
y.append(z1*deviation + mean2)
28+
}
29+
30+
var agg_renderer = AGGRenderer()
31+
var svg_renderer = SVGRenderer()
32+
33+
var histogram: Histogram = Histogram(isNormalized: false)
34+
histogram.addSeries(data: x, bins: 50, label: "Plot 1", color: .blue, histogramType: .step)
35+
histogram.addStackSeries(data: y, label: "Plot 2", color: .orange)
36+
histogram.plotTitle = PlotTitle("HISTOGRAM STACKED STEP")
37+
histogram.plotLabel = PlotLabel(xLabel: "X", yLabel: "Frequency")
38+
39+
histogram.drawGraphAndOutput(fileName: filePath+"agg/"+fileName, renderer: agg_renderer)
40+
histogram.drawGraphAndOutput(fileName: filePath+"svg/"+fileName, renderer: svg_renderer)

examples/HistogramStep/main.swift

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import SwiftPlot
2+
import AGGRenderer
3+
import SVGRenderer
4+
import Foundation
5+
6+
var filePath = "examples/Reference/"
7+
let fileName = "_21_histogram_step"
8+
9+
var x = [Float]()
10+
var y = [Float]()
11+
var mean: Float = 100
12+
var deviation: Float = 15
13+
let numberOfSamples = 10000
14+
15+
for _ in 1...numberOfSamples {
16+
let x1 = Float.random(in: 0.0...1.0)
17+
let x2 = Float.random(in: 0.0...1.0)
18+
let z1 = sqrt(-2 * log(x1))*cos(2*Float.pi*x2)
19+
x.append(z1*deviation + mean)
20+
}
21+
22+
var agg_renderer = AGGRenderer()
23+
var svg_renderer = SVGRenderer()
24+
25+
var histogram: Histogram = Histogram(isNormalized: false)
26+
histogram.addSeries(data: x, bins: 50, label: "Plot 1", color: .blue, histogramType: .step)
27+
histogram.plotTitle = PlotTitle("HISTOGRAM STEP")
28+
histogram.plotLabel = PlotLabel(xLabel: "X", yLabel: "Frequency")
29+
30+
histogram.drawGraphAndOutput(fileName: filePath+"agg/"+fileName, renderer: agg_renderer)
31+
histogram.drawGraphAndOutput(fileName: filePath+"svg/"+fileName, renderer: svg_renderer)
Loading
-306 Bytes
Loading
23.8 KB
Loading
24.1 KB
Loading
21.5 KB
Loading

0 commit comments

Comments
 (0)