newsworthycharts 1.62.0__tar.gz → 1.63.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {newsworthycharts-1.62.0/newsworthycharts.egg-info → newsworthycharts-1.63.1}/PKG-INFO +17 -8
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/README.rst +13 -4
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/__init__.py +1 -1
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/chart.py +29 -2
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/lib/locator.py +4 -1
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/lib/utils.py +8 -2
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/serialchart.py +15 -6
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1/newsworthycharts.egg-info}/PKG-INFO +17 -8
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts.egg-info/requires.txt +2 -2
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/setup.py +2 -2
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/LICENSE.txt +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/MANIFEST.in +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/bubblemap.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/categoricalchart.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/choroplethmap.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/custom/__init__.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/custom/climate_cars.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/datawrapper.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/lib/__init__.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/lib/color_fn.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/lib/colors.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/lib/datalist.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/lib/formatter.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/lib/geography.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/lib/mimetypes.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/map.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/maps/se-4.gpkg +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/maps/se-7.gpkg +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/rangeplot.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/rc/newsworthy +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/scatterplot.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/seasonalchart.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/storage.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/stripechart.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/translations/datawrapper_regions.csv +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/translations/regions.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/translations/se_municipalities.csv +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts.egg-info/SOURCES.txt +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts.egg-info/dependency_links.txt +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts.egg-info/not-zip-safe +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts.egg-info/top_level.txt +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/setup.cfg +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/test/test_categorical_chart.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/test/test_choropleth_maps.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/test/test_custom_climate_cars.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/test/test_data_list.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/test/test_datawrapper.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/test/test_main.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/test/test_rangeplot.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/test/test_scatterplot.py +0 -0
- {newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/test/test_serial_chart.py +0 -0
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: newsworthycharts
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.63.1
|
4
4
|
Summary: Matplotlib wrapper to create charts and publish them on Amazon S3
|
5
5
|
Home-page: https://github.com/jplusplus/newsworthycharts
|
6
|
-
Download-URL: https://github.com/jplusplus/newsworthycharts/archive/1.
|
6
|
+
Download-URL: https://github.com/jplusplus/newsworthycharts/archive/1.63.1.tar.gz
|
7
7
|
Author: Jens Finnäs and Leo Wallentin, J++ Stockholm
|
8
8
|
Author-email: stockholm@jplusplus.org
|
9
9
|
License: MIT
|
@@ -18,11 +18,11 @@ Requires-Dist: PyYAML>=3
|
|
18
18
|
Requires-Dist: adjustText==0.7.3
|
19
19
|
Requires-Dist: numpy>2
|
20
20
|
Requires-Dist: python-dateutil<3,>=2
|
21
|
-
Requires-Dist: Pillow==
|
21
|
+
Requires-Dist: Pillow==11.0.0
|
22
22
|
Requires-Dist: requests>=2.22
|
23
23
|
Requires-Dist: matplotlib-label-lines==0.5.1
|
24
24
|
Requires-Dist: geopandas>=1
|
25
|
-
Requires-Dist: mapclassify==2.
|
25
|
+
Requires-Dist: mapclassify==2.8.1
|
26
26
|
Requires-Dist: puremagic>=1
|
27
27
|
|
28
28
|
This module contains methods for producing graphs and publishing them on Amazon S3, or in the location of your choice.
|
@@ -137,7 +137,7 @@ These settings are available for all chart types:
|
|
137
137
|
- yline = None # A horizontal line across the chart (Matplotlib: axhline)
|
138
138
|
- labels = [] # Optionally one label for each dataset
|
139
139
|
- annotations = [] # Manually added annotations
|
140
|
-
- interval = None # yearly, quarterly, monthly, weekly, daily
|
140
|
+
- interval = None # decennial, yearly, quarterly, monthly, weekly, daily
|
141
141
|
- units = 'number' # number, percent, degrees
|
142
142
|
- show_ticks = True # toggle category names, dates, etc
|
143
143
|
- subtitle = None
|
@@ -154,13 +154,13 @@ These settings are available for all chart types:
|
|
154
154
|
|
155
155
|
**SerialChart**
|
156
156
|
|
157
|
-
- type = 'line' # line|
|
157
|
+
- type = 'line' # line|bars
|
158
158
|
- bar_width = 0.9 # percent of data point width
|
159
159
|
- allow_broken_y_axis = True|False # default depends on chart type
|
160
160
|
- baseline = 0 # The “zero” line. Useful for plotting deviations, e.g. temperatures above/below mean
|
161
161
|
- baseline_annotation = None # A label for the baseline
|
162
162
|
- line_width = None # To override style settings
|
163
|
-
- max_ticks = 10 # Maximum number of ticks on the x axis
|
163
|
+
- max_ticks = 10 # Maximum number of ticks on the x axis. *Only used with yearly|decennial data* (this is yet to be fixed)
|
164
164
|
- ticks = None # Custom ticks on the x axis, as a list of lists or tuples: `[(2013-01-01, "-13"), (2014-01-01, "-14"), (2015-01-01, "-15")]`
|
165
165
|
- ymin = None # Minimum value on y axis. If None, it will be calculated from data
|
166
166
|
- ymax = None # Maximum value on y axis. If None, it will be calculated from data
|
@@ -248,11 +248,20 @@ Roadmap
|
|
248
248
|
- Remove custom charts (add missing api interfaces to Chart class instead)
|
249
249
|
- Remove DataWrapper class (out-of-scope)
|
250
250
|
- Custom month locator with equal-width month bars
|
251
|
-
- Add color-ramp choropleth maps, as an alternative to binning
|
252
251
|
|
253
252
|
Changelog
|
254
253
|
---------
|
255
254
|
|
255
|
+
- 1.63.1
|
256
|
+
|
257
|
+
- Fix version number in
|
258
|
+
|
259
|
+
- 1.63.0
|
260
|
+
|
261
|
+
- Added `interval: decennial` to SerialChart. Will be autodetected if all data points are 10 years apart.
|
262
|
+
- Pillow==11.0.0
|
263
|
+
- mapclassify==2.8.1
|
264
|
+
|
256
265
|
- 1.62.0
|
257
266
|
|
258
267
|
- max_ticks default is now 10 in SerialChart and 7 in ScatterPlot
|
@@ -110,7 +110,7 @@ These settings are available for all chart types:
|
|
110
110
|
- yline = None # A horizontal line across the chart (Matplotlib: axhline)
|
111
111
|
- labels = [] # Optionally one label for each dataset
|
112
112
|
- annotations = [] # Manually added annotations
|
113
|
-
- interval = None # yearly, quarterly, monthly, weekly, daily
|
113
|
+
- interval = None # decennial, yearly, quarterly, monthly, weekly, daily
|
114
114
|
- units = 'number' # number, percent, degrees
|
115
115
|
- show_ticks = True # toggle category names, dates, etc
|
116
116
|
- subtitle = None
|
@@ -127,13 +127,13 @@ These settings are available for all chart types:
|
|
127
127
|
|
128
128
|
**SerialChart**
|
129
129
|
|
130
|
-
- type = 'line' # line|
|
130
|
+
- type = 'line' # line|bars
|
131
131
|
- bar_width = 0.9 # percent of data point width
|
132
132
|
- allow_broken_y_axis = True|False # default depends on chart type
|
133
133
|
- baseline = 0 # The “zero” line. Useful for plotting deviations, e.g. temperatures above/below mean
|
134
134
|
- baseline_annotation = None # A label for the baseline
|
135
135
|
- line_width = None # To override style settings
|
136
|
-
- max_ticks = 10 # Maximum number of ticks on the x axis
|
136
|
+
- max_ticks = 10 # Maximum number of ticks on the x axis. *Only used with yearly|decennial data* (this is yet to be fixed)
|
137
137
|
- ticks = None # Custom ticks on the x axis, as a list of lists or tuples: `[(2013-01-01, "-13"), (2014-01-01, "-14"), (2015-01-01, "-15")]`
|
138
138
|
- ymin = None # Minimum value on y axis. If None, it will be calculated from data
|
139
139
|
- ymax = None # Maximum value on y axis. If None, it will be calculated from data
|
@@ -221,11 +221,20 @@ Roadmap
|
|
221
221
|
- Remove custom charts (add missing api interfaces to Chart class instead)
|
222
222
|
- Remove DataWrapper class (out-of-scope)
|
223
223
|
- Custom month locator with equal-width month bars
|
224
|
-
- Add color-ramp choropleth maps, as an alternative to binning
|
225
224
|
|
226
225
|
Changelog
|
227
226
|
---------
|
228
227
|
|
228
|
+
- 1.63.1
|
229
|
+
|
230
|
+
- Fix version number in
|
231
|
+
|
232
|
+
- 1.63.0
|
233
|
+
|
234
|
+
- Added `interval: decennial` to SerialChart. Will be autodetected if all data points are 10 years apart.
|
235
|
+
- Pillow==11.0.0
|
236
|
+
- mapclassify==2.8.1
|
237
|
+
|
229
238
|
- 1.62.0
|
230
239
|
|
231
240
|
- max_ticks default is now 10 in SerialChart and 7 in ScatterPlot
|
@@ -17,7 +17,8 @@ from matplotlib.font_manager import FontProperties
|
|
17
17
|
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
|
18
18
|
from matplotlib.figure import Figure
|
19
19
|
from matplotlib.ticker import FuncFormatter
|
20
|
-
from matplotlib.dates import DateFormatter, num2date
|
20
|
+
from matplotlib.dates import DateFormatter, num2date, YearLocator
|
21
|
+
|
21
22
|
from langcodes import standardize_tag
|
22
23
|
from PIL import Image
|
23
24
|
from babel import Locale
|
@@ -366,7 +367,10 @@ class Chart(object):
|
|
366
367
|
self.ax.plot([0], transform=self.ax.transAxes, **kwargs)
|
367
368
|
|
368
369
|
def _set_date_ticks(self, dates):
|
369
|
-
"""
|
370
|
+
"""
|
371
|
+
Set x ticks and formatters for chart types working on date series.
|
372
|
+
Todo: Unify location setting, to be able to support max_ticks everywhere.
|
373
|
+
"""
|
370
374
|
|
371
375
|
# Number of days on x axis (Matplotlib will use days as unit here)
|
372
376
|
xmin, xmax = to_date(self.data.x_points[0]), to_date(self.data.x_points[-1])
|
@@ -377,9 +381,31 @@ class Chart(object):
|
|
377
381
|
self.ax.set_xticks([x[0] for x in self.ticks])
|
378
382
|
self.ax.set_xticklabels([x[1] for x in self.ticks])
|
379
383
|
|
384
|
+
elif self.interval == "decennial":
|
385
|
+
# Get the intervall needed to stay below max_ticks
|
386
|
+
i = 1
|
387
|
+
while len(dates) / i > self.max_ticks:
|
388
|
+
i += 1
|
389
|
+
loc = YearLocator(10 * i)
|
390
|
+
# loc = get_best_locator(delta, len(dates), self.interval)
|
391
|
+
self.ax.xaxis.set_major_locator(loc)
|
392
|
+
|
393
|
+
formatter = Formatter(self._language)
|
394
|
+
|
395
|
+
def fmt(x, pos):
|
396
|
+
d = num2date(x).isoformat()[:10]
|
397
|
+
# 9 years later
|
398
|
+
d2 = str(int(d[:4]) + 9) + d[4:]
|
399
|
+
if len(self.data.x_points) > 7:
|
400
|
+
return formatter.date(d, "yy") + "–" + formatter.date(d2, "yy")
|
401
|
+
else:
|
402
|
+
return formatter.date(d, "y") + "–" + formatter.date(d2, "yy")
|
403
|
+
self.ax.xaxis.set_major_formatter(fmt)
|
404
|
+
|
380
405
|
elif delta.days > 500:
|
381
406
|
ticks = get_year_ticks(xmin, xmax, max_ticks=self.max_ticks)
|
382
407
|
self.ax.set_xticks(ticks)
|
408
|
+
|
383
409
|
self.ax.xaxis.set_major_formatter(DateFormatter('%Y'))
|
384
410
|
|
385
411
|
else:
|
@@ -667,6 +693,7 @@ class Chart(object):
|
|
667
693
|
'Creator': f"NWCharts {__version__}",
|
668
694
|
}
|
669
695
|
"""
|
696
|
+
|
670
697
|
self._fig.savefig(buf, **args) # , bbox_inches="tight")
|
671
698
|
buf.seek(0)
|
672
699
|
self._storage.save(key, buf, img_format, storage_options)
|
@@ -42,7 +42,10 @@ def get_best_locator(delta, points, interval=None):
|
|
42
42
|
trying to keep the x axis as clean as possible, while still including
|
43
43
|
enough clues for the reader to easily understand the graph.
|
44
44
|
"""
|
45
|
-
if
|
45
|
+
if interval == "decennial":
|
46
|
+
# Set one tick every 10 years
|
47
|
+
return YearLocator(10)
|
48
|
+
elif delta.days > 365 * 150:
|
46
49
|
return YearLocator(100)
|
47
50
|
elif delta.days > 365 * 45:
|
48
51
|
return YearLocator(20)
|
@@ -163,15 +163,21 @@ def outline(color="white", linewidth=3, **kwargs):
|
|
163
163
|
|
164
164
|
def guess_date_interval(data):
|
165
165
|
"""Return a probable interval, e.g. "montly", given current data."""
|
166
|
-
interval = "
|
166
|
+
interval = "decennial"
|
167
167
|
for serie in data:
|
168
168
|
dates = [to_date(x[0]) for x in serie]
|
169
169
|
years = [x.year for x in dates]
|
170
|
+
|
171
|
+
# Are there decades with more than one year?
|
172
|
+
if len(years) > len(set(years)):
|
173
|
+
interval = "yearly"
|
174
|
+
|
170
175
|
months = [x.month for x in dates]
|
171
176
|
yearmonths = [x.strftime("%Y-%m") for x in dates]
|
172
177
|
weeks = [str(x.year) + str(x.isocalendar()[1]) for x in dates]
|
178
|
+
|
173
179
|
if len(years) > len(set(years)):
|
174
|
-
# there
|
180
|
+
# Are there years with more than one point?
|
175
181
|
unique_months = sorted(list(set(months)))
|
176
182
|
if len(unique_months) == 4 \
|
177
183
|
and unique_months[0] + 3 == unique_months[1] \
|
@@ -73,7 +73,8 @@ class SerialChart(Chart):
|
|
73
73
|
self._ymax = val
|
74
74
|
|
75
75
|
def _days_in(self, interval, d=None):
|
76
|
-
"""
|
76
|
+
"""
|
77
|
+
Return number of days in a given period. This is used to set bar widths, so approximate is fine.
|
77
78
|
|
78
79
|
If only interval is given, use a typical number of days.
|
79
80
|
>>>> _days_in(monthly)
|
@@ -83,6 +84,7 @@ class SerialChart(Chart):
|
|
83
84
|
"""
|
84
85
|
if d is None:
|
85
86
|
return {
|
87
|
+
'decennial': 3652,
|
86
88
|
'yearly': 365,
|
87
89
|
'quarterly': 91,
|
88
90
|
'monthly': 30,
|
@@ -109,6 +111,10 @@ class SerialChart(Chart):
|
|
109
111
|
return 7
|
110
112
|
elif interval == "daily":
|
111
113
|
return 1
|
114
|
+
elif interval == "decennial":
|
115
|
+
return (
|
116
|
+
(d + relativedelta(years=10)).replace(day=1, month=1) - d.replace(day=1, month=1)
|
117
|
+
).days
|
112
118
|
|
113
119
|
def _get_annotation_direction(self, index, values):
|
114
120
|
""" Given an index and series of values, provide the estimated best
|
@@ -284,11 +290,14 @@ class SerialChart(Chart):
|
|
284
290
|
|
285
291
|
# add highlight marker
|
286
292
|
if highlight_value:
|
287
|
-
self.ax.plot(
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
293
|
+
self.ax.plot(
|
294
|
+
highlight_date,
|
295
|
+
highlight_value,
|
296
|
+
c=color,
|
297
|
+
marker='o',
|
298
|
+
markersize=5,
|
299
|
+
zorder=zo,
|
300
|
+
)
|
292
301
|
|
293
302
|
elif self.type[i] == "bars":
|
294
303
|
# Put first series on top
|
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: newsworthycharts
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.63.1
|
4
4
|
Summary: Matplotlib wrapper to create charts and publish them on Amazon S3
|
5
5
|
Home-page: https://github.com/jplusplus/newsworthycharts
|
6
|
-
Download-URL: https://github.com/jplusplus/newsworthycharts/archive/1.
|
6
|
+
Download-URL: https://github.com/jplusplus/newsworthycharts/archive/1.63.1.tar.gz
|
7
7
|
Author: Jens Finnäs and Leo Wallentin, J++ Stockholm
|
8
8
|
Author-email: stockholm@jplusplus.org
|
9
9
|
License: MIT
|
@@ -18,11 +18,11 @@ Requires-Dist: PyYAML>=3
|
|
18
18
|
Requires-Dist: adjustText==0.7.3
|
19
19
|
Requires-Dist: numpy>2
|
20
20
|
Requires-Dist: python-dateutil<3,>=2
|
21
|
-
Requires-Dist: Pillow==
|
21
|
+
Requires-Dist: Pillow==11.0.0
|
22
22
|
Requires-Dist: requests>=2.22
|
23
23
|
Requires-Dist: matplotlib-label-lines==0.5.1
|
24
24
|
Requires-Dist: geopandas>=1
|
25
|
-
Requires-Dist: mapclassify==2.
|
25
|
+
Requires-Dist: mapclassify==2.8.1
|
26
26
|
Requires-Dist: puremagic>=1
|
27
27
|
|
28
28
|
This module contains methods for producing graphs and publishing them on Amazon S3, or in the location of your choice.
|
@@ -137,7 +137,7 @@ These settings are available for all chart types:
|
|
137
137
|
- yline = None # A horizontal line across the chart (Matplotlib: axhline)
|
138
138
|
- labels = [] # Optionally one label for each dataset
|
139
139
|
- annotations = [] # Manually added annotations
|
140
|
-
- interval = None # yearly, quarterly, monthly, weekly, daily
|
140
|
+
- interval = None # decennial, yearly, quarterly, monthly, weekly, daily
|
141
141
|
- units = 'number' # number, percent, degrees
|
142
142
|
- show_ticks = True # toggle category names, dates, etc
|
143
143
|
- subtitle = None
|
@@ -154,13 +154,13 @@ These settings are available for all chart types:
|
|
154
154
|
|
155
155
|
**SerialChart**
|
156
156
|
|
157
|
-
- type = 'line' # line|
|
157
|
+
- type = 'line' # line|bars
|
158
158
|
- bar_width = 0.9 # percent of data point width
|
159
159
|
- allow_broken_y_axis = True|False # default depends on chart type
|
160
160
|
- baseline = 0 # The “zero” line. Useful for plotting deviations, e.g. temperatures above/below mean
|
161
161
|
- baseline_annotation = None # A label for the baseline
|
162
162
|
- line_width = None # To override style settings
|
163
|
-
- max_ticks = 10 # Maximum number of ticks on the x axis
|
163
|
+
- max_ticks = 10 # Maximum number of ticks on the x axis. *Only used with yearly|decennial data* (this is yet to be fixed)
|
164
164
|
- ticks = None # Custom ticks on the x axis, as a list of lists or tuples: `[(2013-01-01, "-13"), (2014-01-01, "-14"), (2015-01-01, "-15")]`
|
165
165
|
- ymin = None # Minimum value on y axis. If None, it will be calculated from data
|
166
166
|
- ymax = None # Maximum value on y axis. If None, it will be calculated from data
|
@@ -248,11 +248,20 @@ Roadmap
|
|
248
248
|
- Remove custom charts (add missing api interfaces to Chart class instead)
|
249
249
|
- Remove DataWrapper class (out-of-scope)
|
250
250
|
- Custom month locator with equal-width month bars
|
251
|
-
- Add color-ramp choropleth maps, as an alternative to binning
|
252
251
|
|
253
252
|
Changelog
|
254
253
|
---------
|
255
254
|
|
255
|
+
- 1.63.1
|
256
|
+
|
257
|
+
- Fix version number in
|
258
|
+
|
259
|
+
- 1.63.0
|
260
|
+
|
261
|
+
- Added `interval: decennial` to SerialChart. Will be autodetected if all data points are 10 years apart.
|
262
|
+
- Pillow==11.0.0
|
263
|
+
- mapclassify==2.8.1
|
264
|
+
|
256
265
|
- 1.62.0
|
257
266
|
|
258
267
|
- max_ticks default is now 10 in SerialChart and 7 in ScatterPlot
|
@@ -32,11 +32,11 @@ setup(
|
|
32
32
|
"adjustText==0.7.3",
|
33
33
|
"numpy>2",
|
34
34
|
"python-dateutil>=2,<3",
|
35
|
-
"Pillow==
|
35
|
+
"Pillow==11.0.0",
|
36
36
|
"requests>=2.22",
|
37
37
|
"matplotlib-label-lines==0.5.1",
|
38
38
|
"geopandas>=1",
|
39
|
-
"mapclassify==2.
|
39
|
+
"mapclassify==2.8.1",
|
40
40
|
"puremagic>=1",
|
41
41
|
],
|
42
42
|
setup_requires=["flake8"],
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts/translations/regions.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{newsworthycharts-1.62.0 → newsworthycharts-1.63.1}/newsworthycharts.egg-info/dependency_links.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|