newsworthycharts 1.61.0__tar.gz → 1.61.2__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.61.0/newsworthycharts.egg-info → newsworthycharts-1.61.2}/PKG-INFO +12 -3
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/README.rst +10 -1
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/__init__.py +1 -1
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/chart.py +2 -2
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/serialchart.py +27 -9
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2/newsworthycharts.egg-info}/PKG-INFO +12 -3
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/LICENSE.txt +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/MANIFEST.in +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/bubblemap.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/categoricalchart.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/choroplethmap.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/custom/__init__.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/custom/climate_cars.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/datawrapper.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/lib/__init__.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/lib/color_fn.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/lib/colors.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/lib/datalist.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/lib/formatter.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/lib/geography.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/lib/locator.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/lib/mimetypes.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/lib/utils.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/map.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/maps/se-4.gpkg +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/maps/se-7.gpkg +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/rangeplot.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/rc/newsworthy +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/scatterplot.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/seasonalchart.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/storage.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/stripechart.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/translations/datawrapper_regions.csv +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/translations/regions.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/translations/se_municipalities.csv +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts.egg-info/SOURCES.txt +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts.egg-info/dependency_links.txt +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts.egg-info/not-zip-safe +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts.egg-info/requires.txt +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts.egg-info/top_level.txt +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/setup.cfg +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/setup.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/test/test_categorical_chart.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/test/test_choropleth_maps.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/test/test_custom_climate_cars.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/test/test_data_list.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/test/test_datawrapper.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/test/test_main.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/test/test_rangeplot.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/test/test_scatterplot.py +0 -0
- {newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/test/test_serial_chart.py +0 -0
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: newsworthycharts
|
3
|
-
Version: 1.61.
|
3
|
+
Version: 1.61.2
|
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.61.
|
6
|
+
Download-URL: https://github.com/jplusplus/newsworthycharts/archive/1.61.2.tar.gz
|
7
7
|
Author: Jens Finnäs and Leo Wallentin, J++ Stockholm
|
8
8
|
Author-email: stockholm@jplusplus.org
|
9
9
|
License: MIT
|
@@ -150,6 +150,7 @@ These settings are available for all chart types:
|
|
150
150
|
- decimals = None # None means automatically chose the best number
|
151
151
|
- logo = None # Path to image that will be embedded in the caption area. Can also be set though a style property
|
152
152
|
- color_fn = None # Custom coloring function
|
153
|
+
- legend_title = None # Title for the legend
|
153
154
|
|
154
155
|
**SerialChart**
|
155
156
|
|
@@ -167,7 +168,7 @@ These settings are available for all chart types:
|
|
167
168
|
- value_labels = False # Print out values at points on line?
|
168
169
|
- highlighted_x_ranges = [] # List of tuples with start and end of highlighted areas
|
169
170
|
- x_range_labels = [] # List of labels for highlighted areas
|
170
|
-
- label_placement = "legend" # legend|inline|outside
|
171
|
+
- label_placement = "legend" # legend|inline|outside|line
|
171
172
|
- color_labels = None # A dictionary of label/color, to override style colors
|
172
173
|
|
173
174
|
**SeasonalChart**
|
@@ -252,6 +253,14 @@ Roadmap
|
|
252
253
|
Changelog
|
253
254
|
---------
|
254
255
|
|
256
|
+
- 1.61.2
|
257
|
+
|
258
|
+
- Remove horizontal line between bars in stacked bar charts
|
259
|
+
|
260
|
+
- 1.61.1
|
261
|
+
|
262
|
+
- Improved handling of label_placement = "outside" in SerialChart
|
263
|
+
|
255
264
|
- 1.61.0
|
256
265
|
|
257
266
|
- Added non-binned color ramp support to ChoroplethMap, with `use_bins=False`
|
@@ -123,6 +123,7 @@ These settings are available for all chart types:
|
|
123
123
|
- decimals = None # None means automatically chose the best number
|
124
124
|
- logo = None # Path to image that will be embedded in the caption area. Can also be set though a style property
|
125
125
|
- color_fn = None # Custom coloring function
|
126
|
+
- legend_title = None # Title for the legend
|
126
127
|
|
127
128
|
**SerialChart**
|
128
129
|
|
@@ -140,7 +141,7 @@ These settings are available for all chart types:
|
|
140
141
|
- value_labels = False # Print out values at points on line?
|
141
142
|
- highlighted_x_ranges = [] # List of tuples with start and end of highlighted areas
|
142
143
|
- x_range_labels = [] # List of labels for highlighted areas
|
143
|
-
- label_placement = "legend" # legend|inline|outside
|
144
|
+
- label_placement = "legend" # legend|inline|outside|line
|
144
145
|
- color_labels = None # A dictionary of label/color, to override style colors
|
145
146
|
|
146
147
|
**SeasonalChart**
|
@@ -225,6 +226,14 @@ Roadmap
|
|
225
226
|
Changelog
|
226
227
|
---------
|
227
228
|
|
229
|
+
- 1.61.2
|
230
|
+
|
231
|
+
- Remove horizontal line between bars in stacked bar charts
|
232
|
+
|
233
|
+
- 1.61.1
|
234
|
+
|
235
|
+
- Improved handling of label_placement = "outside" in SerialChart
|
236
|
+
|
228
237
|
- 1.61.0
|
229
238
|
|
230
239
|
- Added non-binned color ramp support to ChoroplethMap, with `use_bins=False`
|
@@ -667,7 +667,7 @@ class Chart(object):
|
|
667
667
|
'Creator': f"NWCharts {__version__}",
|
668
668
|
}
|
669
669
|
"""
|
670
|
-
self._fig.savefig(buf, **args)
|
670
|
+
self._fig.savefig(buf, **args) # , bbox_inches="tight")
|
671
671
|
buf.seek(0)
|
672
672
|
self._storage.save(key, buf, img_format, storage_options)
|
673
673
|
|
@@ -716,7 +716,7 @@ class Chart(object):
|
|
716
716
|
'Creator': f"NWCharts {__version__}",
|
717
717
|
}
|
718
718
|
"""
|
719
|
-
self._fig.savefig(buf, **args)
|
719
|
+
self._fig.savefig(buf, **args) # bbox_inches="tight")
|
720
720
|
buf.seek(0)
|
721
721
|
self._storage.save(key, buf, file_format, storage_options)
|
722
722
|
|
@@ -46,7 +46,7 @@ class SerialChart(Chart):
|
|
46
46
|
self.colors = None
|
47
47
|
|
48
48
|
# Optional: where to place series label
|
49
|
-
self.label_placement = "legend" # legend|inline|outside
|
49
|
+
self.label_placement = "legend" # legend|inline|outside|line
|
50
50
|
|
51
51
|
# Optional: annotate each point with a value label
|
52
52
|
self.value_labels = False
|
@@ -194,6 +194,8 @@ class SerialChart(Chart):
|
|
194
194
|
line_label_elems = []
|
195
195
|
value_label_elems = []
|
196
196
|
|
197
|
+
bar_elems = []
|
198
|
+
|
197
199
|
for i, serie in enumerate(series):
|
198
200
|
|
199
201
|
values = np.array(serie_values[i], dtype=float)
|
@@ -352,13 +354,13 @@ class SerialChart(Chart):
|
|
352
354
|
width=bar_widths,
|
353
355
|
zorder=zo,
|
354
356
|
)
|
355
|
-
if len(dates) < 100:
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
357
|
+
# if len(dates) < 100:
|
358
|
+
# # FIXME: This complements the bar_width hack above
|
359
|
+
# # For some charts edges give better results (n_bars ~50?)
|
360
|
+
# # This should be better tested, and implemented in a
|
361
|
+
# # more robust way
|
362
|
+
# bar_kwargs["edgecolor"] = "white"
|
363
|
+
# bar_kwargs["linewidth"] = 0 # 1
|
362
364
|
|
363
365
|
if is_stacked and i > 0:
|
364
366
|
if self.baseline != 0:
|
@@ -378,6 +380,7 @@ class SerialChart(Chart):
|
|
378
380
|
bar_kwargs["bottom"] = self.baseline
|
379
381
|
|
380
382
|
bars = self.ax.bar(dates, values, **bar_kwargs)
|
383
|
+
bar_elems.append(bars)
|
381
384
|
|
382
385
|
if len(self.labels) > i:
|
383
386
|
bars.set_label(self.labels[i])
|
@@ -440,6 +443,16 @@ class SerialChart(Chart):
|
|
440
443
|
continue
|
441
444
|
self._annotate_point(value_label, xy, direction=dir)
|
442
445
|
|
446
|
+
# Add some padding around bars, but only left/right to avoid lines in stacked bars
|
447
|
+
if len(dates) < 100:
|
448
|
+
for bars in bar_elems:
|
449
|
+
# for container in self.ax.containers:
|
450
|
+
for bar in bars:
|
451
|
+
x, y = bar.get_xy()
|
452
|
+
w, h = bar.get_width(), bar.get_height()
|
453
|
+
self.ax.plot([x + w, x + w], [y, y + h], color='white', lw=1, zorder=zo + 1)
|
454
|
+
self.ax.plot([x, x], [y, y + h], color='white', lw=1, zorder=zo + 1)
|
455
|
+
|
443
456
|
# Add background highlights
|
444
457
|
for (x0, x1) in self.highlighted_x_ranges:
|
445
458
|
x0 = to_date(x0)
|
@@ -549,7 +562,12 @@ class SerialChart(Chart):
|
|
549
562
|
_ = self.ax.legend(loc="best")
|
550
563
|
_.set(zorder=20)
|
551
564
|
elif self.label_placement == "outside":
|
552
|
-
|
565
|
+
# mpl 3.7 has loc=outside, but it will lead to overlaps with titles
|
566
|
+
# also, has to be set on the figure, causing image size to change
|
567
|
+
_ = self.ax.legend(bbox_to_anchor=(1.04, 1), loc="upper left")
|
568
|
+
# self._fig.subplots_adjust(right=0.8)
|
569
|
+
# self._fig.tight_layout()
|
570
|
+
_.set(zorder=20)
|
553
571
|
elif self.label_placement == "inline":
|
554
572
|
labelLines(self.ax.get_lines(), align=False, zorder=13, outline_width=4, fontweight="bold")
|
555
573
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: newsworthycharts
|
3
|
-
Version: 1.61.
|
3
|
+
Version: 1.61.2
|
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.61.
|
6
|
+
Download-URL: https://github.com/jplusplus/newsworthycharts/archive/1.61.2.tar.gz
|
7
7
|
Author: Jens Finnäs and Leo Wallentin, J++ Stockholm
|
8
8
|
Author-email: stockholm@jplusplus.org
|
9
9
|
License: MIT
|
@@ -150,6 +150,7 @@ These settings are available for all chart types:
|
|
150
150
|
- decimals = None # None means automatically chose the best number
|
151
151
|
- logo = None # Path to image that will be embedded in the caption area. Can also be set though a style property
|
152
152
|
- color_fn = None # Custom coloring function
|
153
|
+
- legend_title = None # Title for the legend
|
153
154
|
|
154
155
|
**SerialChart**
|
155
156
|
|
@@ -167,7 +168,7 @@ These settings are available for all chart types:
|
|
167
168
|
- value_labels = False # Print out values at points on line?
|
168
169
|
- highlighted_x_ranges = [] # List of tuples with start and end of highlighted areas
|
169
170
|
- x_range_labels = [] # List of labels for highlighted areas
|
170
|
-
- label_placement = "legend" # legend|inline|outside
|
171
|
+
- label_placement = "legend" # legend|inline|outside|line
|
171
172
|
- color_labels = None # A dictionary of label/color, to override style colors
|
172
173
|
|
173
174
|
**SeasonalChart**
|
@@ -252,6 +253,14 @@ Roadmap
|
|
252
253
|
Changelog
|
253
254
|
---------
|
254
255
|
|
256
|
+
- 1.61.2
|
257
|
+
|
258
|
+
- Remove horizontal line between bars in stacked bar charts
|
259
|
+
|
260
|
+
- 1.61.1
|
261
|
+
|
262
|
+
- Improved handling of label_placement = "outside" in SerialChart
|
263
|
+
|
255
264
|
- 1.61.0
|
256
265
|
|
257
266
|
- Added non-binned color ramp support to ChoroplethMap, with `use_bins=False`
|
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
|
File without changes
|
File without changes
|
{newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/newsworthycharts/translations/regions.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{newsworthycharts-1.61.0 → newsworthycharts-1.61.2}/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
|
File without changes
|
File without changes
|