Skip to content

Commit 9ac4ea8

Browse files
committed
adding interpolator view to verify schemes
1 parent 846e1a0 commit 9ac4ea8

File tree

208 files changed

+285
-208
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

208 files changed

+285
-208
lines changed

Sources/SwiftVizScale/ColorInterpolator.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,12 @@ public struct ColorInterpolator {
5757
/// - Parameters:
5858
/// - colors: The sequences of colors to map through.
5959
public init(_ colors: [CGColor]) {
60-
precondition(colors.count > 2, "ArrayInterpolator requires at least 2 colors.")
60+
precondition(colors.count > 2, "ColorInterpolator requires at least 2 colors.")
6161
self.colors = colors
6262
}
6363

64+
/// Creates a new color interpolator using sequences of 6 Hex Digits to represent a color.
65+
/// - Parameter hexSequence: The sequence to convert into the colors.
6466
public init(_ hexSequence: String) {
6567
precondition(hexSequence.count >= 12)
6668
let colors = CGColor.fromHexSequence(hexSequence)

Sources/SwiftVizScale/Documentation.docc/ColorInterpolator.md

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,52 @@
22

33
## Topics
44

5-
### Creating an Interpolator
5+
### Sequential Single Hue Color Schemes
66

77
- ``SwiftVizScale/ColorInterpolator/Grays``
88
- ``SwiftVizScale/ColorInterpolator/Blues``
99
- ``SwiftVizScale/ColorInterpolator/Greens``
1010
- ``SwiftVizScale/ColorInterpolator/Reds``
11+
- ``SwiftVizScale/ColorInterpolator/Oranges``
12+
- ``SwiftVizScale/ColorInterpolator/Purples``
13+
14+
### Sequential Multi Hue Color Schemes
15+
16+
- ``SwiftVizScale/ColorInterpolator/BuGn``
17+
- ``SwiftVizScale/ColorInterpolator/BuPu``
18+
- ``SwiftVizScale/ColorInterpolator/GnBu``
19+
- ``SwiftVizScale/ColorInterpolator/OrRd``
20+
- ``SwiftVizScale/ColorInterpolator/PuBu``
21+
- ``SwiftVizScale/ColorInterpolator/PuBuGn``
22+
- ``SwiftVizScale/ColorInterpolator/PuRd``
23+
- ``SwiftVizScale/ColorInterpolator/RdPu``
24+
- ``SwiftVizScale/ColorInterpolator/RdPu``
25+
- ``SwiftVizScale/ColorInterpolator/YlGn``
26+
- ``SwiftVizScale/ColorInterpolator/YlGnBu``
27+
- ``SwiftVizScale/ColorInterpolator/YlOrBr``
28+
- ``SwiftVizScale/ColorInterpolator/YlOrRd``
29+
- ``SwiftVizScale/ColorInterpolator/Viridis``
30+
- ``SwiftVizScale/ColorInterpolator/Inferno``
31+
- ``SwiftVizScale/ColorInterpolator/Magma``
32+
- ``SwiftVizScale/ColorInterpolator/Plasma``
33+
34+
### Diverging Color Schemes
35+
36+
- ``SwiftVizScale/ColorInterpolator/BrBG``
37+
- ``SwiftVizScale/ColorInterpolator/PrGN``
38+
- ``SwiftVizScale/ColorInterpolator/PiYG``
39+
- ``SwiftVizScale/ColorInterpolator/PuOR``
40+
- ``SwiftVizScale/ColorInterpolator/RdBu``
41+
- ``SwiftVizScale/ColorInterpolator/RdGy``
42+
- ``SwiftVizScale/ColorInterpolator/RdYlBu``
43+
- ``SwiftVizScale/ColorInterpolator/RdYlGn``
44+
- ``SwiftVizScale/ColorInterpolator/Spectral``
45+
46+
### Creating an Interpolator
47+
48+
- ``SwiftVizScale/ColorInterpolator/init(_:)-417qd``
49+
- ``SwiftVizScale/ColorInterpolator/init(_:)-5lx8r``
1150
- ``SwiftVizScale/ColorInterpolator/init(_:_:)``
12-
- ``SwiftVizScale/ColorInterpolator/init(_:)``
1351

1452
### Mapping values to colors
1553

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
//
2+
// ColorInterpolatorView.swift
3+
//
4+
5+
import SwiftUI
6+
@testable import SwiftVizScale
7+
8+
@available(macOS 12.0, iOS 15.0, *)
9+
struct ColorInterpolatorView: View {
10+
var steps: CGFloat
11+
var interpolator: ColorInterpolator
12+
13+
func color(_ stepValue: Int) -> CGColor {
14+
let t = normalize(Double(stepValue),
15+
lower: 0.0,
16+
higher: steps - 1)
17+
return interpolator.interpolate(t)
18+
}
19+
20+
var body: some View {
21+
GeometryReader { proxy in
22+
HStack(spacing: 0.0) {
23+
ForEach(0 ... Int(steps - 1), id: \.self) { stepValue in
24+
Color(cgColor: color(stepValue))
25+
.frame(width: proxy.size.width / steps)
26+
}
27+
}
28+
}
29+
}
30+
}
31+
32+
@available(macOS 12.0, iOS 15.0, *)
33+
struct ColorInterpolatorView_Previews: PreviewProvider {
34+
static var previews: some View {
35+
ColorInterpolatorView(steps: 128, interpolator: .Viridis)
36+
}
37+
}

docs/data/documentation/swiftvizscale.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

docs/data/documentation/swiftvizscale/band.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"higher"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RangeType"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/swiftvizscale\/band\/higher"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/higher","interfaceLanguage":"swift"},"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"higher"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RangeType"}],"title":"higher","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:13SwiftVizScale4BandV6higherq_vp","modules":[{"name":"SwiftVizScale"}]},"hierarchy":{"paths":[["doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale","doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band"]]},"seeAlsoSections":[{"title":"Inspecting a Band","identifiers":["doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/middle","doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/lower","doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/value"],"generated":true}],"references":{"doc://com.github.swiftviz.SwiftVizScale/documentation/SwiftVizScale/Band/lower":{"role":"symbol","title":"lower","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"lower"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RangeType"}],"abstract":[],"identifier":"doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/lower","kind":"symbol","type":"topic","url":"\/documentation\/swiftvizscale\/band\/lower"},"doc://com.github.swiftviz.SwiftVizScale/documentation/SwiftVizScale/Band/middle":{"role":"symbol","title":"middle","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"middle"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RangeType"}],"abstract":[],"identifier":"doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/middle","kind":"symbol","type":"topic","url":"\/documentation\/swiftvizscale\/band\/middle"},"doc://com.github.swiftviz.SwiftVizScale/documentation/SwiftVizScale":{"role":"collection","title":"SwiftVizScale","abstract":[{"type":"text","text":"A collection of components to provide structures that support data visualization."}],"identifier":"doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale","kind":"symbol","type":"topic","url":"\/documentation\/swiftvizscale"},"doc://com.github.swiftviz.SwiftVizScale/documentation/SwiftVizScale/Band/higher":{"role":"symbol","title":"higher","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"higher"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RangeType"}],"abstract":[],"identifier":"doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/higher","kind":"symbol","type":"topic","url":"\/documentation\/swiftvizscale\/band\/higher"},"doc://com.github.swiftviz.SwiftVizScale/documentation/SwiftVizScale/Band":{"role":"symbol","title":"Band","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Band"}],"abstract":[{"type":"text","text":"A type used to indicate the start and stop positions for a band associated with the provided value."}],"identifier":"doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Band"}],"url":"\/documentation\/swiftvizscale\/band"},"doc://com.github.swiftviz.SwiftVizScale/documentation/SwiftVizScale/Band/value":{"role":"symbol","title":"value","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"value"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"EnclosedType"}],"abstract":[],"identifier":"doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/value","kind":"symbol","type":"topic","url":"\/documentation\/swiftvizscale\/band\/value"}}}
1+
{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"higher"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RangeType"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/swiftvizscale\/band\/higher"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/higher","interfaceLanguage":"swift"},"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"higher"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RangeType"}],"title":"higher","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:13SwiftVizScale4BandV6higherq_vp","modules":[{"name":"SwiftVizScale"}]},"hierarchy":{"paths":[["doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale","doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band"]]},"seeAlsoSections":[{"title":"Inspecting a Band","identifiers":["doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/middle","doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/lower","doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/value"],"generated":true}],"references":{"doc://com.github.swiftviz.SwiftVizScale/documentation/SwiftVizScale":{"role":"collection","title":"SwiftVizScale","abstract":[{"type":"text","text":"A collection of components to provide structures that support data visualization."}],"identifier":"doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale","kind":"symbol","type":"topic","url":"\/documentation\/swiftvizscale"},"doc://com.github.swiftviz.SwiftVizScale/documentation/SwiftVizScale/Band/higher":{"role":"symbol","title":"higher","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"higher"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RangeType"}],"abstract":[],"identifier":"doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/higher","kind":"symbol","type":"topic","url":"\/documentation\/swiftvizscale\/band\/higher"},"doc://com.github.swiftviz.SwiftVizScale/documentation/SwiftVizScale/Band/lower":{"role":"symbol","title":"lower","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"lower"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RangeType"}],"abstract":[],"identifier":"doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/lower","kind":"symbol","type":"topic","url":"\/documentation\/swiftvizscale\/band\/lower"},"doc://com.github.swiftviz.SwiftVizScale/documentation/SwiftVizScale/Band/value":{"role":"symbol","title":"value","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"value"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"EnclosedType"}],"abstract":[],"identifier":"doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/value","kind":"symbol","type":"topic","url":"\/documentation\/swiftvizscale\/band\/value"},"doc://com.github.swiftviz.SwiftVizScale/documentation/SwiftVizScale/Band":{"role":"symbol","title":"Band","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Band"}],"abstract":[{"type":"text","text":"A type used to indicate the start and stop positions for a band associated with the provided value."}],"identifier":"doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Band"}],"url":"\/documentation\/swiftvizscale\/band"},"doc://com.github.swiftviz.SwiftVizScale/documentation/SwiftVizScale/Band/middle":{"role":"symbol","title":"middle","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"middle"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RangeType"}],"abstract":[],"identifier":"doc:\/\/com.github.swiftviz.SwiftVizScale\/documentation\/SwiftVizScale\/Band\/middle","kind":"symbol","type":"topic","url":"\/documentation\/swiftvizscale\/band\/middle"}}}

0 commit comments

Comments
 (0)