From ca2e98aacbb9cda5d300e6891fcb87c1dd8db8b4 Mon Sep 17 00:00:00 2001 From: Dan Howe Date: Thu, 22 Aug 2019 09:31:55 +1000 Subject: [PATCH] Update colour ramps --- plots/README.md | 4 +++ plots/discrete_colour_ramp.py | 2 +- plots/discrete_colour_ramp_edges.py | 39 +++++++++++++++++++++++ plots/png/discrete-colour-ramp-edges.png | Bin 0 -> 8372 bytes plots/png/discrete-colour-ramp.png | Bin 7731 -> 7723 bytes 5 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 plots/discrete_colour_ramp_edges.py create mode 100644 plots/png/discrete-colour-ramp-edges.png diff --git a/plots/README.md b/plots/README.md index b805512..388bb8d 100644 --- a/plots/README.md +++ b/plots/README.md @@ -3,3 +3,7 @@ ## discrete_colour_ramp.py ![discrete colour ramp](png/discrete-colour-ramp.png) + +## discrete_colour_ramp_edges.py + +![discrete colour ramp edges](png/discrete-colour-ramp-edges.png) diff --git a/plots/discrete_colour_ramp.py b/plots/discrete_colour_ramp.py index 2e5ab88..1fc7714 100644 --- a/plots/discrete_colour_ramp.py +++ b/plots/discrete_colour_ramp.py @@ -15,7 +15,7 @@ c_min = -8 c_step = 2 # Create colour map -cmap = plt.cm.get_cmap('Blues', (c_max - c_min + c_step) / c_step) +cmap = plt.cm.get_cmap('YlOrRd', (c_max - c_min + c_step) / c_step) fig, ax = plt.subplots(1, 1, figsize=(6, 4)) diff --git a/plots/discrete_colour_ramp_edges.py b/plots/discrete_colour_ramp_edges.py new file mode 100644 index 0000000..0c7ffef --- /dev/null +++ b/plots/discrete_colour_ramp_edges.py @@ -0,0 +1,39 @@ +import os +import numpy as np +import matplotlib.pyplot as plt + +# Generate dummy data +delta = 0.01 +x = np.arange(-3.0, 3.0, delta) +y = np.arange(-3.0, 3.0, delta) +X, Y = np.meshgrid(x, y) +Z = X * Y + +# Set range and steps for colour bar +c_max = 5 +c_min = -5 +c_step = 1 + +# Create colour map +cmap = plt.cm.get_cmap('YlOrRd', (c_max - c_min) / c_step) + +fig, ax = plt.subplots(1, 1, figsize=(6, 4)) + +# Plot image +im = ax.imshow(Z, + cmap=cmap, + interpolation='bilinear', + vmax=c_max, + vmin=c_min) + +# Add colour bar +plt.colorbar(im, ticks=np.arange(c_min, c_max + 1, c_step)) + +# Hide spines and ticks +ax.set_axis_off() + +# Export figure +png_name = os.path.join( + 'png', + os.path.basename(__file__).replace('.py', '.png').replace('_', '-')) +plt.savefig(png_name, bbox_inches='tight', dpi=100) diff --git a/plots/png/discrete-colour-ramp-edges.png b/plots/png/discrete-colour-ramp-edges.png new file mode 100644 index 0000000000000000000000000000000000000000..81b210a825b0d3a98eacf1cdd11f25d39b55f777 GIT binary patch literal 8372 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 Fe*qcrX2Jjf literal 0 HcmV?d00001 diff --git a/plots/png/discrete-colour-ramp.png b/plots/png/discrete-colour-ramp.png index 726fdd3a1baf81c9ef0299d6b868823981c71518..341efb34cd6cb4552f1c355d4eb581c650f05ded 100644 GIT binary patch literal 7723 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 JO0VEU{|~txZubBH