Repository: voxel51/fiftyone

Issue:
[BUG] Matplotlib default style is deprecated
### Instructions

### Describe the problem

When using the matplotlib backend with the default style defined here, any version of matplotlib from 3.6 onward will give this error:

```
OSError: 'seaborn-ticks' is not a valid package style, path of style file, URL of style file, or library style name (library styles are listed in `style.available`)
```

The [`_DEFAULT_STYLE` in `core/plots/matplotlib.py`](https://github.com/voxel51/fiftyone/blob/3efde5faea19bb18f4335902fdd79c82593be741/fiftyone/core/plots/matplotlib.py#L40) is currently set to `seaborn-ticks`, which has been deprecated in matplotlib as per [this PR](https://github.com/matplotlib/matplotlib/pull/22317) (see also [this StackOverflow post](https://stackoverflow.com/questions/74716259/the-seaborn-styles-shipped-by-matplotlib-are-deprecated-since-3-6)). The old styles are still available, but have been renamed to include `v8_0` in their names (e.g. `seaborn-ticks` is now `seaborn-v8_0-ticks`).

### Code to reproduce issue

From the [COCO-style evaluation example in the docs](https://docs.voxel51.com/user_guide/evaluation.html#map-and-pr-curves), but with the backend set to matplotlib:

```python
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
print(dataset)

# Performs an IoU sweep so that mAP and PR curves can be computed
results = dataset.evaluate_detections(
    "predictions",
    gt_field="ground_truth",
    compute_mAP=True,
)

print(results.mAP())
# 0.3957

plot = results.plot_pr_curves(classes=["person", "kite", "car"], backend="matplotlib")
plot.show()
```

### System information

-   **OS Platform and Distribution**: Linux Ubuntu 22.04
-   **Python version** (`python --version`): Python 3.10.12
-   **FiftyOne version** (`fiftyone --version`): FiftyOne v0.23.7
-   **FiftyOne installed from** (pip or source): pip

### Other info/logs

Full traceback:

```
Traceback (most recent call last):
  File "/home/jeroen/tmp.py", line 17, in <module>
    plot = results.plot_pr_curves(classes=["person", "kite", "car"], backend="matplotlib")
  File "/home/jeroen/.pyenv/versions/explore/lib/python3.10/site-packages/fiftyone/utils/eval/coco.py", line 345, in plot_pr_curves
    return fop.plot_pr_curves(
  File "/home/jeroen/.pyenv/versions/explore/lib/python3.10/site-packages/fiftyone/core/plots/base.py", line 264, in plot_pr_curves
    return _plot_pr_curves(precisions, recall, classes, **kwargs)
  File "/home/jeroen/.pyenv/versions/explore/lib/python3.10/site-packages/fiftyone/core/plots/matplotlib.py", line 345, in plot_pr_curves
    with plt.style.context(style):
  File "/usr/lib/python3.10/contextlib.py", line 135, in __enter__
    return next(self.gen)
  File "/home/jeroen/.pyenv/versions/explore/lib/python3.10/site-packages/matplotlib/style/core.py", line 194, in context
    use(style)
  File "/home/jeroen/.pyenv/versions/explore/lib/python3.10/site-packages/matplotlib/style/core.py", line 139, in use
    raise OSError(
OSError: 'seaborn-ticks' is not a valid package style, path of style file, URL of style file, or library style name (library styles are listed in `style.available`)
```

### Willingness to contribute

The FiftyOne Community encourages bug fix contributions. Would you or another
member of your organization be willing to contribute a fix for this bug to the
FiftyOne codebase?

-   [x] Yes. I can contribute a fix for this bug independently
-   [ ] Yes. I would be willing to contribute a fix for this bug with guidance
        from the FiftyOne community
-   [ ] No. I cannot contribute a bug fix at this time


I see two possible solutions:
- Change the default style to `seaborn-v8_0-ticks` if the installed matplotlib version is >= 3.6.0
- Change the default style to one that works across matplotlib versions

While the second one does result in a change in the default visual style of the plots, it is simpler to implement and maintain than checking versions of installed packages, and would be my suggested solution. I'd be happy to create a pull request for either solution.


Discussion:
I don't really know why seaborn-ticks was chosen. However the `'default'` style looks to be largely the same except the second plot  which they call "image"?
Seems perfectly reasonable to use `"default"` as our default especially since it doesn't change visuals much.
@brimoor for product comment?
![image](https://github.com/voxel51/fiftyone/assets/6363888/de53ad70-b13a-464a-afbb-b8a66bbdf914)

![image](https://github.com/voxel51/fiftyone/assets/6363888/ea7dfeef-06f2-4ede-9236-9a0df1f2c845)

`default` looks perfect to me 👍 
Great! Would you like me to make a quick pull request?
> Great! Would you like me to make a quick pull request?

Yes please! You'll be immortalized as a FiftyOne contributor 💪🏼 

Resolving patch:
diff --git a/fiftyone/core/plots/matplotlib.py b/fiftyone/core/plots/matplotlib.py
--- a/fiftyone/core/plots/matplotlib.py
+++ b/fiftyone/core/plots/matplotlib.py
@@ -37,7 +37,7 @@
 logger = logging.getLogger(__name__)
 
 
-_DEFAULT_STYLE = "seaborn-ticks"
+_DEFAULT_STYLE = "default"
 _DEFAULT_LINE_COLOR = "#FF6D04"
 _DEFAULT_CONTINUOUS_COLORSCALE = "viridis"
 


Test patch: