Как создавать сюжеты для скрипки, когда категориальная переменная - numeri c (и неравномерно разделена) - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь создать сценарий скрипки с помощью matplotlib (но я мог бы использовать seaborn, но у меня почти нет опыта с этим). Моя проблема в том, что категориальная переменная, которая у меня есть, на самом деле numeri c, а matplotlib, похоже, настаивает на отображении категориальных переменных на целые числа. Я мог бы обойти это, изменив метку оси, но в моем случае переменные распределены неравномерно. Поэтому мне нужно, чтобы скрипичные сюжеты были распределены неравномерно. Вот пример, в котором я использую экспоненциальные распределения со скоростью 0,5, 1, 2 и 4. Очевидно, что они распределены неравномерно, и я хотел бы иметь возможность построить их так, чтобы горизонтальная ось была «скоростью», и ось находится в линейном масштабе.

import matplotlib
import random

data = []
for rate in [0.5, 1, 2, 4]:
    data.append([])
    for counter in range(1000):
        data[-1].append(random.expovariate(rate))
fig, ax = plt.subplots()
ax.violinplot(data)

Это дает:

введите описание изображения здесь

Конечно, мои настоящие данные не так просты, но я думаю, что это достаточно хорошо иллюстрирует то, что мне нужно.

...