On 2014/10/10, 4:45 AM, Duke, Charles wrote: > With matplotlib 1.4.0 the cla() method for the twinx axes also clears > the primary axes. With matplotlib 1.3.1 the method only clears the > twinx axes as expected. I have a much longer program where the twinx > axes must be cleared while retaining the primary axis plot. I would > prefer not to replot the entire graph each time the twinx axes change. > You can see this by adding the cla method to the matplotlib web site > example, two_scales.py, shown below. > > I have matplotlib installed via the anaconda package. Matplotlib 1.4.0 > is from anaconda 2.1.0. Matplotlib 1.3.1 is from 1.9 versions of the > anaconda package. > > Linux version: > > Linux gamow 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux > > Same cla() result on osX 10.9.4. > > Same result for backends Qt4Agg and TkAgg; the cla() method cleared > both axes. > > I also tried various other options such as setting ax2.hold(False) prior > to replotting ax2. However, once again ax1 was cleared. The ax2 clear > commands seem to apply to the ax1 axis as well??? These options worked > as expected for the earlier matplotlib version, clearing only the ax2 axis. > > Here’s the code: if you execute the code, you should see a blank figure > with the cla() included and the usual two graphs without the cla() method. > > -------------------------------------------------------------------- > > import numpy as np > > import matplotlib.pyplot as plt > > fig, ax1 = plt.subplots() > > t = np.arange(0.01, 10.0, 0.01) > > s1 = np.exp(t) > > ax1.plot(t, s1, 'b-') > > ax1.set_xlabel('time (s)') > > # Make the y-axis label and tick labels match the line color. > > ax1.set_ylabel('exp', color='b') > > for tl in ax1.get_yticklabels(): > > tl.set_color('b') > > ax2 = ax1.twinx() > > s2 = np.sin(2*np.pi*t) > > ax2.plot(t, s2, 'r.') > > ax2.set_ylabel('sin', color='r') > > for tl in ax2.get_yticklabels(): > > tl.set_color('r') > > # single line addition to the two_scales.py example > > # clears both ax2 and ax1 under matplotlib 1.4.0, clears only ax2 under > matplotlib 1.3.1 > > # obviously, same result with ax2.clear() method > > ax2.cla() > > plt.show() > > I would appreciate any help; this looks like a bug in the latest > version of matplotlib.
Charlie, I agree--it does look like a regression in 1.4. Would you post it as a github issue, please? Thank you. Eric > > I could not find any reference to this problem in earlier posts. > > Thanks, > > Charlie > > > > ------------------------------------------------------------------------------ > Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer > Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports > Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper > Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer > http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk > > > > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > ------------------------------------------------------------------------------ Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://p.sf.net/sfu/Zoho _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users