Using spines and set_yscale

Hello,

In the following code (using matplotlib svn), I’m trying to set the left (log) axis “outward” using spines. Subplots 222 and 223 have “weird” behaviors. Am I using the API incorrectly? I got it to work by calling ax.set_yscale(‘log’) twice (subplot 224). Where should I start if I want to contribute a patch?

import matplotlib.pyplot as plt

plt.rcParams[“xtick.direction”] = “out”
plt.rcParams[“ytick.direction”] = “out”

x = [.5, 111,68, 192, 340, 325]

fig = plt.figure()

ax = fig.add_subplot(221)
ax.set_yscale(‘log’)
ax.bar(range(len(x)), x, align=‘center’)

ax = fig.add_subplot(222)
ax.set_yscale(‘log’)
ax.bar(range(len(x)), x, align=‘center’)

ax.spines[“left”].set_position((“outward”, 10))

ax = fig.add_subplot(223)
ax.bar(range(len(x)), x, align=‘center’)
ax.spines[“left”].set_position((“outward”, 10))

ax.set_yscale(‘log’)

ax = fig.add_subplot(224)
ax.set_yscale(‘log’)
ax.bar(range(len(x)), x, align=‘center’)
ax.spines[“left”].set_position((“outward”, 10))
ax.set_yscale(‘log’)

plt.show()

EOF

Thanks for your help.

Best regards,

···


Nicolas Pinto
Ph.D. Candidate, Brain & Computer Sciences
Massachusetts Institute of Technology, USA
http://web.mit.edu/pinto