From 32196edf6e6e93605a091229fcd9378af26eb4ae Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Sat, 10 Sep 2016 10:00:13 +0100 Subject: [PATCH 01/18] Add tick locator example --- examples/ticks_and_spines/tick-locators.py | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 examples/ticks_and_spines/tick-locators.py diff --git a/examples/ticks_and_spines/tick-locators.py b/examples/ticks_and_spines/tick-locators.py new file mode 100644 index 000000000000..55d2a5335d78 --- /dev/null +++ b/examples/ticks_and_spines/tick-locators.py @@ -0,0 +1,81 @@ +# Show the different tick locators + +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.ticker as ticker + +# Setup a plot such that only the bottom spine is shown +def setup(ax): + ax.spines['right'].set_color('none') + ax.spines['left'].set_color('none') + ax.yaxis.set_major_locator(ticker.NullLocator()) + ax.spines['top'].set_color('none') + ax.xaxis.set_ticks_position('bottom') + ax.tick_params(which='major', width=1.00) + ax.tick_params(which='major', length=5) + ax.tick_params(which='minor', width=0.75) + ax.tick_params(which='minor', length=2.5) + ax.set_xlim(0, 5) + ax.set_ylim(0, 1) + ax.patch.set_alpha(0.0) + + +plt.figure(figsize=(8, 8)) +n = 7 + +# Null Locator +ax = plt.subplot(n, 1, 1) +setup(ax) +ax.xaxis.set_major_locator(ticker.NullLocator()) +ax.xaxis.set_minor_locator(ticker.NullLocator()) +ax.text(0.0, 0.5, "Null locator", fontsize=16, transform=ax.transAxes) + +# Multiple Locator +ax = plt.subplot(n, 1, 2) +setup(ax) +ax.xaxis.set_major_locator(ticker.MultipleLocator(1.0)) +ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.5)) +ax.text(0.0, 0.5, "Multiple locator", fontsize=16, transform=ax.transAxes) + +# Fixed Locator +ax = plt.subplot(n, 1, 3) +setup(ax) +majors = [0, 1, 5] +ax.xaxis.set_major_locator(ticker.FixedLocator(majors)) +minors = np.linspace(0, 1, 11)[1:-1] +ax.xaxis.set_minor_locator(ticker.FixedLocator(minors)) +ax.text(0.0, 0.5, "Fixed locator", fontsize=16, transform=ax.transAxes) + +# Linear Locator +ax = plt.subplot(n, 1, 4) +setup(ax) +ax.xaxis.set_major_locator(ticker.LinearLocator(3)) +ax.xaxis.set_minor_locator(ticker.LinearLocator(31)) +ax.text(0.0, 0.5, "Linear locator", fontsize=16, transform=ax.transAxes) + +# Auto Locator +ax = plt.subplot(n, 1, 5) +setup(ax) +ax.xaxis.set_major_locator(ticker.AutoLocator()) +ax.xaxis.set_minor_locator(ticker.AutoMinorLocator()) +ax.text(0.0, 0.5, "Auto locator", fontsize=16, transform=ax.transAxes) + +# MaxN Locator +ax = plt.subplot(n, 1, 6) +setup(ax) +ax.xaxis.set_major_locator(ticker.MaxNLocator(5)) +ax.xaxis.set_minor_locator(ticker.MaxNLocator(50)) +ax.text(0.0, 0.5, "MaxN locator", fontsize=16, transform=ax.transAxes) + +# Log Locator +ax = plt.subplot(n, 1, 7) +setup(ax) +ax.set_xlim(10**3, 10**10) +ax.set_xscale('log') +ax.xaxis.set_major_locator(ticker.LogLocator(base=10.0, numticks=15)) +ax.text(0.0, 0.5, "Log locator", fontsize=16, transform=ax.transAxes) + +plt.tight_layout() +# plt.savefig("tick-locators.pdf") +# plt.savefig("tick-locators.png", dpi=150) +plt.show() From 98618bda0ced601309f74915e9eaf5847d1b92db Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Sat, 10 Sep 2016 10:28:43 +0100 Subject: [PATCH 02/18] Flakify --- examples/ticks_and_spines/tick-locators.py | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/ticks_and_spines/tick-locators.py b/examples/ticks_and_spines/tick-locators.py index 55d2a5335d78..c7ff2ed807f9 100644 --- a/examples/ticks_and_spines/tick-locators.py +++ b/examples/ticks_and_spines/tick-locators.py @@ -4,6 +4,7 @@ import matplotlib.pyplot as plt import matplotlib.ticker as ticker + # Setup a plot such that only the bottom spine is shown def setup(ax): ax.spines['right'].set_color('none') From e7ff52f9b95423a985c8a0cdab2ed3724b386176 Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Sat, 10 Sep 2016 12:36:50 +0100 Subject: [PATCH 03/18] Added docstring description --- examples/ticks_and_spines/tick-locators.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/ticks_and_spines/tick-locators.py b/examples/ticks_and_spines/tick-locators.py index c7ff2ed807f9..e1038f431d3a 100644 --- a/examples/ticks_and_spines/tick-locators.py +++ b/examples/ticks_and_spines/tick-locators.py @@ -1,4 +1,6 @@ -# Show the different tick locators +""" +Show the different tick locators +""" import numpy as np import matplotlib.pyplot as plt From bb7a4d9a1a8d5dec77ed3123e14f3b5e8c26bdca Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Sat, 10 Sep 2016 12:37:08 +0100 Subject: [PATCH 04/18] Added tick formatters example --- examples/ticks_and_spines/tick-formatters.py | 94 ++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 examples/ticks_and_spines/tick-formatters.py diff --git a/examples/ticks_and_spines/tick-formatters.py b/examples/ticks_and_spines/tick-formatters.py new file mode 100644 index 000000000000..dc4280cbfadb --- /dev/null +++ b/examples/ticks_and_spines/tick-formatters.py @@ -0,0 +1,94 @@ +""" +Show the different tick formatters +""" + +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.ticker as ticker + + +# Setup a plot such that only the bottom spine is shown +def setup(ax): + ax.spines['right'].set_color('none') + ax.spines['left'].set_color('none') + ax.yaxis.set_major_locator(ticker.NullLocator()) + ax.spines['top'].set_color('none') + ax.xaxis.set_ticks_position('bottom') + ax.tick_params(which='major', width=1.00, length=5) + ax.tick_params(which='minor', width=0.75, length=2.5, labelsize=10) + ax.set_xlim(0, 5) + ax.set_ylim(0, 1) + ax.patch.set_alpha(0.0) + + +plt.figure(figsize=(8, 6)) +n = 6 + +# Null formatter +ax = plt.subplot(n, 1, 1) +setup(ax) +ax.xaxis.set_major_locator(ticker.MultipleLocator(1.00)) +ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) +ax.xaxis.set_major_formatter(ticker.NullFormatter()) +ax.xaxis.set_minor_formatter(ticker.NullFormatter()) +ax.text(0.0, 0.5, "Null formatter", fontsize=16, transform=ax.transAxes) + +# Fixed formatter +ax = plt.subplot(n, 1, 2) +setup(ax) +ax.xaxis.set_major_locator(ticker.MultipleLocator(1.0)) +ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) +majors = ["", "0", "1", "2", "3", "4", "5"] +ax.xaxis.set_major_formatter(ticker.FixedFormatter(majors)) +minors = [""] + ["%.2f" % (x-int(x)) if (x-int(x)) + else "" for x in np.arange(0, 5, 0.25)] +ax.xaxis.set_minor_formatter(ticker.FixedFormatter(minors)) +ax.text(0.0, 0.5, "Fixed formatter", fontsize=16, transform=ax.transAxes) + + +# Func formatter +def major_formatter(x, pos): + return "[%.2f]" % x + + +def minor_formatter(x, pos): + return "(%.2f)" % x + + +ax = plt.subplot(n, 1, 3) +setup(ax) +ax.xaxis.set_major_locator(ticker.MultipleLocator(1.00)) +ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) +ax.xaxis.set_major_formatter(ticker.FuncFormatter(major_formatter)) +ax.text(0.0, 0.5, "Func formatter", fontsize=16, transform=ax.transAxes) + + +# FormatStr formatter +ax = plt.subplot(n, 1, 4) +setup(ax) +ax.xaxis.set_major_locator(ticker.MultipleLocator(1.00)) +ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) +ax.xaxis.set_major_formatter(ticker.FormatStrFormatter(">%d<")) +ax.text(0.0, 0.5, "FormatStr formatter", fontsize=16, transform=ax.transAxes) + +# Scalar formatter +ax = plt.subplot(n, 1, 5) +setup(ax) +ax.xaxis.set_major_locator(ticker.AutoLocator()) +ax.xaxis.set_minor_locator(ticker.AutoMinorLocator()) +ax.xaxis.set_major_formatter(ticker.ScalarFormatter(useMathText=True)) +ax.text(0.0, 0.5, "Scalar formatter", fontsize=16, transform=ax.transAxes) + +# StrMethod formatter +ax = plt.subplot(n, 1, 6) +setup(ax) +ax.xaxis.set_major_locator(ticker.MultipleLocator(1.00)) +ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) +ax.xaxis.set_major_formatter(ticker.StrMethodFormatter("{x}")) +ax.text(0.0, 0.5, "StrMethod formatter", fontsize=16, transform=ax.transAxes) + + +plt.tight_layout() +# plt.savefig("tick-formatters.pdf") +# plt.savefig("tick-formatters.png", dpi=150) +plt.show() From 015ed4525c55cfdac463856566e7482fbfe50387 Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Sun, 11 Sep 2016 11:31:02 +0100 Subject: [PATCH 05/18] Changed the MaxN locator example to show the difference with Auto locator --- examples/ticks_and_spines/tick-locators.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/ticks_and_spines/tick-locators.py b/examples/ticks_and_spines/tick-locators.py index e1038f431d3a..ee127a69f4de 100644 --- a/examples/ticks_and_spines/tick-locators.py +++ b/examples/ticks_and_spines/tick-locators.py @@ -66,9 +66,9 @@ def setup(ax): # MaxN Locator ax = plt.subplot(n, 1, 6) setup(ax) -ax.xaxis.set_major_locator(ticker.MaxNLocator(5)) -ax.xaxis.set_minor_locator(ticker.MaxNLocator(50)) -ax.text(0.0, 0.5, "MaxN locator", fontsize=16, transform=ax.transAxes) +ax.xaxis.set_major_locator(ticker.MaxNLocator(4)) +ax.xaxis.set_minor_locator(ticker.MaxNLocator(40)) +ax.text(0.0, 0.5, "MaxN locator (n=4)", fontsize=16, transform=ax.transAxes) # Log Locator ax = plt.subplot(n, 1, 7) From bf5f5b23301ee5290ce79819064d55cda91ae3fe Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Wed, 14 Sep 2016 07:39:50 +0200 Subject: [PATCH 06/18] Added index locator example --- examples/ticks_and_spines/tick-locators.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/examples/ticks_and_spines/tick-locators.py b/examples/ticks_and_spines/tick-locators.py index ee127a69f4de..07edfdeb95d3 100644 --- a/examples/ticks_and_spines/tick-locators.py +++ b/examples/ticks_and_spines/tick-locators.py @@ -24,7 +24,7 @@ def setup(ax): plt.figure(figsize=(8, 8)) -n = 7 +n = 8 # Null Locator ax = plt.subplot(n, 1, 1) @@ -56,22 +56,31 @@ def setup(ax): ax.xaxis.set_minor_locator(ticker.LinearLocator(31)) ax.text(0.0, 0.5, "Linear locator", fontsize=16, transform=ax.transAxes) -# Auto Locator +# Index Locator ax = plt.subplot(n, 1, 5) setup(ax) +ax.set_xlim(5, 55) +ax.plot(range(5, 55), [0]*50, color='White') +ax.xaxis.set_major_locator(ticker.IndexLocator(base=5, offset=2)) +ax.text(0.0, 0.5, "IndexLocator (base=5, offset=2)", + fontsize=16, transform=ax.transAxes) + +# Auto Locator +ax = plt.subplot(n, 1, 6) +setup(ax) ax.xaxis.set_major_locator(ticker.AutoLocator()) ax.xaxis.set_minor_locator(ticker.AutoMinorLocator()) ax.text(0.0, 0.5, "Auto locator", fontsize=16, transform=ax.transAxes) # MaxN Locator -ax = plt.subplot(n, 1, 6) +ax = plt.subplot(n, 1, 7) setup(ax) ax.xaxis.set_major_locator(ticker.MaxNLocator(4)) ax.xaxis.set_minor_locator(ticker.MaxNLocator(40)) ax.text(0.0, 0.5, "MaxN locator (n=4)", fontsize=16, transform=ax.transAxes) # Log Locator -ax = plt.subplot(n, 1, 7) +ax = plt.subplot(n, 1, 8) setup(ax) ax.set_xlim(10**3, 10**10) ax.set_xscale('log') From b9e7c533d9560ff3a6dd374b873e402854dfeb7f Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Wed, 14 Sep 2016 07:41:54 +0200 Subject: [PATCH 07/18] Typo --- examples/ticks_and_spines/tick-locators.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/ticks_and_spines/tick-locators.py b/examples/ticks_and_spines/tick-locators.py index 07edfdeb95d3..83ef7758c339 100644 --- a/examples/ticks_and_spines/tick-locators.py +++ b/examples/ticks_and_spines/tick-locators.py @@ -62,7 +62,7 @@ def setup(ax): ax.set_xlim(5, 55) ax.plot(range(5, 55), [0]*50, color='White') ax.xaxis.set_major_locator(ticker.IndexLocator(base=5, offset=2)) -ax.text(0.0, 0.5, "IndexLocator (base=5, offset=2)", +ax.text(0.0, 0.5, "Index locator (base=5, offset=2)", fontsize=16, transform=ax.transAxes) # Auto Locator From 729c83baffee94e10b82cea4d26a5c8580250184 Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Wed, 14 Sep 2016 15:38:30 +0200 Subject: [PATCH 08/18] Small change in the multiple locator --- examples/ticks_and_spines/tick-locators.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/examples/ticks_and_spines/tick-locators.py b/examples/ticks_and_spines/tick-locators.py index 83ef7758c339..80cc25258890 100644 --- a/examples/ticks_and_spines/tick-locators.py +++ b/examples/ticks_and_spines/tick-locators.py @@ -36,9 +36,10 @@ def setup(ax): # Multiple Locator ax = plt.subplot(n, 1, 2) setup(ax) -ax.xaxis.set_major_locator(ticker.MultipleLocator(1.0)) -ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.5)) -ax.text(0.0, 0.5, "Multiple locator", fontsize=16, transform=ax.transAxes) +ax.xaxis.set_major_locator(ticker.MultipleLocator(0.5)) +ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.1)) +ax.text(0.0, 0.5, "Multiple locator (0.5)", fontsize=16, + transform=ax.transAxes) # Fixed Locator ax = plt.subplot(n, 1, 3) From 4b0b1f2660b9bb6b12597024a5a45351cedaa52e Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Wed, 14 Sep 2016 16:05:57 +0200 Subject: [PATCH 09/18] Add arguments to text --- examples/ticks_and_spines/tick-locators.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/ticks_and_spines/tick-locators.py b/examples/ticks_and_spines/tick-locators.py index 80cc25258890..083ee3053aaa 100644 --- a/examples/ticks_and_spines/tick-locators.py +++ b/examples/ticks_and_spines/tick-locators.py @@ -31,14 +31,14 @@ def setup(ax): setup(ax) ax.xaxis.set_major_locator(ticker.NullLocator()) ax.xaxis.set_minor_locator(ticker.NullLocator()) -ax.text(0.0, 0.5, "Null locator", fontsize=16, transform=ax.transAxes) +ax.text(0.0, 0.5, "NullLocator()", fontsize=14, transform=ax.transAxes) # Multiple Locator ax = plt.subplot(n, 1, 2) setup(ax) ax.xaxis.set_major_locator(ticker.MultipleLocator(0.5)) ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.1)) -ax.text(0.0, 0.5, "Multiple locator (0.5)", fontsize=16, +ax.text(0.0, 0.5, "MultipleLocator (0.5)", fontsize=14, transform=ax.transAxes) # Fixed Locator @@ -48,14 +48,14 @@ def setup(ax): ax.xaxis.set_major_locator(ticker.FixedLocator(majors)) minors = np.linspace(0, 1, 11)[1:-1] ax.xaxis.set_minor_locator(ticker.FixedLocator(minors)) -ax.text(0.0, 0.5, "Fixed locator", fontsize=16, transform=ax.transAxes) +ax.text(0.0, 0.5, "FixedLocator([0,1,5])", fontsize=14, transform=ax.transAxes) # Linear Locator ax = plt.subplot(n, 1, 4) setup(ax) ax.xaxis.set_major_locator(ticker.LinearLocator(3)) ax.xaxis.set_minor_locator(ticker.LinearLocator(31)) -ax.text(0.0, 0.5, "Linear locator", fontsize=16, transform=ax.transAxes) +ax.text(0.0, 0.5, "LinearLocator(3)", fontsize=14, transform=ax.transAxes) # Index Locator ax = plt.subplot(n, 1, 5) @@ -63,22 +63,22 @@ def setup(ax): ax.set_xlim(5, 55) ax.plot(range(5, 55), [0]*50, color='White') ax.xaxis.set_major_locator(ticker.IndexLocator(base=5, offset=2)) -ax.text(0.0, 0.5, "Index locator (base=5, offset=2)", - fontsize=16, transform=ax.transAxes) +ax.text(0.0, 0.5, "IndexLocator (base=5, offset=2)", + fontsize=14, transform=ax.transAxes) # Auto Locator ax = plt.subplot(n, 1, 6) setup(ax) ax.xaxis.set_major_locator(ticker.AutoLocator()) ax.xaxis.set_minor_locator(ticker.AutoMinorLocator()) -ax.text(0.0, 0.5, "Auto locator", fontsize=16, transform=ax.transAxes) +ax.text(0.0, 0.5, "AutoLocator()", fontsize=14, transform=ax.transAxes) # MaxN Locator ax = plt.subplot(n, 1, 7) setup(ax) ax.xaxis.set_major_locator(ticker.MaxNLocator(4)) ax.xaxis.set_minor_locator(ticker.MaxNLocator(40)) -ax.text(0.0, 0.5, "MaxN locator (n=4)", fontsize=16, transform=ax.transAxes) +ax.text(0.0, 0.5, "MaxNLocator (n=4)", fontsize=14, transform=ax.transAxes) # Log Locator ax = plt.subplot(n, 1, 8) @@ -86,7 +86,7 @@ def setup(ax): ax.set_xlim(10**3, 10**10) ax.set_xscale('log') ax.xaxis.set_major_locator(ticker.LogLocator(base=10.0, numticks=15)) -ax.text(0.0, 0.5, "Log locator", fontsize=16, transform=ax.transAxes) +ax.text(0.0, 0.5, "LogLocator(10,15)", fontsize=15, transform=ax.transAxes) plt.tight_layout() # plt.savefig("tick-locators.pdf") From c827e5a33150a9071eb7d08af690dfbd2a27be10 Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Wed, 14 Sep 2016 17:11:03 +0200 Subject: [PATCH 10/18] Changed index locator range --- examples/ticks_and_spines/tick-locators.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/ticks_and_spines/tick-locators.py b/examples/ticks_and_spines/tick-locators.py index 083ee3053aaa..c50e84531ddb 100644 --- a/examples/ticks_and_spines/tick-locators.py +++ b/examples/ticks_and_spines/tick-locators.py @@ -60,10 +60,9 @@ def setup(ax): # Index Locator ax = plt.subplot(n, 1, 5) setup(ax) -ax.set_xlim(5, 55) -ax.plot(range(5, 55), [0]*50, color='White') -ax.xaxis.set_major_locator(ticker.IndexLocator(base=5, offset=2)) -ax.text(0.0, 0.5, "IndexLocator (base=5, offset=2)", +ax.plot(range(0, 5), [0]*5, color='White') +ax.xaxis.set_major_locator(ticker.IndexLocator(base=.5, offset=.25)) +ax.text(0.0, 0.5, "IndexLocator(base=0.5, offset=0.25)", fontsize=14, transform=ax.transAxes) # Auto Locator @@ -78,7 +77,7 @@ def setup(ax): setup(ax) ax.xaxis.set_major_locator(ticker.MaxNLocator(4)) ax.xaxis.set_minor_locator(ticker.MaxNLocator(40)) -ax.text(0.0, 0.5, "MaxNLocator (n=4)", fontsize=14, transform=ax.transAxes) +ax.text(0.0, 0.5, "MaxNLocator(n=4)", fontsize=14, transform=ax.transAxes) # Log Locator ax = plt.subplot(n, 1, 8) @@ -86,7 +85,7 @@ def setup(ax): ax.set_xlim(10**3, 10**10) ax.set_xscale('log') ax.xaxis.set_major_locator(ticker.LogLocator(base=10.0, numticks=15)) -ax.text(0.0, 0.5, "LogLocator(10,15)", fontsize=15, transform=ax.transAxes) +ax.text(0.0, 0.5, "LogLocator(base=10, numticks=15)", fontsize=15, transform=ax.transAxes) plt.tight_layout() # plt.savefig("tick-locators.pdf") From 60146647233983c103725f52ef13c78c6b03dfc9 Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Wed, 14 Sep 2016 17:14:26 +0200 Subject: [PATCH 11/18] Added function arguments to text describing the formatter --- examples/ticks_and_spines/tick-formatters.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/examples/ticks_and_spines/tick-formatters.py b/examples/ticks_and_spines/tick-formatters.py index dc4280cbfadb..c6848d2c262a 100644 --- a/examples/ticks_and_spines/tick-formatters.py +++ b/examples/ticks_and_spines/tick-formatters.py @@ -31,7 +31,7 @@ def setup(ax): ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) ax.xaxis.set_major_formatter(ticker.NullFormatter()) ax.xaxis.set_minor_formatter(ticker.NullFormatter()) -ax.text(0.0, 0.5, "Null formatter", fontsize=16, transform=ax.transAxes) +ax.text(0.0, 0.5, "NullFormatter()", fontsize=16, transform=ax.transAxes) # Fixed formatter ax = plt.subplot(n, 1, 2) @@ -43,7 +43,8 @@ def setup(ax): minors = [""] + ["%.2f" % (x-int(x)) if (x-int(x)) else "" for x in np.arange(0, 5, 0.25)] ax.xaxis.set_minor_formatter(ticker.FixedFormatter(minors)) -ax.text(0.0, 0.5, "Fixed formatter", fontsize=16, transform=ax.transAxes) +ax.text(0.0, 0.5, "FixedFormatter(['','0','1',...])", + fontsize=16, transform=ax.transAxes) # Func formatter @@ -60,7 +61,7 @@ def minor_formatter(x, pos): ax.xaxis.set_major_locator(ticker.MultipleLocator(1.00)) ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) ax.xaxis.set_major_formatter(ticker.FuncFormatter(major_formatter)) -ax.text(0.0, 0.5, "Func formatter", fontsize=16, transform=ax.transAxes) +ax.text(0.0, 0.5, "FuncFormatter(myfunc)", fontsize=16, transform=ax.transAxes) # FormatStr formatter @@ -69,7 +70,8 @@ def minor_formatter(x, pos): ax.xaxis.set_major_locator(ticker.MultipleLocator(1.00)) ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) ax.xaxis.set_major_formatter(ticker.FormatStrFormatter(">%d<")) -ax.text(0.0, 0.5, "FormatStr formatter", fontsize=16, transform=ax.transAxes) +ax.text(0.0, 0.5, "FormatStrFormatter('>%d<')", + fontsize=16, transform=ax.transAxes) # Scalar formatter ax = plt.subplot(n, 1, 5) @@ -77,7 +79,7 @@ def minor_formatter(x, pos): ax.xaxis.set_major_locator(ticker.AutoLocator()) ax.xaxis.set_minor_locator(ticker.AutoMinorLocator()) ax.xaxis.set_major_formatter(ticker.ScalarFormatter(useMathText=True)) -ax.text(0.0, 0.5, "Scalar formatter", fontsize=16, transform=ax.transAxes) +ax.text(0.0, 0.5, "ScalarFormatter()", fontsize=16, transform=ax.transAxes) # StrMethod formatter ax = plt.subplot(n, 1, 6) @@ -85,10 +87,11 @@ def minor_formatter(x, pos): ax.xaxis.set_major_locator(ticker.MultipleLocator(1.00)) ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) ax.xaxis.set_major_formatter(ticker.StrMethodFormatter("{x}")) -ax.text(0.0, 0.5, "StrMethod formatter", fontsize=16, transform=ax.transAxes) +ax.text(0.0, 0.5, "StrMethodFormatter('{x}')", + fontsize=16, transform=ax.transAxes) plt.tight_layout() # plt.savefig("tick-formatters.pdf") -# plt.savefig("tick-formatters.png", dpi=150) +plt.savefig("tick-formatters.png", dpi=150) plt.show() From 6a3a5b884d10df6743ee64f301c692c428d4746a Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Wed, 14 Sep 2016 17:15:44 +0200 Subject: [PATCH 12/18] Added function arguments to text describing the formatter --- examples/ticks_and_spines/tick-formatters.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/ticks_and_spines/tick-formatters.py b/examples/ticks_and_spines/tick-formatters.py index c6848d2c262a..2e1a4e41ea25 100644 --- a/examples/ticks_and_spines/tick-formatters.py +++ b/examples/ticks_and_spines/tick-formatters.py @@ -44,7 +44,7 @@ def setup(ax): else "" for x in np.arange(0, 5, 0.25)] ax.xaxis.set_minor_formatter(ticker.FixedFormatter(minors)) ax.text(0.0, 0.5, "FixedFormatter(['','0','1',...])", - fontsize=16, transform=ax.transAxes) + fontsize=15, transform=ax.transAxes) # Func formatter @@ -61,7 +61,7 @@ def minor_formatter(x, pos): ax.xaxis.set_major_locator(ticker.MultipleLocator(1.00)) ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) ax.xaxis.set_major_formatter(ticker.FuncFormatter(major_formatter)) -ax.text(0.0, 0.5, "FuncFormatter(myfunc)", fontsize=16, transform=ax.transAxes) +ax.text(0.0, 0.5, "FuncFormatter(myfunc)", fontsize=15, transform=ax.transAxes) # FormatStr formatter @@ -71,7 +71,7 @@ def minor_formatter(x, pos): ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) ax.xaxis.set_major_formatter(ticker.FormatStrFormatter(">%d<")) ax.text(0.0, 0.5, "FormatStrFormatter('>%d<')", - fontsize=16, transform=ax.transAxes) + fontsize=15, transform=ax.transAxes) # Scalar formatter ax = plt.subplot(n, 1, 5) @@ -79,7 +79,7 @@ def minor_formatter(x, pos): ax.xaxis.set_major_locator(ticker.AutoLocator()) ax.xaxis.set_minor_locator(ticker.AutoMinorLocator()) ax.xaxis.set_major_formatter(ticker.ScalarFormatter(useMathText=True)) -ax.text(0.0, 0.5, "ScalarFormatter()", fontsize=16, transform=ax.transAxes) +ax.text(0.0, 0.5, "ScalarFormatter()", fontsize=15, transform=ax.transAxes) # StrMethod formatter ax = plt.subplot(n, 1, 6) @@ -88,7 +88,7 @@ def minor_formatter(x, pos): ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) ax.xaxis.set_major_formatter(ticker.StrMethodFormatter("{x}")) ax.text(0.0, 0.5, "StrMethodFormatter('{x}')", - fontsize=16, transform=ax.transAxes) + fontsize=15, transform=ax.transAxes) plt.tight_layout() From 9cbbc47ced1d23d46fd31d81d50e6c130a28a1c8 Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Wed, 14 Sep 2016 17:50:38 +0200 Subject: [PATCH 13/18] Flakify --- examples/ticks_and_spines/tick-locators.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/ticks_and_spines/tick-locators.py b/examples/ticks_and_spines/tick-locators.py index c50e84531ddb..a6f586f405e4 100644 --- a/examples/ticks_and_spines/tick-locators.py +++ b/examples/ticks_and_spines/tick-locators.py @@ -85,7 +85,8 @@ def setup(ax): ax.set_xlim(10**3, 10**10) ax.set_xscale('log') ax.xaxis.set_major_locator(ticker.LogLocator(base=10.0, numticks=15)) -ax.text(0.0, 0.5, "LogLocator(base=10, numticks=15)", fontsize=15, transform=ax.transAxes) +ax.text(0.0, 0.5, "LogLocator(base=10, numticks=15)", + fontsize=15, transform=ax.transAxes) plt.tight_layout() # plt.savefig("tick-locators.pdf") From db0d321e3afbb0b5ad63aba9cb87614590731b2b Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Wed, 14 Sep 2016 17:52:03 +0200 Subject: [PATCH 14/18] Removed figure saving --- examples/ticks_and_spines/tick-formatters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/ticks_and_spines/tick-formatters.py b/examples/ticks_and_spines/tick-formatters.py index 2e1a4e41ea25..a6feca7d1bba 100644 --- a/examples/ticks_and_spines/tick-formatters.py +++ b/examples/ticks_and_spines/tick-formatters.py @@ -93,5 +93,5 @@ def minor_formatter(x, pos): plt.tight_layout() # plt.savefig("tick-formatters.pdf") -plt.savefig("tick-formatters.png", dpi=150) +# plt.savefig("tick-formatters.png", dpi=150) plt.show() From 79acce036e6472f18e65b4d74092b77ced3bfe3d Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Wed, 14 Sep 2016 19:45:44 +0200 Subject: [PATCH 15/18] Cosmetic changes --- examples/ticks_and_spines/tick-formatters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/ticks_and_spines/tick-formatters.py b/examples/ticks_and_spines/tick-formatters.py index a6feca7d1bba..e828f6ec0ed6 100644 --- a/examples/ticks_and_spines/tick-formatters.py +++ b/examples/ticks_and_spines/tick-formatters.py @@ -43,7 +43,7 @@ def setup(ax): minors = [""] + ["%.2f" % (x-int(x)) if (x-int(x)) else "" for x in np.arange(0, 5, 0.25)] ax.xaxis.set_minor_formatter(ticker.FixedFormatter(minors)) -ax.text(0.0, 0.5, "FixedFormatter(['','0','1',...])", +ax.text(0.0, 0.5, "FixedFormatter(['', '0', '1', ...])", fontsize=15, transform=ax.transAxes) From 6a157aeb3b94610d6255d1644fb4499b56722ba4 Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Wed, 14 Sep 2016 19:47:09 +0200 Subject: [PATCH 16/18] Cosmetic changes --- examples/ticks_and_spines/tick-locators.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/examples/ticks_and_spines/tick-locators.py b/examples/ticks_and_spines/tick-locators.py index a6f586f405e4..46c1046edb56 100644 --- a/examples/ticks_and_spines/tick-locators.py +++ b/examples/ticks_and_spines/tick-locators.py @@ -38,7 +38,7 @@ def setup(ax): setup(ax) ax.xaxis.set_major_locator(ticker.MultipleLocator(0.5)) ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.1)) -ax.text(0.0, 0.5, "MultipleLocator (0.5)", fontsize=14, +ax.text(0.0, 0.5, "MultipleLocator(0.5)", fontsize=14, transform=ax.transAxes) # Fixed Locator @@ -48,14 +48,16 @@ def setup(ax): ax.xaxis.set_major_locator(ticker.FixedLocator(majors)) minors = np.linspace(0, 1, 11)[1:-1] ax.xaxis.set_minor_locator(ticker.FixedLocator(minors)) -ax.text(0.0, 0.5, "FixedLocator([0,1,5])", fontsize=14, transform=ax.transAxes) +ax.text(0.0, 0.5, "FixedLocator([0, 1, 5])", fontsize=14, + transform=ax.transAxes) # Linear Locator ax = plt.subplot(n, 1, 4) setup(ax) ax.xaxis.set_major_locator(ticker.LinearLocator(3)) ax.xaxis.set_minor_locator(ticker.LinearLocator(31)) -ax.text(0.0, 0.5, "LinearLocator(3)", fontsize=14, transform=ax.transAxes) +ax.text(0.0, 0.5, "LinearLocator(numticks=3)", + fontsize=14, transform=ax.transAxes) # Index Locator ax = plt.subplot(n, 1, 5) From e91a5777d8e94ae30b1ab627204ec326e87bd7dc Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Thu, 15 Sep 2016 07:56:05 +0200 Subject: [PATCH 17/18] Removed line for saving figures --- examples/ticks_and_spines/tick-formatters.py | 4 ---- examples/ticks_and_spines/tick-locators.py | 3 --- 2 files changed, 7 deletions(-) diff --git a/examples/ticks_and_spines/tick-formatters.py b/examples/ticks_and_spines/tick-formatters.py index e828f6ec0ed6..2054980b9b98 100644 --- a/examples/ticks_and_spines/tick-formatters.py +++ b/examples/ticks_and_spines/tick-formatters.py @@ -90,8 +90,4 @@ def minor_formatter(x, pos): ax.text(0.0, 0.5, "StrMethodFormatter('{x}')", fontsize=15, transform=ax.transAxes) - -plt.tight_layout() -# plt.savefig("tick-formatters.pdf") -# plt.savefig("tick-formatters.png", dpi=150) plt.show() diff --git a/examples/ticks_and_spines/tick-locators.py b/examples/ticks_and_spines/tick-locators.py index 46c1046edb56..2add8a29a543 100644 --- a/examples/ticks_and_spines/tick-locators.py +++ b/examples/ticks_and_spines/tick-locators.py @@ -90,7 +90,4 @@ def setup(ax): ax.text(0.0, 0.5, "LogLocator(base=10, numticks=15)", fontsize=15, transform=ax.transAxes) -plt.tight_layout() -# plt.savefig("tick-locators.pdf") -# plt.savefig("tick-locators.png", dpi=150) plt.show() From 0875843fc43fc4bef6c02d8c0061f94357ce8c24 Mon Sep 17 00:00:00 2001 From: "Nicolas P. Rougier" Date: Sat, 17 Sep 2016 11:07:09 +0200 Subject: [PATCH 18/18] Removed unused function --- examples/ticks_and_spines/tick-formatters.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/examples/ticks_and_spines/tick-formatters.py b/examples/ticks_and_spines/tick-formatters.py index 2054980b9b98..e4278d41c631 100644 --- a/examples/ticks_and_spines/tick-formatters.py +++ b/examples/ticks_and_spines/tick-formatters.py @@ -52,16 +52,13 @@ def major_formatter(x, pos): return "[%.2f]" % x -def minor_formatter(x, pos): - return "(%.2f)" % x - - ax = plt.subplot(n, 1, 3) setup(ax) ax.xaxis.set_major_locator(ticker.MultipleLocator(1.00)) ax.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) ax.xaxis.set_major_formatter(ticker.FuncFormatter(major_formatter)) -ax.text(0.0, 0.5, "FuncFormatter(myfunc)", fontsize=15, transform=ax.transAxes) +ax.text(0.0, 0.5, 'FuncFormatter(lambda x, pos: "[%.2f]" % x)', + fontsize=15, transform=ax.transAxes) # FormatStr formatter