newsworthycharts 1.56.0__tar.gz → 1.57.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.
Files changed (51) hide show
  1. {newsworthycharts-1.56.0/newsworthycharts.egg-info → newsworthycharts-1.57.1}/PKG-INFO +69 -2
  2. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/README.rst +67 -0
  3. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/__init__.py +1 -1
  4. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/bubblemap.py +0 -1
  5. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/chart.py +0 -10
  6. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/choroplethmap.py +2 -16
  7. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/serialchart.py +23 -6
  8. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1/newsworthycharts.egg-info}/PKG-INFO +69 -2
  9. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts.egg-info/requires.txt +2 -2
  10. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/setup.py +2 -2
  11. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/LICENSE.txt +0 -0
  12. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/MANIFEST.in +0 -0
  13. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/categoricalchart.py +0 -0
  14. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/custom/__init__.py +0 -0
  15. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/custom/climate_cars.py +0 -0
  16. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/datawrapper.py +0 -0
  17. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/__init__.py +0 -0
  18. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/color_fn.py +0 -0
  19. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/colors.py +0 -0
  20. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/datalist.py +0 -0
  21. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/formatter.py +0 -0
  22. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/geography.py +0 -0
  23. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/locator.py +0 -0
  24. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/mimetypes.py +0 -0
  25. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/utils.py +0 -0
  26. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/map.py +0 -0
  27. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/maps/se-4.gpkg +0 -0
  28. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/maps/se-7.gpkg +0 -0
  29. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/rangeplot.py +0 -0
  30. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/rc/newsworthy +0 -0
  31. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/scatterplot.py +0 -0
  32. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/seasonalchart.py +0 -0
  33. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/storage.py +0 -0
  34. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/stripechart.py +0 -0
  35. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/translations/datawrapper_regions.csv +0 -0
  36. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/translations/regions.py +0 -0
  37. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/translations/se_municipalities.csv +0 -0
  38. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts.egg-info/SOURCES.txt +0 -0
  39. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts.egg-info/dependency_links.txt +0 -0
  40. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts.egg-info/not-zip-safe +0 -0
  41. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts.egg-info/top_level.txt +0 -0
  42. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/setup.cfg +0 -0
  43. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_categorical_chart.py +0 -0
  44. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_choropleth_maps.py +0 -0
  45. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_custom_climate_cars.py +0 -0
  46. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_data_list.py +0 -0
  47. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_datawrapper.py +0 -0
  48. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_main.py +0 -0
  49. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_rangeplot.py +0 -0
  50. {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_scatterplot.py +0 -0
  51. {newsworthycharts-1.56.0 → newsworthycharts-1.57.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.56.0
3
+ Version: 1.57.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.56.0.tar.gz
6
+ Download-URL: https://github.com/jplusplus/newsworthycharts/archive/1.57.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
@@ -115,9 +115,12 @@ Options
115
115
 
116
116
  **Chart**
117
117
 
118
+ These settings are available for all chart types:
119
+
118
120
  - data: A list of datasets
119
121
  - annotate_trend = True # Print out values at points on trendline?
120
122
  - trendline = [] # List of x positions, or data points
123
+ - yline = None # A horizontal line across the chart (Matplotlib: axhline)
121
124
  - labels = [] # Optionally one label for each dataset
122
125
  - annotations = [] # Manually added annotations
123
126
  - interval = None # yearly|quarterly|monthly|weekly|daily
@@ -133,6 +136,59 @@ Options
133
136
  - logo = None # Path to image that will be embedded in the caption area. Can also be set though a style property
134
137
  - color_fn = None # Custom coloring function
135
138
 
139
+ **SerialChart**
140
+
141
+ - type = 'line' # line|bar|stacked_bar
142
+ - bar_width = 0.9 # percent of data point width
143
+ - allow_broken_y_axis = True|False # default depends on chart type
144
+ - baseline = 0 # The “zero” line. Useful for plotting deviations, e.g. temperatures above/below mean
145
+ - baseline_annotation = None # A label for the baseline
146
+ - line_width = None # To override style settings
147
+ - max_ticks = 7 # Maximum number of ticks on the x axis
148
+ - 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")]`
149
+ - ymin = None # Minimum value on y axis. If None, it will be calculated from data
150
+ - ymax = None # Maximum value on y axis. If None, it will be calculated from data
151
+ - colors = None # A list of colors, each correspoding to one dataseries. Default behaviour is to use the style colors
152
+ - value_labels = False # Print out values at points on line?
153
+ - highlighted_x_ranges = [] # List of tuples with start and end of highlighted areas
154
+ - label_placement = "legend" # legend|inline|outside
155
+ - color_labels = None # A dictionary of label/color, to override style colors
156
+
157
+ **SeasonalChart**
158
+
159
+ **BubbleMap**
160
+
161
+ - bubble_size = 1 # The size of the bubbles
162
+
163
+ **CategoricalChart**
164
+
165
+ - bar_orientation = "horizontal" # [horizontal|vertical]
166
+ - annotation_rotation = 0
167
+ - stacked = False
168
+ - legend = True
169
+ - colors = None
170
+
171
+ **CategoricalChartWithReference**
172
+
173
+ **Map**
174
+
175
+ - bins = 9 # Number of bins for continuous data
176
+ - binning_method = "natural_breaks"
177
+ - colors = None
178
+ - color_ramp = "YlOrRd"
179
+ - categorical = False # If True, the map will be colored by category. If False, it will be colored by a continuous value
180
+ - base_map = None
181
+ - missing_label = None # Add a label for no data
182
+
183
+ **ChoroplethMap**
184
+
185
+ **ProgressChart**
186
+
187
+ **RangePlot**
188
+
189
+ **ScatterPlot**
190
+
191
+ **StripeChart**
136
192
 
137
193
  Developing
138
194
  ----------
@@ -168,6 +224,17 @@ Roadmap
168
224
  Changelog
169
225
  ---------
170
226
 
227
+ - 1.57.1
228
+
229
+ - Fix missing outline in choropleth maps
230
+ - matplotlib==3.8.4; Pillow==10.3.0
231
+
232
+ - 1.57.0
233
+
234
+ - Changed z-ordering so that line are always on top of bars, and ylines/zero lines are behind lines but in front of bars
235
+ - Avoid using the same color for trendline and lines
236
+ - `yline` was moved to the SerialChart class, where it makes sense.
237
+
171
238
  - 1.56.0
172
239
 
173
240
  - Reverted trendline behaviour to 1.54
@@ -102,9 +102,12 @@ Options
102
102
 
103
103
  **Chart**
104
104
 
105
+ These settings are available for all chart types:
106
+
105
107
  - data: A list of datasets
106
108
  - annotate_trend = True # Print out values at points on trendline?
107
109
  - trendline = [] # List of x positions, or data points
110
+ - yline = None # A horizontal line across the chart (Matplotlib: axhline)
108
111
  - labels = [] # Optionally one label for each dataset
109
112
  - annotations = [] # Manually added annotations
110
113
  - interval = None # yearly|quarterly|monthly|weekly|daily
@@ -120,6 +123,59 @@ Options
120
123
  - logo = None # Path to image that will be embedded in the caption area. Can also be set though a style property
121
124
  - color_fn = None # Custom coloring function
122
125
 
126
+ **SerialChart**
127
+
128
+ - type = 'line' # line|bar|stacked_bar
129
+ - bar_width = 0.9 # percent of data point width
130
+ - allow_broken_y_axis = True|False # default depends on chart type
131
+ - baseline = 0 # The “zero” line. Useful for plotting deviations, e.g. temperatures above/below mean
132
+ - baseline_annotation = None # A label for the baseline
133
+ - line_width = None # To override style settings
134
+ - max_ticks = 7 # Maximum number of ticks on the x axis
135
+ - 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")]`
136
+ - ymin = None # Minimum value on y axis. If None, it will be calculated from data
137
+ - ymax = None # Maximum value on y axis. If None, it will be calculated from data
138
+ - colors = None # A list of colors, each correspoding to one dataseries. Default behaviour is to use the style colors
139
+ - value_labels = False # Print out values at points on line?
140
+ - highlighted_x_ranges = [] # List of tuples with start and end of highlighted areas
141
+ - label_placement = "legend" # legend|inline|outside
142
+ - color_labels = None # A dictionary of label/color, to override style colors
143
+
144
+ **SeasonalChart**
145
+
146
+ **BubbleMap**
147
+
148
+ - bubble_size = 1 # The size of the bubbles
149
+
150
+ **CategoricalChart**
151
+
152
+ - bar_orientation = "horizontal" # [horizontal|vertical]
153
+ - annotation_rotation = 0
154
+ - stacked = False
155
+ - legend = True
156
+ - colors = None
157
+
158
+ **CategoricalChartWithReference**
159
+
160
+ **Map**
161
+
162
+ - bins = 9 # Number of bins for continuous data
163
+ - binning_method = "natural_breaks"
164
+ - colors = None
165
+ - color_ramp = "YlOrRd"
166
+ - categorical = False # If True, the map will be colored by category. If False, it will be colored by a continuous value
167
+ - base_map = None
168
+ - missing_label = None # Add a label for no data
169
+
170
+ **ChoroplethMap**
171
+
172
+ **ProgressChart**
173
+
174
+ **RangePlot**
175
+
176
+ **ScatterPlot**
177
+
178
+ **StripeChart**
123
179
 
124
180
  Developing
125
181
  ----------
@@ -155,6 +211,17 @@ Roadmap
155
211
  Changelog
156
212
  ---------
157
213
 
214
+ - 1.57.1
215
+
216
+ - Fix missing outline in choropleth maps
217
+ - matplotlib==3.8.4; Pillow==10.3.0
218
+
219
+ - 1.57.0
220
+
221
+ - Changed z-ordering so that line are always on top of bars, and ylines/zero lines are behind lines but in front of bars
222
+ - Avoid using the same color for trendline and lines
223
+ - `yline` was moved to the SerialChart class, where it makes sense.
224
+
158
225
  - 1.56.0
159
226
 
160
227
  - Reverted trendline behaviour to 1.54
@@ -1,4 +1,4 @@
1
- __version__ = "1.56.0"
1
+ __version__ = "1.57.1"
2
2
 
3
3
  from .chart import Chart
4
4
  from .choroplethmap import ChoroplethMap
@@ -23,7 +23,6 @@ class BubbleMap(Map):
23
23
  def __init__(self, *args, **kwargs):
24
24
  super(BubbleMap, self).__init__(*args, **kwargs)
25
25
  self.bubble_size = kwargs.get("bubble_size", 1)
26
- print(self.bubble_size)
27
26
 
28
27
  def _add_data(self):
29
28
 
@@ -432,16 +432,6 @@ class Chart(object):
432
432
  if len(self.data):
433
433
  self._add_data()
434
434
 
435
- if (self.yline):
436
- self.ax.axhline(
437
- y=self.yline,
438
- color=self._nwc_style["neutral_color"],
439
- linewidth=0.8,
440
- xmin=0,
441
- xmax=1,
442
- clip_on=False,
443
- )
444
-
445
435
  # Calculate size in inches
446
436
  # Until 1.45 we did this on init, but now we'd like to enable dynamic heights
447
437
  if self.requested_height is None:
@@ -112,27 +112,13 @@ class ChoroplethMap(Map):
112
112
 
113
113
  fig = df.plot(ax=self.ax, **args)
114
114
  # Add outer edge
115
- # unary_union does not work with Multipolygons
116
- mp = MultiPolygon([g for g in df.explode(index_parts=True).geometry])
117
- gpd.GeoSeries(mp.boundary).plot(
115
+ gpd.GeoSeries(df.unary_union).plot(
118
116
  ax=self.ax,
119
117
  edgecolor="lightgrey",
120
118
  linewidth=0.2,
119
+ facecolor="none",
121
120
  color="none",
122
121
  )
123
- """
124
- unary = df.unary_union
125
- if unary.geom_type == "Polygon":
126
- # We don't know in advance if unary_union will produce a polugon or a multipolygon
127
- unary = MultiPolygon([unary])
128
- for uu in unary.geoms:
129
- gpd.GeoSeries(uu).plot(
130
- ax=self.ax,
131
- edgecolor="lightgrey",
132
- linewidth=0.2,
133
- facecolor="none",
134
- )
135
- """
136
122
  self.ax.axis("off")
137
123
 
138
124
  # Format numbers in legend
@@ -216,6 +216,7 @@ class SerialChart(Chart):
216
216
  if self.type[i] == "line":
217
217
  # Put first series on top
218
218
  zo = len(series) - i + 1
219
+ zo += 10 # Make sure lines are on top of bars
219
220
 
220
221
  if self.line_width is None:
221
222
  lw = self._nwc_style.get("lines.linewidth", 2)
@@ -243,7 +244,7 @@ class SerialChart(Chart):
243
244
  self.ax.plot(dates[0], values[0],
244
245
  c=color,
245
246
  marker='.',
246
- zorder=2)
247
+ zorder=12)
247
248
  elif num_values > 1:
248
249
  for j, v in enumerate(values):
249
250
  def nullish(val):
@@ -260,7 +261,7 @@ class SerialChart(Chart):
260
261
  self.ax.plot(dates[j], v,
261
262
  c=color,
262
263
  marker='.',
263
- zorder=2)
264
+ zorder=12)
264
265
 
265
266
  if len(self.labels) > i:
266
267
  line.set_label(self.labels[i])
@@ -449,7 +450,7 @@ class SerialChart(Chart):
449
450
  y=self.baseline,
450
451
  linewidth=1,
451
452
  color="#444444",
452
- zorder=4,
453
+ zorder=6,
453
454
  linestyle="--" if self.baseline else "-"
454
455
  )
