@@ -5,8 +5,8 @@ import javax.imageio.ImageIO
5
5
import org .jfree .chart .JFreeChart
6
6
import org .jfree .chart .axis .{LogAxis , NumberAxis }
7
7
import org .jfree .chart .plot .XYPlot
8
- import org .jfree .chart .renderer .xy .XYLineAndShapeRenderer
9
- import org .jfree .data .xy .{XYSeries , XYSeriesCollection }
8
+ import org .jfree .chart .renderer .xy .XYErrorRenderer
9
+ import org .jfree .data .xy .{YIntervalSeries , YIntervalSeriesCollection }
10
10
import play .api .libs .json .{JsObject , Json }
11
11
import sbt ._
12
12
@@ -36,32 +36,36 @@ object Bencharts {
36
36
// group by concrete collection type
37
37
.groupBy(result => (result \ " benchmark" ).as[String ].stripSuffix(benchmark))
38
38
.map { case (collectionType, iterations) =>
39
- val xySeries = new XYSeries (collectionType)
39
+ val ySeries = new YIntervalSeries (collectionType)
40
40
// each benchmark has been run with several collection sizes (8, 64, 512, etc.)
41
41
// we add a point for each of these iterations
42
42
for (iteration <- iterations) {
43
- xySeries .add(
43
+ ySeries .add(
44
44
(iteration \ " params" \ " size" ).as[String ].toDouble,
45
- (iteration \ " primaryMetric" \ " score" ).as[Double ]
45
+ (iteration \ " primaryMetric" \ " score" ).as[Double ],
46
+ (iteration \ " primaryMetric" \ " scoreConfidence" ).apply(0 ).as[Double ],
47
+ (iteration \ " primaryMetric" \ " scoreConfidence" ).apply(1 ).as[Double ]
46
48
)
47
49
}
48
- xySeries
50
+ ySeries
49
51
}
50
52
51
53
val xAxis = new LogAxis (" Size" )
52
54
xAxis.setBase(2 )
53
55
xAxis.setStandardTickUnits(NumberAxis .createIntegerTickUnits())
54
56
val yAxis = new LogAxis (" Execution time (lower is better)" )
55
57
56
- val col = new XYSeriesCollection ()
57
- for (series <- seriess) {
58
+ val col = new YIntervalSeriesCollection ()
59
+ val renderer = new XYErrorRenderer
60
+ for ((series, i) <- seriess.zipWithIndex) {
58
61
col.addSeries(series)
62
+ renderer.setSeriesLinesVisible(i, true )
59
63
}
60
64
61
65
val plot = new XYPlot (
62
66
col,
63
67
xAxis, yAxis,
64
- new XYLineAndShapeRenderer ( true , true )
68
+ renderer
65
69
)
66
70
67
71
val chart = new JFreeChart (
@@ -72,7 +76,7 @@ object Bencharts {
72
76
)
73
77
74
78
ImageIO .write(
75
- chart.createBufferedImage(640 , 480 ),
79
+ chart.createBufferedImage(800 , 600 ),
76
80
" png" ,
77
81
targetDir / s " $benchmark.png "
78
82
)
0 commit comments