Я хотел бы построить интерактивный график (как в G = (V, E) с вершинами и ребрами) с использованием python, и я хотел бы отображать изображения поверх каждой вершины.Как создать граф в python (pyqtgraph), где вертикали отображают изображения?
Я использую это, чтобы визуализировать проблему кластеризации от среднего до большого размера, поэтому я хотел бы, чтобы какой бы то ни было бэкенд, который я использую, должен быть очень быстрым (поэтому networkx, похоже, не режет его).
Я в основном ищу для создания набора вершин и назначения изображения (или пути к изображению или функции для создания изображения) для каждого. Затем я хочу указать соединения между вершинами и их весами.
Его не конец света, если мне нужно указать позиции каждой вершины, но в идеале я хотел бы, чтобы макет автоматически генерировался с использованием весов на графиках.
Было бы здорово, если бы я мог перемещать узлы с помощью мыши, но опять же, а не конец света, если мне нужно построить это в себе. Мне просто нужно добраться до начальной точки.
Я использовал этот демонстрационный код для построения графика.
import pyqtgraph as pg
import numpy as np
# Enable antialiasing for prettier plots
pg.setConfigOptions(antialias=True)
w = pg.GraphicsWindow()
w.setWindowTitle('pyqtgraph example: GraphItem')
v = w.addViewBox()
v.setAspectLocked()
g = pg.GraphItem()
v.addItem(g)
## Define positions of nodes
pos = np.array([
[0,0],
[10,0],
[0,10],
[10,10],
[5,5],
[15,5]
])
## Define the set of connections in the graph
adj = np.array([
[0,1],
[1,3],
[3,2],
[2,0],
[1,5],
[3,5],
])
## Define the symbol to use for each node (this is optional)
symbols = ['o','o','o','o','t','+']
## Define the line style for each connection (this is optional)
lines = np.array([
(255,0,0,255,1),
(255,0,255,255,2),
(255,0,255,255,3),
(255,255,0,255,2),
(255,0,0,255,1),
(255,255,255,255,4),
], dtype=[('red',np.ubyte),('green',np.ubyte),('blue',np.ubyte),('alpha',np.ubyte),('width',float)])
## Update the graph
g.setData(pos=pos, adj=adj, pen=lines, size=1, symbol=symbols, pxMode=False)
Я попытался чейнинга символов использовать элемент изображения pyqtgraph, но это не похоже на работу.
# My Code to make an image
img = ibs.get_annot_chips(cm.qaid)
img_item = pg.ImageItem(img)
# ....
# breaks...
symbols = [img_item,'o','o','o','t','+']
Любой вход или совет о том, как это сделать?
Вы получаете сообщение об ошибке? Если да, то? – ballsatballsdotballs