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

Reply via email to