From 99e57cda241f05ee1852ff5af3bea16c13b38e6e Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Sun, 19 Jan 2020 12:46:16 +0100 Subject: [PATCH] change color pallette to better show distinctive colors The old method of creating brighter/darker colors was producing color shades that did not look like the same color. E.g. a darker yellow looked more like brown. I am now trying to use hand crafted shades. --- .../lucares/pdb/plot/api/BarChartHandler.java | 2 +- .../api/CumulativeDistributionHandler.java | 2 +- .../pdb/plot/api/HistogramHandler.java | 2 +- .../plot/api/ParallelRequestsAggregate.java | 2 +- .../lucares/recommind/logs/GnuplotColor.java | 52 ++++++------------- .../recommind/logs/GnuplotColorPalettes.java | 51 ++++++++---------- .../org/lucares/recommind/logs/LineStyle.java | 25 +++++---- 7 files changed, 57 insertions(+), 79 deletions(-) diff --git a/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/BarChartHandler.java b/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/BarChartHandler.java index 2b5e683..addd380 100644 --- a/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/BarChartHandler.java +++ b/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/BarChartHandler.java @@ -84,7 +84,7 @@ public class BarChartHandler extends AggregateHandler { gnuplotTitle(title), // GnuplotLineType.Bar, // gnuplotXYAxis(), // - lineStyle.brighter()// + lineStyle.asGnuplotLineStyleBright()// ); } diff --git a/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/CumulativeDistributionHandler.java b/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/CumulativeDistributionHandler.java index e8d8794..d61ce77 100644 --- a/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/CumulativeDistributionHandler.java +++ b/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/CumulativeDistributionHandler.java @@ -78,7 +78,7 @@ public class CumulativeDistributionHandler extends AggregateHandler { aggregatedData.getDataFile().getAbsolutePath(), // gnuplotTitle(title), // gnuplotXYAxis(), // - lineStyle.darker()// + lineStyle.asGnuplotLineStyleBright()// ); } diff --git a/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/HistogramHandler.java b/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/HistogramHandler.java index 36637e0..0e0ac6a 100644 --- a/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/HistogramHandler.java +++ b/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/HistogramHandler.java @@ -62,7 +62,7 @@ public class HistogramHandler extends AggregateHandler { aggregatedData.getDataFile().getAbsolutePath(), // gnuplotTitle(title), // gnuplotXYAxis(), // - lineStyle.darker()// + lineStyle.asGnuplotLineStyleDark()// ); } diff --git a/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/ParallelRequestsAggregate.java b/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/ParallelRequestsAggregate.java index 3c4e8f2..a450ae7 100644 --- a/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/ParallelRequestsAggregate.java +++ b/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/ParallelRequestsAggregate.java @@ -55,7 +55,7 @@ public class ParallelRequestsAggregate extends AggregateHandler { aggregatedData.getDataFile().getAbsolutePath(), // gnuplotTitle(title), // gnuplotXYAxis(), // - lineStyle.brighter().asGnuplotLineStyle()// + lineStyle.asGnuplotLineStyleDark()// ); } diff --git a/pdb-plotting/src/main/java/org/lucares/recommind/logs/GnuplotColor.java b/pdb-plotting/src/main/java/org/lucares/recommind/logs/GnuplotColor.java index 318aa28..a4da056 100644 --- a/pdb-plotting/src/main/java/org/lucares/recommind/logs/GnuplotColor.java +++ b/pdb-plotting/src/main/java/org/lucares/recommind/logs/GnuplotColor.java @@ -1,55 +1,33 @@ package org.lucares.recommind.logs; -import java.awt.Color; - public class GnuplotColor { - private final String color; // hex: 00efcc - private GnuplotColor(String color) { - this.color = color; + private final String bright, normal, dark; // hex: 00efcc + + private GnuplotColor(final String bright, final String normal, final String dark) { + this.bright = bright; + this.normal = normal; + this.dark = dark; } - public static GnuplotColor byHex(String aHex) { - return new GnuplotColor(aHex); + public static GnuplotColor byHex(final String bright, final String normal, final String dark) { + return new GnuplotColor(bright, normal, dark); } - public static GnuplotColor byAwtColor(Color color) { - - final String hex = String.format("%02x%02x%02x", // - color.getRed(), // - color.getGreen(), // - color.getBlue()// - ); - - return new GnuplotColor(hex); + public String getBright() { + return bright; } public String getColor() { - return "rgb \"#" + color + "\""; + return normal; + } + + public String getDark() { + return dark; } @Override public String toString() { return getColor(); } - - Color toAwtColor() { - int red = Integer.parseInt(color.substring(0, 2), 16); - int green = Integer.parseInt(color.substring(2, 4), 16); - int blue = Integer.parseInt(color.substring(4, 6), 16); - return new Color(red, green, blue); - } - - public GnuplotColor brighter() { - - final Color brighterColor = toAwtColor().brighter(); - - return byAwtColor(brighterColor); - } - - public GnuplotColor darker() { - - final Color darkerColor = toAwtColor().darker(); - return byAwtColor(darkerColor); - } } diff --git a/pdb-plotting/src/main/java/org/lucares/recommind/logs/GnuplotColorPalettes.java b/pdb-plotting/src/main/java/org/lucares/recommind/logs/GnuplotColorPalettes.java index 8b7e1e7..4f263a4 100644 --- a/pdb-plotting/src/main/java/org/lucares/recommind/logs/GnuplotColorPalettes.java +++ b/pdb-plotting/src/main/java/org/lucares/recommind/logs/GnuplotColorPalettes.java @@ -24,27 +24,24 @@ public interface GnuplotColorPalettes { *
#FF69B4
*/ - - List GNUPLOT = Arrays.asList(// - GnuplotColor.byHex("9400D3"), // purple - GnuplotColor.byHex("009e73"), // green - GnuplotColor.byHex("56b4e9"), // light blue - GnuplotColor.byHex("e69f00"), // orange - GnuplotColor.byHex("f0e442"), // yellow - GnuplotColor.byHex("0072b2"), // blue - GnuplotColor.byHex("e51e10"), // red - GnuplotColor.byHex("FF69B4")// magenta - ); + /* + * List GNUPLOT = Arrays.asList(// GnuplotColor.byHex("9400D3"), + * // purple GnuplotColor.byHex("009e73"), // green + * GnuplotColor.byHex("56b4e9"), // light blue GnuplotColor.byHex("e69f00"), // + * orange GnuplotColor.byHex("f0e442"), // yellow GnuplotColor.byHex("0072b2"), + * // blue GnuplotColor.byHex("e51e10"), // red GnuplotColor.byHex("FF69B4")// + * magenta ); + */ List GNUPLOT_REORDERED = Arrays.asList(// - GnuplotColor.byHex("0072b2"), // blue 00A2FF, 0091E6, 0072B2, 005180, 002840 - GnuplotColor.byHex("e69f00"), // orange FFAE00, E69F00, BF8300, 805700, 402C00 - GnuplotColor.byHex("9400D3"), // purple B300FF, A100E6, 9400D3, 590080, 2D0040 - GnuplotColor.byHex("009e73"), // green - GnuplotColor.byHex("f0e442"), // yellow - GnuplotColor.byHex("e51e10"), // red - GnuplotColor.byHex("56b4e9"), // lightblue - GnuplotColor.byHex("FF69B4")// magenta + GnuplotColor.byHex("0060e6", "0051c2", "003580"), // blue 006aff, 0060e6, 0051c2, 003580, 001b40 + GnuplotColor.byHex("E69F00", "BF8300", "805700"), // orange FFAE00, E69F00, BF8300, 805700, 402C00 + GnuplotColor.byHex("A100E6", "9400D3", "590080"), // purple B300FF, A100E6, 9400D3, 590080, 2D0040 + GnuplotColor.byHex("00e663", "00c254", "008037"), // green + GnuplotColor.byHex("FFFF00", "E6e600", "c2c200"), // yellow + GnuplotColor.byHex("FF2200", "e51e10", "C211a00"), // "FF2200","e51e10","C211a00","801100","400800" + GnuplotColor.byHex("67bee6", "57a1c2", "396980"), // "73d3ff", "67bee6", "57a1c2","396980","1d3540" + GnuplotColor.byHex("E040E6", "BD36C2", "7C2480")// "F947FF", "E040E6", "BD36C2", "7C2480", "3E1240" ); /** @@ -67,15 +64,13 @@ public interface GnuplotColorPalettes { * * */ - List MATPLOTLIB = Arrays.asList(// - GnuplotColor.byHex("1f77b4"), // blue - GnuplotColor.byHex("ff7f0e"), // orange - GnuplotColor.byHex("d62728"), // red - GnuplotColor.byHex("2ca02c"), // green - GnuplotColor.byHex("fdbb6c"), // light orange - GnuplotColor.byHex("b3df72"), // light green - GnuplotColor.byHex("feffbe")// light yellow - ); + /* + * List MATPLOTLIB = Arrays.asList(// + * GnuplotColor.byHex("1f77b4"), // blue GnuplotColor.byHex("ff7f0e"), // orange + * GnuplotColor.byHex("d62728"), // red GnuplotColor.byHex("2ca02c"), // green + * GnuplotColor.byHex("fdbb6c"), // light orange GnuplotColor.byHex("b3df72"), + * // light green GnuplotColor.byHex("feffbe")// light yellow ); + */ List DEFAULT = GNUPLOT_REORDERED; } diff --git a/pdb-plotting/src/main/java/org/lucares/recommind/logs/LineStyle.java b/pdb-plotting/src/main/java/org/lucares/recommind/logs/LineStyle.java index bbe766a..317b51a 100644 --- a/pdb-plotting/src/main/java/org/lucares/recommind/logs/LineStyle.java +++ b/pdb-plotting/src/main/java/org/lucares/recommind/logs/LineStyle.java @@ -10,23 +10,28 @@ public class LineStyle { this.dashType = dashType; } - public String asGnuplotLineStyle() { - return String.format("lt %s dt %s ", // - color.getColor(), // + private String asGnuplotLineStyle(final String colorHex) { + return String.format("lt rgb \"#%s\" dt %s ", // + colorHex, // dashType.toGnuplotDashType()// ); } + public String asGnuplotLineStyleBright() { + return asGnuplotLineStyle(color.getBright()); + } + + public String asGnuplotLineStyle() { + return asGnuplotLineStyle(color.getColor()); + } + + public String asGnuplotLineStyleDark() { + return asGnuplotLineStyle(color.getDark()); + } + @Override public String toString() { return asGnuplotLineStyle(); } - public LineStyle brighter() { - return new LineStyle(color.brighter(), dashType); - } - - public LineStyle darker() { - return new LineStyle(color.darker(), dashType); - } }