-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStockMarket.scala
More file actions
31 lines (23 loc) · 1 KB
/
StockMarket.scala
File metadata and controls
31 lines (23 loc) · 1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package examples
import java.io.File
import de.dreambeam.veusz.components.{Barchart, Document, Graph}
import kantan.csv._
import kantan.csv.ops._
import kantan.csv.java8._
import kantan.csv.generic._
import de.dreambeam.veusz.format._
import de.dreambeam.veusz.data.{DateTimeConstructor, Numerical}
object StockMarket extends App {
// Read CSV
val reader = new File("data/stocks/GOOGL.csv").asUnsafeCsvReader[GoogleStocksRow](rfc.withHeader).toVector
val dates = reader.map(_.dates)
val datesFormatted = DateTimeConstructor.fromLocalDate(dates)
val opens = reader.map(_.open)
val highs = reader.map(_.high)
val lows = reader.map(_.low)
val posErrors = (highs, opens).zipped.map { case (h, o) => h - o }
val negErrors = (opens, lows).zipped.map { case (o, l) => o - l }
val y = Numerical(opens, posErrors=Some(posErrors), negErrors=Some(negErrors))
val bar = Barchart(Vector(y), datesFormatted, Direction.Vertical, BarchartMode.Stacked, Vector(""), "x", "y", "bar")
bar.show("BarchartTest")
}