Существует много способов сделать кластерный анализ . Один простой подход - посмотреть размер зазора между последовательными элементами данных:
def cluster(data, maxgap):
'''Arrange data into groups where successive elements
differ by no more than *maxgap*
>>> cluster([1, 6, 9, 100, 102, 105, 109, 134, 139], maxgap=10)
[[1, 6, 9], [100, 102, 105, 109], [134, 139]]
>>> cluster([1, 6, 9, 99, 100, 102, 105, 134, 139, 141], maxgap=10)
[[1, 6, 9], [99, 100, 102, 105], [134, 139, 141]]
'''
data.sort()
groups = [[data[0]]]
for x in data[1:]:
if abs(x - groups[-1][-1]) <= maxgap:
groups[-1].append(x)
else:
groups.append([x])
return groups
if __name__ == '__main__':
import doctest
print(doctest.testmod())
Примените свойства CSS grid к slider-container
вместо абсолютно позиционированного контейнера - см. Демонстрацию ниже:
#sliders-container {
position: absolute;
top: 0;
right: 0;
margin: 20px;
padding: 5px;
background-color: #333333;
}
.slider-container { /* CHANGED */
display: grid;
grid-template-columns: 1fr 2fr 1fr;
grid-gap: 10px;
}
.slider-label {
font-family: "Trebuchet MS", Verdana, sans-serif;
font-size: small;
color: white;
grid-column: 1;
}
.slider {
grid-column: 2;
}
.slider-value {
font-family: "Trebuchet MS", Verdana, sans-serif;
font-size: small;
color: white;
grid-column: 3;
}