Короткий вопрос: есть ли функция self для создания графика из набора наборов python? Более длинный вопрос: у меня есть несколько наборов python. Каждый из них накладывается друг на друга или некоторые из них являются подмножествами других. Я хотел бы сделать граф (как в узлах и ребрах), узлы - это элементы в наборах. Края - это пересечение множеств, взвешенных по числу элементов в пересечении множеств. Существует несколько графических пакетов для python. (NetworkX, igraph, ...) Я не знаком с использованием каких-либо из них. Будет ли какой-либо из них создавать граф непосредственно из списка множеств, т.е. MakeGraphfromSets (alistofsets) Если вы не знаете пример того, как взять список наборов для определения ребер. На самом деле это выглядит так, как будто это может быть прямо, но пример всегда хорош.построить график из набора типов python
0
A
ответ
1
Это не слишком сложно, чтобы закодировать себя: номер
def intersection_graph(sets):
adjacency_list = {}
for i, s1 in enumerate(sets):
for j, s2 in enumerate(sets):
if j == i:
continue
try:
lst = adjacency_list[i]
except KeyError:
adjacency_list[i] = lst = []
weight = len(s1.intersection(s2))
lst.append((j, weight))
return adjacency_list
Этой функции каждый набор с индексом в sets
. Мы делаем это, потому что ключи ключа должны быть неизменными, что верно для целых чисел, но не для множеств.
Вот пример того, как использовать эту функцию, и его вывод:
>>> sets = [set([1,2,3]), set([2,3,4]), set([4,2])]
>>> intersection_graph(sets)
{0: [(1, 2), (2, 1)], 1: [(0, 2), (2, 2)], 2: [(0, 1), (1, 2)]}
1
def MakeGraphfromSets(sets):
egs = []
l = len(sets)
for i in range(l):
for j in range(i,l):
w = sets[i].intersection(sets[j])
egs.append((i,j,len(w)))
return egs
# (source set index,destination set index,length of intersection)
sets = [set([1,2,3]), set([2,3,4]), set([4,2])]
edges = MakeGraphfromSets(sets)
for e in edges:
print e
ВЫВОД:
(0, 0, 3)
(0, 1, 2)
(0, 2, 1)
(1, 1, 3)
(1, 2, 2)
(2, 2, 2)
Смежные вопросы
- 1. Python & Matplotlib: Как построить график гистограмм бутстрапа?
- 2. Как построить график из уравнений
- 3. Построить матрицу из набора координат
- 4. Как построить график с движением в Python
- 5. Как построить и отобразить график в Python
- 6. Как построить график, если входные данные имеют список типов?
- 7. Как построить два набора данных в python
- 8. Построить график knn из изображения, используя python и igraph
- 9. построить график в vb.net
- 10. Возможно ли построить график «шахматной доски» в python?
- 11. 2D-график в python
- 12. Построить социальный график друзей
- 13. не удалось построить график
- 14. Как построить график поверхности
- 15. Как построить график статистики?
- 16. Лучший способ построить график
- 17. Как построить участок/3d-график из dataframe?
- 18. Как построить график из 2D-массива?
- 19. Как построить график/график произвольного уравнения
- 20. Как удалить существующий график и построить график?
- 21. Как построить конкретный график в Gnuplot
- 22. график два набора данных на одном графике
- 23. Как построить сетку из набора вершин
- 24. Как построить XML-файл из набора данных
- 25. Шаблон шаблона Unzip из набора типов
- 26. Графики Google, неспособные построить график
- 27. Как построить график венна с 4 наборами
- 28. Как построить матрицу термина Частота документа из набора текстов
- 29. Как построить график 2D-массива в Python с использованием matplotlib
- 30. Как построить график графика времени с использованием python
Неясно, что ваш набор множеств описывает , Является ли набор совокупностью связных узлов? Если нет, то как кодируются края? Пример будет полезен для ответа на ваш вопрос. – msw
Картина стоит 1000 слов. Или дайте нам другие 868 слов или какой-то пример :) –
Можете ли вы, пожалуйста, очистить свою грамматику и орфографию? Первая часть вашего вопроса почти нечитаема. – allyourcode