455
456
  if self.baseline_annotation:
@@ -530,11 +531,11 @@ class SerialChart(Chart):
530
531
  if len(self.labels) > 1:
531
532
  if self.label_placement == "legend":
532
533
  _ = self.ax.legend(loc="best")
533
- _.set(zorder=10)
534
+ _.set(zorder=20)
534
535
  elif self.label_placement == "outside":
535
536
  self.ax.legend(bbox_to_anchor=(0, 1, 1, 0), loc="lower right")
536
537
  elif self.label_placement == "inline":
537
- labelLines(self.ax.get_lines(), align=False, zorder=3, outline_width=4, fontweight="bold")
538
+ labelLines(self.ax.get_lines(), align=False, zorder=13, outline_width=4, fontweight="bold")
538
539
 
539
540
  # Trend/change line
540
541
  if self.trendline:
@@ -551,6 +552,10 @@ class SerialChart(Chart):
551
552
  # Use neutral color for trendline
552
553
  trendline_color = self._nwc_style["neutral_color"]
553
554
 
555
+ if len(self.data) == 1 and self.type[0] == "line":
556
+ # If we have a single line,
557
+ # avoid using the same color for trendline
558
+ trendline_color = self._nwc_style["neutral_color"]
554
559
  # Check if we have a list of single (x-) values, or data points
