diff --git a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart09.java b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart09.java index 164303e2e56e3a9c075c08ca17110dabd26541d6..0343f046a19af7cf5fc1631ad78c1b3013c6851c 100644 --- a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart09.java +++ b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart09.java @@ -16,13 +16,13 @@ */ package org.knowm.xchart.demo.charts.bar; -import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.knowm.xchart.Chart; -import org.knowm.xchart.ChartBuilder; import org.knowm.xchart.Series; import org.knowm.xchart.Series.SeriesType; +import org.knowm.xchart.SeriesMarker; import org.knowm.xchart.StyleManager.ChartTheme; import org.knowm.xchart.StyleManager.ChartType; import org.knowm.xchart.StyleManager.LegendPosition; @@ -48,20 +48,105 @@ public class BarChart09 implements ExampleChart { @Override public Chart getChart() { - // Create Chart - Chart chart = new ChartBuilder().chartType(ChartType.Bar).width(800).height(600).title("Value vs. Letter").xAxisTitle("Letter").yAxisTitle("Value").theme(ChartTheme.GGPlot2).build(); - chart.addSeries("China", new ArrayList<String>(Arrays.asList(new String[] { "A", "B", "C", "D", "E" })), new ArrayList<Number>(Arrays.asList(new Number[] { 11, 23, 20, 36, 5 }))); - Series series2 = chart.addSeries("World Ave.", new ArrayList<String>(Arrays.asList(new String[] { "A", "B", "C", "D", "E" })), new ArrayList<Number>(Arrays.asList(new Number[] { 13, 25, 22, 38, - 7 }))); - series2.setSeriesType(SeriesType.Line); - + Chart chart = new Chart(1024, 768, ChartTheme.GGPlot2); + chart.getStyleManager().setChartType(ChartType.Bar); + // Customize Chart - chart.getStyleManager().setLegendPosition(LegendPosition.InsideNW); - chart.getStyleManager().setBarWidthPercentage(.7); - chart.getStyleManager().setBarsOverlapped(true); + chart.setChartTitle("ThreadPoolBenchmark"); + chart.setXAxisTitle("Threads"); + chart.setYAxisTitle("Executions"); + chart.getStyleManager().setXAxisLabelRotation(270); + chart.getStyleManager().setLegendPosition(LegendPosition.OutsideE); + chart.getStyleManager().setBarWidthPercentage(0); + chart.getStyleManager().setBarsOverlapped(true); + + // Declare data + List<String> xAxisKeys = Arrays.asList(new String[]{"release-0.5", "release-0.6", "release-0.7", + "release-0.8", "release-0.9", + "release-1.0.0", "release-1.1.0", + "release-1.2.0", "release-1.3.0", + "release-2.0.0", "release-2.1.0", + "release-2.2.0", "release-2.3.0", + "release-2.4.0", "release-2.5.0", + "release-2.6.0", "release-3.0.0", + "release-3.1.0", "release-3.2.0", + "release-3.3.0", "release-3.4.0", + "release-3.5.0", "release-3.6.0", + "release-3.7.0", "release-3.8.0", + "release-4.0.0", "release-4.1.0", + "release-4.2.0", "release-4.3.0", + "release-4.4.0", "release-4.4.1", + "release-4.4.2"}); + String[] seriesNames = new String[]{"Threads:4", "Threads:10", "Threads:20", "Threads:50", + "Threads:100", "Threads:150", "Threads:200", "Threads:250", + "Threads:500", "Threads:750", "Threads:1000", + "Threads:1500", "Threads:2000", "Threads:2500"}; + Integer[][] dataPerSeries = + new Integer[][]{{117355, 117594, 117551, 117719, 116553, 117304, 118945, 119067, 117803, + 118080, 117676, 118599, 118224, 119263, 119455, 119393, 117961, 119254, + 118447, 119428, 118812, 117947, 119405, 119329, 117749, 119331, 119354, + 119519, 118494, 119780, 119766, 119742}, + {127914, 128835, 128953, 128893, 128830, 129012, 129235, 129424, 129400, + 129477, 129065, 129103, 129150, 129434, 129000, 129467, 128994, 129167, + 129849, 128702, 134439, 134221, 134277, 134393, 134390, 134581, 134263, + 134641, 134672, 137880, 137675, 137943}, + {133396, 133977, 133992, 133656, 134406, 134657, 135194, 135497, 134881, + 134873, 135065, 135045, 134480, 135004, 135111, 134720, 134639, 135505, + 135831, 135974, 140965, 140759, 140545, 139959, 141063, 141339, 140967, + 140927, 141972, 160884, 163402, 164572}, + {122376, 122236, 122861, 122806, 122775, 122619, 122505, 122585, 122742, + 122847, 122660, 122705, 122852, 122847, 122909, 122788, 122861, 123396, + 123430, 122847, 121103, 121013, 120936, 120901, 121096, 120931, 121160, + 121112, 121145, 175077, 174483, 175787}, + {120048, 120226, 120745, 120669, 120647, 120683, 120499, 120533, 120628, + 121059, 120901, 120838, 120845, 120954, 120963, 121055, 120948, 121111, + 121239, 121094, 121422, 121249, 120924, 120918, 121061, 121063, 121065, + 121098, 121011, 173280, 173179, 172193}, + {119712, 119766, 120053, 120217, 119954, 120080, 120167, 119898, 120065, + 120253, 120153, 120103, 120070, 120446, 120347, 120223, 120261, 120629, + 120576, 120541, 121405, 121481, 121461, 121387, 121295, 121597, 121592, + 121593, 121576, 171415, 170628, 169878}, + {119807, 120232, 119745, 119892, 120024, 119854, 119818, 119908, 119685, + 119816, 119848, 119919, 119627, 119906, 120242, 119974, 120116, 120472, + 120304, 120294, 121308, 121338, 121278, 121292, 121418, 121570, 121564, + 121541, 121571, 170597, 170346, 170434}, + {121283, 121580, 120720, 120553, 121146, 120016, 119994, 120194, 120149, + 120239, 120238, 120031, 120016, 120314, 120023, 120408, 120315, 120711, + 121046, 120850, 121192, 121315, 121198, 121224, 121396, 121398, 121636, + 121412, 121252, 168489, 169774, 168750}, + {121219, 121594, 122576, 122368, 122874, 121831, 121386, 121433, 121722, + 121600, 121158, 121653, 121306, 121652, 121982, 121775, 121819, 122243, + 122128, 122067, 125185, 124972, 125023, 125004, 125120, 125320, 125395, + 125134, 124838, 168492, 167673, 167087}, + {121576, 122197, 121660, 121673, 122047, 120863, 120715, 120542, 120934, + 120936, 120448, 120823, 120546, 121150, 120863, 120946, 120865, 121273, + 120848, 121210, 124867, 124927, 124863, 124610, 124633, 124881, 124887, + 124626, 124814, 167504, 167717, 165026}, + {121822, 121540, 121488, 122055, 121253, 120728, 120626, 120474, 119848, + 120129, 120082, 120075, 120429, 120859, 121228, 120390, 120161, 121465, + 121085, 120682, 124287, 124029, 124162, 124185, 124024, 124416, 124558, + 124206, 124109, 166816, 167583, 164828}, + {121094, 121594, 121273, 121495, 121638, 120419, 119611, 119406, 119381, + 120053, 119591, 120080, 120071, 119709, 120008, 120469, 119417, 120327, + 120510, 119873, 123192, 123085, 123388, 123298, 123260, 122982, 123465, + 123267, 122856, 164366, 163919, 166612}, + {120639, 120628, 121443, 121160, 121245, 119819, 119865, 119300, 119466, + 119478, 119870, 119720, 119671, 120333, 119718, 119528, 119581, 120716, + 120624, 119585, 121685, 121978, 123017, 121433, 122190, 122330, 122458, + 122090, 122234, 161976, 163628, 158023}, + {120242, 120674, 120091, 120299, 120662, 119885, 119480, 119269, 118983, + 119290, 119304, 119161, 119875, 118830, 119517, 119980, 119502, 120883, + 118953, 119461, 120753, 120526, 120967, 120244, 122381, 121084, 122404, + 121761, 121546, 161230, 160123, 160534}}; + + // Add data series to chart + for (int i = 0; i < seriesNames.length; i++) { + Series series = chart.addSeries(seriesNames[i], xAxisKeys, Arrays.asList(dataPerSeries[i])); + series.setMarker(SeriesMarker.NONE); + series.setSeriesType(SeriesType.Line); + } return chart; } - }