aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scalam/plotting/color/styles.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/scalam/plotting/color/styles.scala')
-rw-r--r--src/main/scala/scalam/plotting/color/styles.scala19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/main/scala/scalam/plotting/color/styles.scala b/src/main/scala/scalam/plotting/color/styles.scala
new file mode 100644
index 0000000..4a82310
--- /dev/null
+++ b/src/main/scala/scalam/plotting/color/styles.scala
@@ -0,0 +1,19 @@
+package scalam.plotting.color
+
+import scalam.m.ast._
+import scalam.plotting.DataSet
+import scalam.plotting.Style
+
+class MColorStyle(val function: Identifier) extends Style[Color] {
+ private val ColorVariable = Identifier("cc")
+
+ private def initial(dataSets: Seq[DataSet]) = Seq(Assign(ColorVariable, Function(function, IntLiteral(dataSets.length))))
+ private def map(dataSets: Iterable[DataSet]) = (for ((d, i) <- dataSets.zipWithIndex) yield d -> new Color {
+ def expression = IndexMatrix(ColorVariable, IntLiteral(i + 1), SliceLiteral)
+ }).toMap
+
+ override def apply(dataSets: Seq[DataSet]) = (initial(dataSets), map(dataSets))
+}
+
+object HSV extends MColorStyle(Identifier("hsv"))
+object JET extends MColorStyle(Identifier("jet")) \ No newline at end of file