555
560
  if all(len(x) == 2 for x in self.trendline):
556
561
  # data points
@@ -565,7 +570,7 @@ class SerialChart(Chart):
565
570
  marker = 'o'
566
571
 
567
572
  self.ax.plot(dates, values,
568
- color=trendline_color, zorder=4,
573
+ color=trendline_color, zorder=14,
569
574
  linewidth=1,
570
575
  marker=marker, linestyle='dashed')
571
576
 
@@ -589,6 +594,18 @@ class SerialChart(Chart):
589
594
  if len(value_label_elems) > 1:
590
595
  self._adust_texts_vertically(value_label_elems, ha="center")
591
596
 
597
+ # yline
598
+ if (self.yline):
599
+ self.ax.axhline(
600
+ y=self.yline,
601
+ color=self._nwc_style["neutral_color"],
602
+ linewidth=0.8,
603
+ xmin=0,
604
+ xmax=1,
605
+ clip_on=False,
606
+ zorder=6,
607
+ )
608
+
592
609
  def _adust_texts_vertically(self, elements, ha="left"):
593
610
  if len(elements) == 2:
594
611
  # Hack: check for overlap and adjust labels only
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: newsworthycharts
3
- Version: 1.56.0
3
+ Version: 1.57.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.56.0.tar.gz
6
+ Download-URL: https://github.com/jplusplus/newsworthycharts/archive/1.57.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
@@ -115,9 +115,12 @@ Options
115
115
 
