#37469 BUG: Fix for #37454: allow reversed axis when plotting with TimedeltaIndex

Merged Thomas Heavey theavey
Coverage Reach
core/arrays/sparse/array.py core/arrays/sparse/dtype.py core/arrays/sparse/accessor.py core/arrays/sparse/scipy_sparse.py core/arrays/sparse/__init__.py core/arrays/categorical.py core/arrays/datetimes.py core/arrays/datetimelike.py core/arrays/interval.py core/arrays/timedeltas.py core/arrays/period.py core/arrays/integer.py core/arrays/boolean.py core/arrays/floating.py core/arrays/base.py core/arrays/numpy_.py core/arrays/string_.py core/arrays/masked.py core/arrays/_mixins.py core/arrays/_arrow_utils.py core/arrays/_ranges.py core/arrays/__init__.py core/indexes/base.py core/indexes/multi.py core/indexes/interval.py core/indexes/datetimelike.py core/indexes/range.py core/indexes/datetimes.py core/indexes/period.py core/indexes/category.py core/indexes/numeric.py core/indexes/extension.py core/indexes/accessors.py core/indexes/api.py core/indexes/timedeltas.py core/indexes/frozen.py core/internals/blocks.py core/internals/managers.py core/internals/construction.py core/internals/concat.py core/internals/ops.py core/internals/__init__.py core/groupby/groupby.py core/groupby/generic.py core/groupby/ops.py core/groupby/grouper.py core/groupby/numba_.py core/groupby/base.py core/groupby/categorical.py core/groupby/__init__.py core/generic.py core/reshape/merge.py core/reshape/reshape.py core/reshape/pivot.py core/reshape/concat.py core/reshape/tile.py core/reshape/melt.py core/reshape/util.py core/reshape/api.py core/dtypes/cast.py core/dtypes/dtypes.py core/dtypes/common.py core/dtypes/missing.py core/dtypes/concat.py core/dtypes/base.py core/dtypes/inference.py core/dtypes/generic.py core/dtypes/api.py core/frame.py core/computation/expr.py core/computation/pytables.py core/computation/ops.py core/computation/expressions.py core/computation/eval.py core/computation/scope.py core/computation/align.py core/computation/engines.py core/computation/parsing.py core/computation/common.py core/computation/check.py core/computation/api.py core/window/rolling.py core/window/ewm.py core/window/indexers.py core/window/expanding.py core/window/common.py core/window/numba_.py core/window/__init__.py core/strings/accessor.py core/strings/object_array.py core/strings/base.py core/strings/__init__.py core/series.py core/indexing.py core/algorithms.py core/ops/array_ops.py core/ops/__init__.py core/ops/docstrings.py core/ops/missing.py core/ops/mask_ops.py core/ops/common.py core/ops/methods.py core/ops/roperator.py core/ops/invalid.py core/ops/dispatch.py core/nanops.py core/resample.py core/tools/datetimes.py core/tools/times.py core/tools/numeric.py core/tools/timedeltas.py core/base.py core/missing.py core/aggregation.py core/sorting.py core/apply.py core/construction.py core/common.py core/config_init.py core/util/hashing.py core/util/numba_.py core/indexers.py core/array_algos/replace.py core/array_algos/masked_reductions.py core/array_algos/transforms.py core/accessor.py core/arraylike.py core/flags.py core/api.py core/shared_docs.py core/index.py core/sparse/api.py io/formats/format.py io/formats/style.py io/formats/excel.py io/formats/html.py io/formats/latex.py io/formats/info.py io/formats/printing.py io/formats/csvs.py io/formats/string.py io/formats/css.py io/formats/console.py io/pytables.py io/excel/_base.py io/excel/_openpyxl.py io/excel/_odfreader.py io/excel/_odswriter.py io/excel/_xlsxwriter.py io/excel/_xlwt.py io/excel/_util.py io/excel/_xlrd.py io/excel/_pyxlsb.py io/sas/sas7bdat.py io/sas/sas_xport.py io/sas/sas_constants.py io/sas/sasreader.py io/json/_json.py io/json/_table_schema.py io/json/_normalize.py io/html.py io/clipboard/__init__.py io/common.py io/parquet.py io/date_converters.py io/feather_format.py io/gbq.py io/api.py io/spss.py io/orc.py io/clipboards.py plotting/_matplotlib/core.py plotting/_matplotlib/converter.py plotting/_matplotlib/misc.py plotting/_matplotlib/boxplot.py plotting/_matplotlib/tools.py plotting/_matplotlib/hist.py plotting/_matplotlib/timeseries.py plotting/_matplotlib/style.py plotting/_matplotlib/__init__.py plotting/_matplotlib/compat.py plotting/_core.py plotting/_misc.py _testing.py util/_decorators.py util/_validators.py util/_doctools.py util/_test_decorators.py util/_print_versions.py util/_depr_module.py util/_tester.py util/_exceptions.py util/testing.py tseries/frequencies.py tseries/holiday.py tseries/api.py tseries/offsets.py compat/numpy/function.py compat/numpy/__init__.py compat/pickle_compat.py compat/_optional.py compat/__init__.py compat/chainmap.py _config/config.py _config/localization.py _config/display.py _config/dates.py _config/__init__.py errors/__init__.py _libs/tslibs/__init__.py _libs/__init__.py api/extensions/__init__.py api/types/__init__.py api/indexers/__init__.py

No flags found

Use flags to group coverage reports by test type, project and/or folders.
Then setup custom commit statuses and notifications for each flag.

e.g., #unittest #integration

#production #enterprise

#frontend #backend

Learn more about Codecov Flags here.


@@ -1072,7 +1072,7 @@
Loading
1072 1072
1073 1073
    def __call__(self, x, pos=0) -> str:
1074 1074
        (vmin, vmax) = tuple(self.axis.get_view_interval())
1075 -
        n_decimals = int(np.ceil(np.log10(100 * 1e9 / (vmax - vmin))))
1075 +
        n_decimals = int(np.ceil(np.log10(100 * 1e9 / abs(vmax - vmin))))
1076 1076
        if n_decimals > 9:
1077 1077
            n_decimals = 9
1078 1078
        return self.format_timedelta_ticks(x, pos, n_decimals)

Learn more Showing 3 files with coverage changes found.

Changes in pandas/io/gbq.py
-2
+2
Loading file...
Changes in pandas/core/frame.py
-2
+2
Loading file...
Changes in pandas/plotting/_matplotlib/core.py
-1
+1
Loading file...

18 Commits

-62
-28
-34
+76
+76
+6
-1
+7
+13
+14
-1
+13
+8
+5
Hiding 1 contexual commits
Hiding 2 contexual commits
+33
+42
-9
Hiding 1 contexual commits
+25
+23
+2
Hiding 2 contexual commits
Hiding 1 contexual commits
-104
-137
+33
Pull Request Base Commit
Files Coverage
pandas -0.01% 94.26%
Project Totals (214 files) 94.26%
Loading