У меня куча диапазонов. Все они состоят из чисел. Диапазон имеет максимум и минимум, которые не могут быть превышены, но, учитывая пример, у вас есть два диапазона, и одна точка max диапазона достигает выше min области другого . Это будет означать, что у вас есть небольшая область, которая покрывает их обоих. Вы можете написать один диапазон, который включает в себя другие.
Я хочу посмотреть, перекрываются ли некоторые диапазоны или могу ли я найти некоторые диапазоны, которые покрывают большую часть другого. Цель - посмотреть, смогу ли я упростить их, используя один меньший диапазон, который вписывается в другой. Например, 7,8 - 9,6 и 7,9 - 9,6 могут быть покрыты одним диапазоном.
Вы можете видеть мою попытку визуализировать их. Но когда я использую весь свой набор данных, состоящий из сотен диапазонов, мой график перестает быть полезным.
Я знаю, что могу определять повторяющиеся диапазоны, используя python. Но я не хочу знать, как часто возникает диапазон. Я хочу знать, сколько диапазонов лежит в одних и тех же числовых границах. Я хочу посмотреть, смогу ли я иметь пару диапазонов, покрывающих их все. Наконец, моя цель - отсортировать мастер-классы по категориям. Это означает, что у меня есть диапазон 1, охватывающий 50 других диапазонов. затем диапазон 2, охватывающий 25 диапазонов и т. д.
Моя текущая программа показывает проникновение в диапазоны, но я также хочу, чтобы это было в печатном виде с точными цифрами.
Было бы неплохо, если бы вы поделитесь некоторыми идеями по решению этой программы или если у вас есть предложения по инструментам в пределах python 3,7
import matplotlib.pyplot as plt
intervals = [[3.6,4.5],
[3.6,4.5],
[7.8,9.6],
[7.9,9.6],
[7.8,9.6],
[3.4,4.1],
[2.8,3.4],
[8.25,9.83],
[3.62,3.96],
[8.25,9.83],
[0.62,0.68],
[2.15,2.49],
[0.8,1.0],
[0.8,1.0],
[3.1,3.9],
[6.7,8.3],
[1,1.5],
[1,1.2],
[1.5,1.8],
[1.8,2.5],
[3,4.0],
[6.5,8.0],
[1.129,1.35],
[2.82,3.38],
[1.69,3.38],
[3.38,6.21],
[2.25,2.82],
[5.649,6.214],
[1.920,6.214]
]
for int in intervals:
plt.plot(int,[0,0], 'b', alpha = 0.2, linewidth = 100)
plt.show()
введите описание изображения здесь