8000 Fix log contours when using default levels · matplotlib/matplotlib@d307114 · GitHub
[go: up one dir, main page]

Skip to content

Commit d307114

Browse files
committed
Fix log contours when using default levels
1 parent 12ce07f commit d307114

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

lib/matplotlib/contour.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -964,7 +964,7 @@ def changed(self):
964964
label.set_color(self.labelMappable.to_rgba(cv))
965965
super().changed()
966966

967-
def _autolev(self, N):
967+
def _autolev(self, N, *, using_default):
968968
"""
969969
Select contour levels to span the data.
970970
@@ -981,7 +981,12 @@ def _autolev(self, N):
981981
"""
982982
if self.locator is None:
983983
if self.logscale:
984-
self.locator = ticker.LogLocator(numticks=N)
984+
if using_default:
985+
# Let log locator choose instead of using hard coded value
986+
# set in self._process_contour_level_args()
987+
self.locator = ticker.LogLocator()
988+
else:
989+
self.locator = ticker.LogLocator(numticks=N)
985990
else:
986991
self.locator = ticker.MaxNLocator(N + 1, min_n_ticks=1)
987992

@@ -1024,8 +1029,9 @@ def _process_contour_level_args(self, args, z_dtype):
10241029
levels_arg = 7 # Default, hard-wired.
10251030
else:
10261031
levels_arg = self.levels
1032+
10271033
if isinstance(levels_arg, Integral):
1028-
self.levels = self._autolev(levels_arg)
1034+
self.levels = self._autolev(levels_arg, using_default=self.levels is None)
10291035
else:
10301036
self.levels = np.asarray(levels_arg, np.float64)
10311037
if self.filled and len(self.levels) < 2:

0 commit comments

Comments
 (0)
0