SourceForge logo
SourceForge logo
Menu

matplotlib-users

From: Nicolas M. <nic...@la...> - 2013年07月08日 14:49:17
Hi,
Following an hardware failure I had to move some matplotlib scripts from
an ancient (but updated) Debian box to a clean RHEL 6 VM. As a result my
matplotlib version changed from 1.2.0 (as present in Debian instable) to
1.2.1 (some of the code wanted matplotlib ≥ 1.0, so I rebuilt an 1.2.1
packaged based on the Fedora 1.2.0 one. 1.3.0-rc2 / 1.3.0git gave me so
many dependencies griefs I gave up on it)
Anyway the result seems to work fine so far, except for a few scores of
time graphs where some tick labels gone missing. Those graphs are supposed
to show weekly data, with:
– ticks on month ends,
– subticks on week ends,
– week numbers in the middle of each week (top) and
– month numbers on the middle of each month (bottom).
With the new installation months numbers got missing.
Here is an extract of the relevant code :
%<---
 subplot.set_xticks([dd.monthstart(m) for m in months])
 subplot.set_xticks([w.gmticks() for w in weeks], minor=True)
 subplot.set_xticklabels([])
 plt.xlim(dd.monthstart(min(months)),dd.monthend(max(months)))
 subplot1 = subplot.twiny()
 mmonths = [m for i,m in enumerate(months)
 if operator.mod(i,1+(len(months)-1)/12) == 0]
 subplot1.set_xticks([dd.monthmiddle(m) for m in mmonths])
 subplot1.set_xticklabels(mmonths)
 subplot1.tick_params(labelsize='6.5',labelbottom=True, labeltop=False)
 plt.xlim(dd.monthstart(min(months)),dd.monthend(max(months)))
 subplot2 = subplot.twiny()
 mweeks = [w for i,w in enumerate(weeks)
 if operator.mod(i,1+(len(weeks)-1)/53) == 0]
 subplot2.set_xticks([dd.weekmiddle(w) for w in mweeks])
 subplot2.set_xticklabels([w.iso_week[1] for w in mweeks])
 subplot2.tick_params(labelsize='5',labelbottom=False, labeltop=True,pad=3)
 plt.xlim(dd.monthstart(min(months)),dd.monthend(max(months)))
 subplot2.xaxis.set_ticks_position('none')
 subplot1.xaxis.set_ticks_position('none')
 subplot.xaxis.set_ticks_position('both')
%<---
I've tried to move the
subplot1.tick_params(labelsize='6.5',labelbottom=True, labeltop=False)
line to the end of the block, but it seems matplotlib is confusing
subplot1 and subplot2, and that results in the displaying of week numbers
(not month numbers) to the bottom of the plot (and the week numbers
disappear from the top of the graph).
Any idea how to restore the previously working behaviour ?
Regards,
-- 
Nicolas Mailhot
From: Michael D. <md...@st...> - 2013年07月17日 13:00:54
Can you please provide a completely standalone example? The following 
code has undefined variables etc.
Mike
On 07/08/2013 10:49 AM, Nicolas Mailhot wrote:
> subplot.set_xticks([dd.monthstart(m) for m in months])
> subplot.set_xticks([w.gmticks() for w in weeks], minor=True)
> subplot.set_xticklabels([])
> plt.xlim(dd.monthstart(min(months)),dd.monthend(max(months)))
>
> subplot1 = subplot.twiny()
> mmonths = [m for i,m in enumerate(months)
> if operator.mod(i,1+(len(months)-1)/12) == 0]
> subplot1.set_xticks([dd.monthmiddle(m) for m in mmonths])
> subplot1.set_xticklabels(mmonths)
> subplot1.tick_params(labelsize='6.5',labelbottom=True, labeltop=False)
> plt.xlim(dd.monthstart(min(months)),dd.monthend(max(months)))
>
> subplot2 = subplot.twiny()
> mweeks = [w for i,w in enumerate(weeks)
> if operator.mod(i,1+(len(weeks)-1)/53) == 0]
> subplot2.set_xticks([dd.weekmiddle(w) for w in mweeks])
> subplot2.set_xticklabels([w.iso_week[1] for w in mweeks])
> subplot2.tick_params(labelsize='5',labelbottom=False, labeltop=True,pad=3)
> plt.xlim(dd.monthstart(min(months)),dd.monthend(max(months)))
>
> subplot2.xaxis.set_ticks_position('none')
> subplot1.xaxis.set_ticks_position('none')
> subplot.xaxis.set_ticks_position('both')
From: Nicolas M. <nic...@la...> - 2013年07月19日 15:47:46
Attachments: testcase.py test.png
Le Mer 17 juillet 2013 14:56, Michael Droettboom a écrit :
> Can you please provide a completely standalone example? The following
> code has undefined variables etc.
Here it is, I'm afraid this testcase intent is less clear than what I
pasted previously (I replaced variables with precomputed values)
As shown in the attached png, the bottom tick labels (month names) are
missing. It worked in matplotlib ≤ 1.2.0
-- 
Nicolas Mailhot
From: Nicolas M. <nic...@la...> - 2013年08月26日 08:16:14
Le Ven 19 juillet 2013 17:47, Nicolas Mailhot a écrit :
> Le Mer 17 juillet 2013 14:56, Michael Droettboom a écrit :
Hi,
>> Can you please provide a completely standalone example? The following
>> code has undefined variables etc.
>
> Here it is, I'm afraid this testcase intent is less clear than what I
> pasted previously (I replaced variables with precomputed values)
>
> As shown in the attached png, the bottom tick labels (month names) are
> missing. It worked in matplotlib ≤ 1.2.0
Can you confirm the example was good enough for identifying the problem or
did I forget something again?
Regards,
-- 
Nicolas Mailhot
From: Goyo <goy...@gm...> - 2013年08月26日 16:21:59
Attachments: test.png
2013年7月19日 Nicolas Mailhot <nic...@la...>:
> Le Mer 17 juillet 2013 14:56, Michael Droettboom a écrit :
>> Can you please provide a completely standalone example? The following
>> code has undefined variables etc.
>
> Here it is, I'm afraid this testcase intent is less clear than what I
> pasted previously (I replaced variables with precomputed values)
>
> As shown in the attached png, the bottom tick labels (month names) are
> missing. It worked in matplotlib ≤ 1.2.0
I can confirm the issue with 1.2.1 but it works with a recent
development version (output attached) so it must have been fixed at
some point.
Goyo
From: Nicolas M. <nic...@la...> - 2013年08月27日 08:28:24
Le Lun 26 août 2013 18:21, Goyo a écrit :
> 2013年7月19日 Nicolas Mailhot <nic...@la...>:
>> Le Mer 17 juillet 2013 14:56, Michael Droettboom a écrit :
>>> Can you please provide a completely standalone example? The following
>>> code has undefined variables etc.
>>
>> Here it is, I'm afraid this testcase intent is less clear than what I
>> pasted previously (I replaced variables with precomputed values)
>>
>> As shown in the attached png, the bottom tick labels (month names) are
>> missing. It worked in matplotlib ≤ 1.2.0
>
> I can confirm the issue with 1.2.1 but it works with a recent
> development version (output attached) so it must have been fixed at
> some point.
Thank you very much for the data point, I'll try to get 1.3.0 built on RHEL 6
Regards,
-- 
Nicolas Mailhot
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /