newsworthycharts 1.63.1__py3-none-any.whl → 1.63.3__py3-none-any.whl

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.
@@ -1,4 +1,4 @@
1
- __version__ = "1.63.1"
1
+ __version__ = "1.63.3"
2
2
 
3
3
  from .chart import Chart
4
4
  from .choroplethmap import ChoroplethMap
newsworthycharts/chart.py CHANGED
@@ -486,35 +486,43 @@ class Chart(object):
486
486
  if not self.show_ticks:
487
487
  self.category_axis.set_visible(False)
488
488
  else:
489
- # Increase number of decimals until we have no duplicated y axis ticks,
490
- # unless .decimals explicitly set.
491
- self._fig.canvas.draw()
492
- tl = [x.get_text() for x in self.value_axis.get_ticklabels()]
493
- tl_ = [x for (i, x) in enumerate(tl) if tl[i - 1] != x]
494
489
  autodetect_decimals = self.decimals is None
495
- if len(tl_) < len(tl) and autodetect_decimals:
496
- try_dec = 1
497
- keep_trying = True
498
- while keep_trying:
499
- self.decimals = try_dec
500
- if len(self.data):
501
- self._add_data()
490
+ if autodetect_decimals:
491
+ # Are all numbers integers?
492
+
493
+ def flatten(list_of_lists):
494
+ return [item for sublist in list_of_lists for item in sublist]
495
+
496
+ if "values" in self.data and all([x.is_integer() for x in flatten(self.data.values)]):
497
+ self.decimals = 0
498
+ else:
499
+ # Increase number of decimals until we have no duplicated y axis ticks,
500
+ # unless .decimals explicitly set.
502
501
  self._fig.canvas.draw()
503
502
  tl = [x.get_text() for x in self.value_axis.get_ticklabels()]
504
503
  tl_ = [x for (i, x) in enumerate(tl) if tl[i - 1] != x]
505
- if len(tl) == len(tl_):
506
- keep_trying = False
507
- if try_dec > 2:
508
- keep_trying = False
509
- try_dec += 1
510
- # If we still have duplicates; remove them!
511
- # If we still have duplicates; remove them!
504
+ if len(tl_) < len(tl):
505
+ try_dec = 1
506
+ keep_trying = True
507
+ while keep_trying:
508
+ self.decimals = try_dec
509
+ if len(self.data):
510
+ self._add_data()
511
+ self._fig.canvas.draw()
512
+ tl = [x.get_text() for x in self.value_axis.get_ticklabels()]
513
+ tl_ = [x for (i, x) in enumerate(tl) if tl[i - 1] != x]
514
+ if len(tl) == len(tl_):
515
+ keep_trying = False
516
+ if try_dec > 2:
517
+ keep_trying = False
518
+ try_dec += 1
519
+ # Remove duplicate y ticks (most should be gone as per above)
512
520
  ticks = self.value_axis.get_ticklabels()
513
521
  ticks_ = [x for (i, x) in enumerate(ticks) if ticks[i - 1].get_text() != x.get_text()]
514
522
  if len(ticks_) < len(ticks):
515
523
  y = [float(x._y) for x in ticks_]
516
524
  if self.decimals == 0:
517
- # Recrate with integeres
525
+ # Recrate with integres
518
526
  import math
519
527
  _bottom = min(y)
520
528
  _top = math.ceil(max(y))
@@ -522,6 +530,11 @@ class Chart(object):
522
530
  y = range(_bottom, _top + 1)
523
531
  y = [float(x) for x in y]
524
532
  self.value_axis.set_ticks(y)
533
+ if self.decimals == 0:
534
+ # remove non integer ticks
535
+ y = [float(x._y) for x in ticks]
536
+ y = [x for x in y if x.is_integer()]
537
+ self.value_axis.set_ticks(y)
525
538
 
526
539
  for a in self.annotations:
527
540
  self._annotate_point(a["text"], a["xy"], a["direction"])
@@ -167,9 +167,10 @@ def guess_date_interval(data):
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
+ decades = [x.year // 10 * 10 for x in dates]
170
171
 
171
172
  # Are there decades with more than one year?
172
- if len(years) > len(set(years)):
173
+ if len(set(years)) > len(set(decades)):
173
174
  interval = "yearly"
174
175
 
175
176
  months = [x.month for x in dates]
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: newsworthycharts
3
- Version: 1.63.1
3
+ Version: 1.63.3
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.63.1.tar.gz
6
+ Download-URL: https://github.com/jplusplus/newsworthycharts/archive/1.63.3.tar.gz
7
7
  Author: Jens Finnäs and Leo Wallentin, J++ Stockholm
8
8
  Author-email: stockholm@jplusplus.org
9
9
  License: MIT
@@ -252,6 +252,15 @@ Roadmap
252
252
  Changelog
253
253
  ---------
254
254
 
255
+ - 1.63.3
256
+
257
+ - Fixed bug in decimal auto detection
258
+ - Remove non integer value ticks when decimals are set to 0
259
+
260
+ - 1.63.2
261
+
262
+ - Fixed bug in interval detection in SerialChart, affecting yearly data
263
+
255
264
  - 1.63.1
256
265
 
257
266
  - Fix version number in
@@ -1,7 +1,7 @@
1
- newsworthycharts/__init__.py,sha256=E48LF4oCZ6yGY-iy0QL52s74anipu1QTGh6ym2HH_00,1160
1
+ newsworthycharts/__init__.py,sha256=9VNVfOA2MGy4aVQdkpN7EVvF2P5SKlJF0Q2_X1-4BeM,1160
2
2
  newsworthycharts/bubblemap.py,sha256=nkocWmpiFgfjEuJGAsthjY5X7Q56jXWsZHUGXw4PwgE,2587
3
3
  newsworthycharts/categoricalchart.py,sha256=LwOZ3VbNy9vzvoK0s77AkbfMt4CXVDSAhnsnBInUIrE,14764
4
- newsworthycharts/chart.py,sha256=e118gGQbFpRJZl3SWLhVCBatclG80eFdojrxJn8td5g,31664
4
+ newsworthycharts/chart.py,sha256=DzyqHQ_t-LQVya_FymAfDQWzPLYB4GTk9wFOM95N-7Y,32358
5
5
  newsworthycharts/choroplethmap.py,sha256=bCLf4kcchp1C2djg5AxcOM8BdbaMj0xg7UHrZsDafhI,8013
6
6
  newsworthycharts/datawrapper.py,sha256=RRkAVTpfP4updKxUIBaSmKuBi2RUVPaBRF8HDQhlGGA,11250
7
7
  newsworthycharts/map.py,sha256=c409jEO4L8Yr780sJRC0RchR44roAlgOUDAkuk1SfRg,6057
@@ -21,15 +21,15 @@ newsworthycharts/lib/formatter.py,sha256=GNH43hE0bC17OgiV8LYH3YUrEhm7OJh9XzfSV4H
21
21
  newsworthycharts/lib/geography.py,sha256=K0_teFmuPJwXX7Py-amJB_1YY5_gL2kBYhz1LrRCyTg,584
22
22
  newsworthycharts/lib/locator.py,sha256=rJHdgiA0LASRzdLINhTeU5zOoq1TCMgge4KOBWSagnM,3041
23
23
  newsworthycharts/lib/mimetypes.py,sha256=bL9HtVWbn2Of39LcBt4u4yelkr4bGZiyebq3OfLnfFY,237
24
- newsworthycharts/lib/utils.py,sha256=Io_yBHxUDTXw-9GvsizdSXnYvE_7ZtDKiWpLTAXpHfA,7171
24
+ newsworthycharts/lib/utils.py,sha256=l4SUVB-8lnm3XHqHNo5KgZuZNv_VaFnrH76hrZmDq1s,7231
25
25
  newsworthycharts/maps/se-4.gpkg,sha256=oWw5j7FPVpI0ig67jNDim8qSn5SG8rcHp0014-uTKZM,290816
26
26
  newsworthycharts/maps/se-7.gpkg,sha256=Vmvqudq_ZtgV0sd6TY6kuk7vzqmYZCJmaxtsJ87q2a8,331776
27
27
  newsworthycharts/rc/newsworthy,sha256=vbYTav1w3DmB5tpaaV7Xl5q7TQJsc9eou6pLCoWc2vs,1589
28
28
  newsworthycharts/translations/datawrapper_regions.csv,sha256=fzZcQRX6RFMlNNP8mpgfYNdR3Y0QAlQxDXk8FXTaWWI,9214
29
29
  newsworthycharts/translations/regions.py,sha256=Nv1McQjggD4S3JRu82rDMTG3pqUVR13E5-FBpSYbm98,239
30
30
  newsworthycharts/translations/se_municipalities.csv,sha256=br_mm-IvzQtj_W55_ATREhJ97jWnCweBFlDAVY2EBxA,7098
31
- newsworthycharts-1.63.1.dist-info/LICENSE.txt,sha256=Sq6kGICrehbhC_FolNdXf0djKjTpv3YqjFCIYsxdQN4,1069
32
- newsworthycharts-1.63.1.dist-info/METADATA,sha256=CEKJTndJI0BsR1SUdgyNJMqradS2NTCUQoKf7fRco8w,29326
33
- newsworthycharts-1.63.1.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
34
- newsworthycharts-1.63.1.dist-info/top_level.txt,sha256=dn_kzIj8UgUCMsh1PHdVEQJHVGSsN7Z8YJF-8xXa8n0,17
35
- newsworthycharts-1.63.1.dist-info/RECORD,,
31
+ newsworthycharts-1.63.3.dist-info/LICENSE.txt,sha256=Sq6kGICrehbhC_FolNdXf0djKjTpv3YqjFCIYsxdQN4,1069
32
+ newsworthycharts-1.63.3.dist-info/METADATA,sha256=lqj-Zs5zczMZRivCuochTp2DhjkLlOvzfQ7frn__8E4,29524
33
+ newsworthycharts-1.63.3.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
34
+ newsworthycharts-1.63.3.dist-info/top_level.txt,sha256=dn_kzIj8UgUCMsh1PHdVEQJHVGSsN7Z8YJF-8xXa8n0,17
35
+ newsworthycharts-1.63.3.dist-info/RECORD,,