#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Thu Jan 31 15:29:40 2019 @author: pavel `""" from vispy import app import network_dep as nwt from pyqtgraph.Qt import QtCore, QtGui, QtWidgets import pyqtgraph as pg import numpy as np import math from mpl_toolkits.mplot3d import Axes3D import matplotlib import matplotlib.pyplot as plt matplotlib.use('Qt5Agg') from GraphWidget import GraphWidget from TubeWidget import TubeWidget DEBUG = False #set the backend. for different versions of PyQt app.use_app(backend_name='PyQt5') #Define a top level application appMain = QtGui.QApplication([]) ##Define a toplevel Widget top = QtGui.QWidget() top.resize(900, 900) hist = pg.PlotWidget() #fibers = FiberView() fibers = TubeWidget() fibers.canvas.create_native() #fibers = gl.GLViewWidget() #plt = hist.addPlot() layout = QtGui.QGridLayout() graph = GraphWidget() graph.canvas.create_native() graph.connect(fibers) fibers.connect(graph) #initialize the layout layout.addWidget(graph, 0, 0, 2, 3) layout.addWidget(fibers, 0, 2, 2, 3) layout.setColumnStretch(0, 2) layout.setRowStretch(0, 2) layout.setColumnStretch(2, 1) layout.setRowStretch(0, 1) top.setLayout(layout) top.show() def draw_histogram(G, value): vals = G.edge_properties[value].get_array() y, x = np.histogram(vals,40) hist.plot(x,y, stepMode=True, fillLevel=0, brush=(0,0,255,150)) def load_nwt(filepath): net = nwt.Network(filepath) G = net.createFullGraph_gt() G = net.filterDisconnected(G) #G = net.filterFullGraph_gt(G, erode=True) #G = net.filterFullGraph_gt(G, erode=True) #G = net.gen_new_fd_layout(G) #G = net.filterBorder(G) #nwt.Network.saveGraph_gt(nwt, G, "FilteredNetwork_JACK_3.nwt") color = np.zeros(4, dtype = np.double) color = [0.0, 1.0, 0.0, 1.0] G.edge_properties["RGBA"] = G.new_edge_property("vector", val=color) color = [1.0, 0.0, 0.0, 0.9] G.vertex_properties["RGBA"] = G.new_vertex_property("vector", val=color) bbl, bbu = net.aabb() return G, bbl, bbu G, bbl, bbu = load_nwt("/home/pavel/Documents/Python/GraphGuiQt/network_4.nwt") #nwt.Network.write_vtk(G) #G, bbl, bbu = load_nwt("/home/pavel/Documents/Python/GraphGuiQt/net`````````work_test_251_1kx3_short_NEW.nwt") #ret = nwt.Network.get_affinity_matrix(G, "length") node_image = QtGui.QImage("/home/pavel/Documents/Python/GraphGuiQt/node_tex.jpg") node_tex = QtGui.QBitmap.fromImage(node_image) if DEBUG: print(node_tex.depth()) center = (bbu-bbl)/2.0 #fibers.opts['distance'] = 5 # item = NodeItem(G) # graph.addItem(item) draw_histogram(G, "length") graph.canvas.set_data(G, bbl, bbu) fibers.canvas.set_data(G, bbl, bbu, 16) #fibers.draw_all(G, center, fibers, graph, node_tex) graph.set_g_view(fibers) ## Start Qt event loop unless running in interactive mode. if __name__ == '__main__': import sys if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): QtGui.QApplication.instance().exec_()