diff --git a/examples/ticks_and_spines/tick-formatters.py b/examples/ticks_and_spines/tick-formatters.py new file mode 100644 index 000000000000..e4278d41c631 --- /dev/null +++ b/examples/ticks_and_spines/tick-formatters.py @@ -0,0 +1,90 @@ +""" +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, "NullFormatter()", 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, "FixedFormatter(['', '0', '1', ...])", + fontsize=15, transform=ax.transAxes) + + +# Func formatter +def major_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(lambda x, pos: "[%.2f]" % x)', + fontsize=15, 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, "FormatStrFormatter('>%d<')", + fontsize=15, 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, "ScalarFormatter()", fontsize=15, 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, "StrMethodFormatter('{x}')", + fontsize=15, transform=ax.transAxes) + +plt.show() diff --git a/examples/ticks_and_spines/tick-locators.py b/examples/ticks_and_spines/tick-locators.py new file mode 100644 index 000000000000..2add8a29a543 --- /dev/null +++ b/examples/ticks_and_spines/tick-locators.py @@ -0,0 +1,93 @@ +""" +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 = 8 + +# 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, "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, "MultipleLocator(0.5)", fontsize=14, + 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, "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(numticks=3)", + fontsize=14, transform=ax.transAxes) + +# Index Locator +ax = plt.subplot(n, 1, 5) +setup(ax) +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 +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, "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, "MaxNLocator(n=4)", fontsize=14, transform=ax.transAxes) + +# Log Locator +ax = plt.subplot(n, 1, 8) +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) + +plt.show()