116
116
  **Chart**
117
117
 
118
+ These settings are available for all chart types:
119
+
118
120
  - data: A list of datasets
119
121
  - annotate_trend = True # Print out values at points on trendline?
120
122
  - trendline = [] # List of x positions, or data points
123
+ - yline = None # A horizontal line across the chart (Matplotlib: axhline)
121
124
  - labels = [] # Optionally one label for each dataset
122
125
  - annotations = [] # Manually added annotations
123
126
  - interval = None # yearly|quarterly|monthly|weekly|daily
@@ -133,6 +136,59 @@ Options
133
136
  - logo = None # Path to image that will be embedded in the caption area. Can also be set though a style property
134
137
  - color_fn = None # Custom coloring function
135
138
 
139
+ **SerialChart**
140
+
141
+ - type = 'line' # line|bar|stacked_bar
142
+ - bar_width = 0.9 # percent of data point width
143
+ - allow_broken_y_axis = True|False # default depends on chart type
144
+ - baseline = 0 # The “zero” line. Useful for plotting deviations, e.g. temperatures above/below mean
145
+ - baseline_annotation = None # A label for the baseline
146
+ - line_width = None # To override style settings
147
+ - max_ticks = 7 # Maximum number of ticks on the x axis
148
+ - 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")]`
149
+ - ymin = None # Minimum value on y axis. If None, it will be calculated from data
150
+ - ymax = None # Maximum value on y axis. If None, it will be calculated from data
151
+ - colors = None # A list of colors, each correspoding to one dataseries. Default behaviour is to use the style colors
152
+ - value_labels = False # Print out values at points on line?
153
+ - highlighted_x_ranges = [] # List of tuples with start and end of highlighted areas
154
+ - label_placement = "legend" # legend|inline|outside
155
+ - color_labels = None # A dictionary of label/color, to override style colors
156
+
157
+ **SeasonalChart**
158
+
159
+ **BubbleMap**
160
+
161
+ - bubble_size = 1 # The size of the bubbles
162
+
163
+ **CategoricalChart**
164
+
165
+ - bar_orientation = "horizontal" # [horizontal|vertical]
166
+ - annotation_rotation = 0
167
+ - stacked = False
168
+ - legend = True
169
+ - colors = None
170
+
171
+ **CategoricalChartWithReference**
172
+
173
+ **Map**
174
+
175
+ - bins = 9 # Number of bins for continuous data
176
+ - binning_method = "natural_breaks"
177
+ - colors = None
178
+ - color_ramp = "YlOrRd"
179
+ - categorical = False # If True, the map will be colored by category. If False, it will be colored by a continuous value
180
+ - base_map = None
181
+ - missing_label = None # Add a label for no data
182
+
183
+ **ChoroplethMap**
184
+
185
+ **ProgressChart**
186
+
187
+ **RangePlot**
188
+
189
+ **ScatterPlot**
190
+
191
+ **StripeChart**
136
192
 
