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.
- {newsworthycharts-1.56.0/newsworthycharts.egg-info → newsworthycharts-1.57.1}/PKG-INFO +69 -2
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/README.rst +67 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/__init__.py +1 -1
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/bubblemap.py +0 -1
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/chart.py +0 -10
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/choroplethmap.py +2 -16
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/serialchart.py +23 -6
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1/newsworthycharts.egg-info}/PKG-INFO +69 -2
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts.egg-info/requires.txt +2 -2
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/setup.py +2 -2
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/LICENSE.txt +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/MANIFEST.in +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/categoricalchart.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/custom/__init__.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/custom/climate_cars.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/datawrapper.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/__init__.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/color_fn.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/colors.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/datalist.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/formatter.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/geography.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/locator.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/mimetypes.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/lib/utils.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/map.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/maps/se-4.gpkg +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/maps/se-7.gpkg +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/rangeplot.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/rc/newsworthy +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/scatterplot.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/seasonalchart.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/storage.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/stripechart.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/translations/datawrapper_regions.csv +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/translations/regions.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts/translations/se_municipalities.csv +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts.egg-info/SOURCES.txt +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts.egg-info/dependency_links.txt +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts.egg-info/not-zip-safe +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/newsworthycharts.egg-info/top_level.txt +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/setup.cfg +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_categorical_chart.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_choropleth_maps.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_custom_climate_cars.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_data_list.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_datawrapper.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_main.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_rangeplot.py +0 -0
- {newsworthycharts-1.56.0 → newsworthycharts-1.57.1}/test/test_scatterplot.py +0 -0
- {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.
|
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.
|
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
|
@@ -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
|
-
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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.
|
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.
|
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
|
+
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.
|
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.
|
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.
|
35
|
+
"Pillow==10.3.0",
|
36
36
|
"requests>=2.22",
|
37
37
|
"matplotlib-label-lines==0.5.1",
|
38
38
|
"geopandas==0.14.3",
|
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.56.0 → newsworthycharts-1.57.1}/newsworthycharts/translations/regions.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{newsworthycharts-1.56.0 → newsworthycharts-1.57.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
|