Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 5640afd

Browse files
authored
Merge pull request #13061 from anntzer/localedate
Make examples that load msft.csv robust against locale changes.
2 parents ae5945f + ac73119 commit 5640afd

File tree

3 files changed

+19
-19
lines changed

3 files changed

+19
-19
lines changed

examples/misc/load_converter.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,21 @@
44
==============
55
66
"""
7-
import numpy as np
7+
8+
import dateutil.parser
9+
from matplotlib import cbook, dates
810
import matplotlib.pyplot as plt
9-
import matplotlib.cbook as cbook
10-
from matplotlib.dates import bytespdate2num
11+
import numpy as np
12+
1113

1214
datafile = cbook.get_sample_data('msft.csv', asfileobj=False)
1315
print('loading', datafile)
1416

15-
dates, closes = np.loadtxt(datafile, delimiter=',',
16-
converters={0: bytespdate2num('%d-%b-%y')},
17-
skiprows=1, usecols=(0, 2), unpack=True)
17+
data = np.genfromtxt(
18+
datafile, delimiter=',', names=True,
19+
converters={0: lambda s: dates.date2num(dateutil.parser.parse(s))})
1820

1921
fig, ax = plt.subplots()
20-
ax.plot_date(dates, closes, '-')
22+
ax.plot_date(data['Date'], data['High'], '-')
2123
fig.autofmt_xdate()
2224
plt.show()

examples/misc/plotfile_demo.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
66
Example use of ``plotfile`` to plot data directly from a file.
77
"""
8+
89
import matplotlib.pyplot as plt
910
import matplotlib.cbook as cbook
1011

examples/ticks_and_spines/date_index_formatter2.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,18 @@
1111
Formatter to get the appropriate date string for a given index.
1212
"""
1313

14-
15-
import numpy as np
16-
14+
import dateutil.parser
15+
from matplotlib import cbook, dates
1716
import matplotlib.pyplot as plt
18-
import matplotlib.cbook as cbook
19-
from matplotlib.dates import bytespdate2num, num2date
2017
from matplotlib.ticker import Formatter
18+
import numpy as np
2119

2220

2321
datafile = cbook.get_sample_data('msft.csv', asfileobj=False)
2422
print('loading %s' % datafile)
25-
msft_data = np.genfromtxt(datafile, delimiter=',', names=True,
26-
converters={0: bytespdate2num('%d-%b-%y')})[-40:]
23+
msft_data = np.genfromtxt(
24+
datafile, delimiter=',', names=True,
25+
converters={0: lambda s: dates.date2num(dateutil.parser.parse(s))})
2726

2827

2928
class MyFormatter(Formatter):
@@ -36,13 +35,11 @@ def __call__(self, x, pos=0):
3635
ind = int(np.round(x))
3736
if ind >= len(self.dates) or ind < 0:
3837
return ''
38+
return dates.num2date(self.dates[ind]).strftime(self.fmt)
3939

40-
return num2date(self.dates[ind]).strftime(self.fmt)
41-
42-
formatter = MyFormatter(msft_data['Date'])
4340

4441
fig, ax = plt.subplots()
45-
ax.xaxis.set_major_formatter(formatter)
46-
ax.plot(np.arange(len(msft_data)), msft_data['Close'], 'o-')
42+
ax.xaxis.set_major_formatter(MyFormatter(msft_data['Date']))
43+
ax.plot(msft_data['Close'], 'o-')
4744
fig.autofmt_xdate()
4845
plt.show()

0 commit comments

Comments
 (0)