Visual improvements for ROC and precision-recall plots

### Describe the workflow you want to enable

Hello,

I would like to suggest the following improvements:

- [x] (1) Add x and y axis limit: [0, 1], in sklearn axes currently start at ~-0.1 (#26366)
- [x] (2) Modify the plotting frame: either remove the top and right lines to see the curve better when values are close to 1, or plot the frame with a dotted line (#26367)
- [x] (3). Fix aspect ratio to squared, since the two axes are the same scale. (#26366)
- [x] (4). Add title (not planned)

### Describe your proposed solution

Hello,

While working on ROC and precision-recall plots, I came up with the following suggestions:

1. Add x and y axis limit: [0, 1], in sklearn axes currently start at ~-0.1
2. Modify the plotting frame: either remove the top and right lines to see the curve better when values are close to 1, or plot the frame with a dotted line
3. Fix aspect ratio to squared, since the two axes are the same scale.
4. Add title

```
        ax.set_xlim((-0.01, 1.01))
        ax.set_ylim((-0.01, 1.01))
        for s in ['right', 'left', 'top', 'bottom']:
            ax.spines[s].set_visible(False)
        ax.axvline(1, color='black', linewidth=0.5, ls='dotted')
        ax.axhline(1, color='black', linewidth=0.5, ls='dotted')
        ax.axvline(0, color='black', linewidth=0.5, ls='dotted')
        ax.axhline(0, color='black', linewidth=0.5, ls='dotted')
        ax.set_aspect(1)
        ax.set_title(f'Precision-Recall Curve')
```

### Example 1 Edge case
#### PR
Before:
![image](https://user-images.githubusercontent.com/1184396/226746221-40b40d56-74a4-49c1-82aa-4a3f3366abe2.png)

After:
![image](https://user-images.githubusercontent.com/1184396/226746245-3e0a0ffd-28f0-4851-8a41-04629750bd2c.png)

#### ROC
Before:
![image](https://user-images.githubusercontent.com/1184396/226746270-ecc2a1ce-48dc-4682-8acd-86a4d06dfcf0.png)

After:
![image](https://user-images.githubusercontent.com/1184396/226746289-8ba8c906-f8f8-4d74-9269-b12c16d339fa.png)

### Example 2 - Edge case

#### PR
Before:
![image](https://user-images.githubusercontent.com/1184396/226745897-de69cf76-f520-499f-b8b6-4e9ede9e7ba2.png)

After:
![image](https://user-images.githubusercontent.com/1184396/226745936-5fc34fff-eff3-4a70-8b99-b7c731984723.png)

#### ROC
Before:
![image](https://user-images.githubusercontent.com/1184396/226745998-d1788d4a-fd0a-4293-bef5-170a71c0a098.png)

After:
![image](https://user-images.githubusercontent.com/1184396/226746031-e93dff40-2487-4776-a5b8-baeef9a36e5d.png)



### Describe alternatives you've considered, if relevant

_No response_

### Additional context

_No response_

COMMENT:
I run a couple of experiments available in this repository: https://github.com/glemaitre/pr_curve_interpolation

I implemented the hyperbolic interpolation as proposed in Davis & Goadrich. From the paper, there is 2 aspects:

- they don't mention about the discontinuity when for the same number of true positive (TP), you can get an increasing number of false positive (FP).
- they only express the PR curve formulation in terms of integral values of TP.

So in terms of plot rendering, there is a really tiny difference between using the linear interpolation of matplotlib and the sub-integral Davis & Goadrich interpolation. This is the results shown in `comparison_toy.svg`. The reason for the little difference is because scikit-learn already compute the PR curve with a step of 1 TP and the subtle difference will be observe in-between integral TP (need to get the SVG and zoom-in).

![comparison_toy](https://github.com/scikit-learn/scikit-learn/assets/7454015/525fb830-704c-4ea5-b47e-187d7e4e1f69)

In terms of computing the AU-PRC for these two approaches, I got the following output:

```
Average precision score: 
0.9179383088466216
Integral from the precision-recall with linear interpolation by step of 1 TP: 
0.9162953288508784
Integral from the precision-recall with Davis & Goadrich interpolation with sub-integral precision: 
0.9163194560853359
```

that show the difference in the interpolation. Up to now, we don't have the AU-PRC metric and using this definition of interpolation could be useful.

To ensure that the implementation of the paper is correct, I reproduced the experiment of Fig. 6:

![reproduction_figure_6](https://github.com/scikit-learn/scikit-learn/assets/7454015/7f762402-e7a3-4e9f-bb1e-8a0bf291aebf)

and get very close number to the one reported. IMO, the interpolation is therefore extremely important when the PR space is not sampled with a step of 1 TP.

From this experiment, I think that we can have additional changes:

- Emphasize the difference between the average precision and the area under the PR curve
- For this point we will need to define what is the PR curve formulation
- Having a better UX than the `drawstyle` keyword for the type of display.
- Potentially, revert back to the linear interpolation (or sub-integral interpolation) since this is actually what is the PR curve but emphasize about the metric reported in the legend.
- Potentially add a new pr_auc_score that is the implementation of Davis & Goadrich.

Also pinging @ogrisel with whom we explored those stuffs.

Labels: Enhancement