Two different versions for weighted lorenz curve calculation in the examples

### Describe the issue linked to the documentation

There are 2 definitions of (weighted) `lorenz_curve()` functions [here](https://scikit-learn.org/stable/auto_examples/linear_model/plot_tweedie_regression_insurance_claims.html) and [here](https://scikit-learn.org/stable/auto_examples/linear_model/plot_poisson_regression_non_normal_loss.html)

The difference is in the X coordinates that these functions returns. Both return X coordinates between 0 and 1, but the first example returns **equally spaced** X coordinates:
```python
cumulated_samples = np.linspace(0, 1, len(cumulated_claim_amount))
```
and the second example return **un-equally spaced** X coordinates (spaced using the samples weights):
```python
cumulated_exposure = np.cumsum(ranked_exposure)
cumulated_exposure /= cumulated_exposure[-1]
```

### Suggest a potential alternative/fix

_No response_

COMMENT:
> Indeed I agree it's weird to only use the weights on y axis and not on the x axis.
> 
> I would intuitively expect the following weighing semantics to hold:
> 
> * setting weights to 0 to a fraction of the observations should be equivalent to trimming those data points;
> * setting weights to 2 to a fraction of the observations (while keeping the other to unit weights) should be equivalent to duplicating those data points.
> 
> We can empirically check when those properties hold: the curves for the weighted vs trimmed/duplicated but unweighted data should match exactly.

I find this topic interesting and I would like to contribute.
I started from the definition of Lorenz curve from [this](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4248143) paper:
![Screenshot 2024-06-15 at 13 20 13](https://github.com/scikit-learn/scikit-learn/assets/124086916/5dec340a-3e04-4503-b08d-c9dfb2b06069)

and checked that the approach with the cumulative sums in the scikit-learn examples matches the theory:

```python 3
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
from scipy.integrate import quad

alpha = np.linspace(0, 1, 100)
rv = stats.gamma(scale=10, a=0.5)


def f2int(x):
    return rv.ppf(x)


res = [1 / rv.mean() * quad(f2int, a=0, b=el)[0] for el in alpha]
sample = rv.rvs(size=1000, random_state=518522)
alpha_sample = np.linspace(0, 1, len(sample))
empirical_percentiles = np.percentile(sample, q=alpha_sample)
ranking = np.argsort(sample)
ranked_claims = sample[ranking]
cumulated_claims = np.cumsum(ranked_claims)
cumulated_claims /= cumulated_claims[-1]
plt.plot(
    alpha_sample, cumulated_claims, marker=".", alpha=0.5, linewidth=4, color="orange"
)
plt.plot(alpha, res, alpha=1.0)
```
![image](https://github.com/scikit-learn/scikit-learn/assets/124086916/984e92cd-a5af-4f9a-883a-bfda96eea90e)

To check the behaviour when weighting I simulated unweighted data from a Poisson distribution with parameter 0.1 and then aggregated it. I aggregated the exposure and the claim count and computed again the frequency for the weighted data (claim count divided by exposure).
You can find this example [here](https://github.com/m-maggi/scikit-learn/blob/example_lorenz_curve/sandbox_ml_v2.ipynb)
My reasoning: When simulating iid samples from a poisson with parameter 0.1, we have many 0s and few values >= 1. If we aggregate the data the claim frequencies will converge toward 0.1 by increasing group sizes, hence there will be no inequality at all and the Lorenz curve will be the diagonal line.

![image](https://github.com/scikit-learn/scikit-learn/assets/124086916/e87bd2dc-de4c-4d6f-9440-ce7d3d1d86fc)

Update:
I did another [example](https://github.com/m-maggi/scikit-learn/blob/example_lorenz_curve/sandbox_lorenz_curve_weighted.ipynb) where I followed the procedure for creating weighted data in #29248 where one first simulates the weighted data and then repeats the observations to get the unweighted data.

When building the Lorenz curve using the weighted data I then used this approach

```
cumulated_exposure = np.cumsum(ranked_exposure)
cumulated_exposure /= cumulated_exposure[-1]
```

and obtained points lying on the unweighted curve.

![image](https://github.com/scikit-learn/scikit-learn/assets/124086916/0e60325c-a69d-41db-b10c-e75f8e0bbd7d)

Labels: Bug, Documentation