%useLatestDescriptors %use lets-plot %use krangl var economics = DataFrame.readCSV("https://vincentarelbundock.github.io/Rdatasets/csv/ggplot2/economics.csv") import java.text.SimpleDateFormat val yyyyMmDd = SimpleDateFormat("yyyy-MM-dd") economics = economics.addColumn("date") { it["date"].map {yyyyMmDd.parse(it)}} economics.head(3) import java.util.Date val startDate = yyyyMmDd.parse("2000-01-01") economics = economics.filterByRow { (it["date"] as Date).compareTo(startDate) >= 0 } letsPlot(economics.toMap()){x="date"; y="uempmed"} + geomLine() + scale_x_datetime() + ggsize(900, 400) letsPlot(economics.toMap()){x="date"; y="uempmed"} + geomLine() + scaleXDateTime(format="%b %Y") + scaleYContinuous(format="{} %") + ylab("unemployment rate") + ggsize(900, 400) letsPlot(economics.toMap()){x="date"; y="uempmed"} + geomLine(tooltips=layerTooltips() .line("Unemployment rate:|^y") .color("black") .anchor("top_center") .minWidth(170)) + scaleXDateTime(format="%b %Y") + scaleYContinuous(format="{} %") + ylab("unemployment rate") + ggsize(900, 400) val unemploymentMean = economics["uempmed"].mean() letsPlot(economics.toMap()){x="date"; y="uempmed"} + geomLine(tooltips=layerTooltips() .line("Unemployment rate:|^y") .color("black") .anchor("top_center") .minWidth(170)) + geomHLine(yintercept=unemploymentMean, color="red", linetype="dashed", tooltips=tooltipsNone) + geomText(label=unemploymentMean.toString(), labelFormat="{.2f} %", x=startDate.toInstant().toEpochMilli(), y=unemploymentMean!! + 0.5, color="red") + scaleXDateTime(format="%b %Y") + scaleYContinuous(format="{} %") + ylab("unemployment rate") + ggtitle("The US Unemployment Rates 2000-2016.") + ggsize(900, 400)