diff options
Diffstat (limited to 'src/main/scala/scalam/plotting/styles/color/styles.scala')
-rw-r--r-- | src/main/scala/scalam/plotting/styles/color/styles.scala | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main/scala/scalam/plotting/styles/color/styles.scala b/src/main/scala/scalam/plotting/styles/color/styles.scala new file mode 100644 index 0000000..e50f507 --- /dev/null +++ b/src/main/scala/scalam/plotting/styles/color/styles.scala @@ -0,0 +1,20 @@ +package scalam.plotting.styles.color + +import scalam.m.ast._ +import scalam.DataSet +import scalam.plotting.styles.Style +import scalam.plotting.styles.StyleElement + +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 |