137
193
  Developing
138
194
  ----------
@@ -168,6 +224,17 @@ Roadmap
168
224
  Changelog
169
225
  ---------
170
226
 
227
+ - 1.57.1
228
+
229
+ - Fix missing outline in choropleth maps
230
+ - matplotlib==3.8.4; Pillow==10.3.0
231
+
232
+ - 1.57.0
233
+
234
+ - Changed z-ordering so that line are always on top of bars, and ylines/zero lines are behind lines but in front of bars
235
+ - Avoid using the same color for trendline and lines
236
+ - `yline` was moved to the SerialChart class, where it makes sense.
237
+
171
238
  - 1.56.0
172
239
 
173
240
  - Reverted trendline behaviour to 1.54
@@ -1,5 +1,5 @@
1
1
  Babel<3,>=2.14.0
2
- Pillow==10.2.0
2
+ Pillow==10.3.0
3
3
  PyYAML>=3
4
4
  adjustText==0.7.3
5
5
  boto3>=1.26
@@ -7,7 +7,7 @@ geopandas==0.14.3
7
7
  langcodes>=3.3
8
8
  mapclassify==2.6.1
9
9
  matplotlib-label-lines==0.5.1
10
- matplotlib==3.8.3
10
+ matplotlib==3.8.4
11
11
  numpy<2,>=1.21.0
12
12
  python-dateutil<3,>=2
13
13
  requests>=2.22
@@ -25,14 +25,14 @@ setup(
25
25
  python_requires='>=3.9',
26
26
  install_requires=[
27
27
  "boto3>=1.26",
28
- "matplotlib==3.8.3",
28
+ "matplotlib==3.8.4",
29
29
  "langcodes>=3.3",
30
30
  "Babel>=2.14.0,<3",
31
31
  "PyYAML>=3",
32
32
  "adjustText==0.7.3",
33
33
  "numpy>=1.21.0,<2",
34
34
  "python-dateutil>=2,<3",
35
- "Pillow==10.2.0",
35
+ "Pillow==10.3.0",
36
36
  "requests>=2.22",
37
37
  "matplotlib-label-lines==0.5.1",
38
38
  "geopandas==0.14.3",