Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

display E_6 associahedron skeleton

Project: variables-X
Views: 201
1+1
2
%attach graphe-dechange.sage %attach interessant.sage
show(H,vertex_labels=false, width =1600, height=1200, charge=-40, link_distance=50,edge_partition=exp)
d3-based renderer not yet implemented
show(H,vertex_labels=false, width =1600, height=1000, charge=-40, link_distance=50,edge_partition=exp)
d3-based renderer not yet implemented
smc_sagews.graphics.show_graph_using_d3?
File: Docstring :
import smc_sagews.graphics smc_sagews.graphics.graph_to_d3_jsonable??
File: /cocalc/lib/python2.7/site-packages/smc_sagews/graphics.py Source: def graph_to_d3_jsonable(G, vertex_labels = True, edge_labels = False, vertex_partition = [], edge_partition = [], force_spring_layout = False, charge = -120, link_distance = 50, link_strength = 1, gravity = .04, vertex_size = 7, edge_thickness = 2, width = None, height = None, **ignored): r""" Display a graph in CoCalc using the D3 visualization library. INPUT: - ``G`` -- the graph - ``vertex_labels`` (boolean) -- Whether to display vertex labels (set to ``True`` by default). - ``edge_labels`` (boolean) -- Whether to display edge labels (set to ``False`` by default). - ``vertex_partition`` -- a list of lists representing a partition of the vertex set. Vertices are then colored in the graph according to the partition. Set to ``[]`` by default. - ``edge_partition`` -- same as ``vertex_partition``, with edges instead. Set to ``[]`` by default. - ``force_spring_layout`` -- whether to take sage's position into account if there is one (see :meth:`~sage.graphs.generic_graph.GenericGraph.` and :meth:`~sage.graphs.generic_graph.GenericGraph.`), or to compute a spring layout. Set to ``False`` by default. - ``vertex_size`` -- The size of a vertex' circle. Set to `7` by default. - ``edge_thickness`` -- Thickness of an edge. Set to ``2`` by default. - ``charge`` -- the vertices' charge. Defines how they repulse each other. See `<https://github.com/mbostock/d3/wiki/Force-Layout>`_ for more information. Set to ``-120`` by default. - ``link_distance`` -- See `<https://github.com/mbostock/d3/wiki/Force-Layout>`_ for more information. Set to ``30`` by default. - ``link_strength`` -- See `<https://github.com/mbostock/d3/wiki/Force-Layout>`_ for more information. Set to ``1.5`` by default. - ``gravity`` -- See `<https://github.com/mbostock/d3/wiki/Force-Layout>`_ for more information. Set to ``0.04`` by default. EXAMPLES:: show(graphs.RandomTree(50), d3=True) show(graphs.PetersenGraph(), d3=True, vertex_partition=g.coloring()) show(graphs.DodecahedralGraph(), d3=True, force_spring_layout=True) show(graphs.DodecahedralGraph(), d3=True) g = digraphs.DeBruijn(2,2) g.allow_multiple_edges(True) g.add_edge("10","10","a") g.add_edge("10","10","b") g.add_edge("10","10","c") g.add_edge("10","10","d") g.add_edge("01","11","1") show(g, d3=True, vertex_labels=True,edge_labels=True, link_distance=200,gravity=.05,charge=-500, edge_partition=[[("11","12","2"),("21","21","a")]], edge_thickness=4) """ directed = G.is_directed() multiple_edges = G.has_multiple_edges() # Associated an integer to each vertex v_to_id = {v: i for i, v in enumerate(G.vertices())} # Vertex colors color = {i: len(vertex_partition) for i in range(G.order())} for i, l in enumerate(vertex_partition): for v in l: color[v_to_id[v]] = i # Vertex list nodes = [] for v in G.vertices(): nodes.append({"name": str(v), "group": str(color[v_to_id[v]])}) # Edge colors. edge_color_default = "#aaa" from sage.plot.colors import rainbow color_list = rainbow(len(edge_partition)) edge_color = {} for i, l in enumerate(edge_partition): for e in l: u, v, label = e if len(e) == 3 else e+(None,) edge_color[u, v, label] = color_list[i] if not directed: edge_color[v, u, label] = color_list[i] # Edge list edges = [] seen = {} # How many times has this edge been seen ? for u, v, l in G.edges(): # Edge color color = edge_color.get((u, v, l), edge_color_default) # Computes the curve of the edge curve = 0 # Loop ? if u == v: seen[u, v] = seen.get((u, v), 0)+1 curve = seen[u, v]*10+10 # For directed graphs, one also has to take into accounts # edges in the opposite direction elif directed: if G.has_edge(v, u): seen[u, v] = seen.get((u, v), 0)+1 curve = seen[u, v]*15 else: if multiple_edges and len(G.edge_label(u, v)) != 1: # Multiple edges. The first one has curve 15, then # -15, then 30, then -30, ... seen[u, v] = seen.get((u, v), 0) + 1 curve = (1 if seen[u, v] % 2 else -1)*(seen[u, v]//2)*15 elif not directed and multiple_edges: # Same formula as above for multiple edges if len(G.edge_label(u, v)) != 1: seen[u, v] = seen.get((u, v), 0) + 1 curve = (1 if seen[u, v] % 2 else -1)*(seen[u, v]//2)*15 # Adding the edge to the list edges.append({"source": v_to_id[u], "target": v_to_id[v], "strength": 0, "color": color, "curve": curve, "name": str(l) if edge_labels else ""}) loops = [e for e in edges if e["source"] == e["target"]] edges = [e for e in edges if e["source"] != e["target"]] # Defines the vertices' layout if possible Gpos = G.get_pos() pos = [] if Gpos is not None and force_spring_layout is False: charge = 0 link_strength = 0 gravity = 0 for v in G.vertices(): x, y = Gpos[v] pos.append([json_float(x), json_float(-y)]) return {"nodes" : nodes, "links" : edges, "loops": loops, "pos": pos, "directed" : G.is_directed(), "charge" : int(charge), "link_distance" : int(link_distance), "link_strength" : int(link_strength), "gravity" : float(gravity), "vertex_labels" : bool(vertex_labels), "edge_labels" : bool(edge_labels), "vertex_size" : int(vertex_size), "edge_thickness" : int(edge_thickness), "width" : json_float(width), "height" : json_float(height) }
G=PetersenGraph()
Error in lines 1-1 Traceback (most recent call last): File "/cocalc/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 986, in execute reload_attached_files_if_mod_smc() File "/cocalc/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 71, in reload_attached_files_if_mod_smc load(filename) File "/cocalc/lib/python2.7/site-packages/smc_sagews/sage_salvus.py", line 3511, in load exec 'salvus.namespace["%s"] = sage.structure.sage_object.load(*__args, **__kwds)'%t in salvus.namespace, {'__args':other_args, '__kwds':kwds} File "<string>", line 1, in <module> File "sage/structure/sage_object.pyx", line 1075, in sage.structure.sage_object.load (/ext/sage/sage-8.0/src/build/cythonized/sage/structure/sage_object.c:12949) sage.repl.load.load(filename, globals()) File "/ext/sage/sage-8.0/local/lib/python2.7/site-packages/sage/repl/load.py", line 247, in load exec(preparse_file(open(fpath).read()) + "\n", globals) File "<string>", line 137, in <module> NameError: name 's' is not defined
salvus.d3_graph??
File: /cocalc/lib/python2.7/site-packages/smc_sagews/sage_server.py Source: def d3_graph(self, g, **kwds): from graphics import graph_to_d3_jsonable self._send_output(id=self._id, d3={"viewer":"graph", "data":graph_to_d3_jsonable(g, **kwds)})
smc?
File: /cocalc/lib/python2.7/site-packages/smc_sagews/sage_server.py Docstring : Cell execution state object and wrapper for access to special CoCalc Server functionality. An instance of this object is created each time you execute a cell. It has various methods for sending different types of output messages, links to files, etc. Type 'help(smc)' for more details. OUTPUT LIMITATIONS -- There is an absolute limit on the number of messages output for a given cell, and also the size of the output message for each cell. You can access or change those limits dynamically in a worksheet as follows by viewing or changing any of the following variables: sage_server.MAX_STDOUT_SIZE # max length of each stdout output message sage_server.MAX_STDERR_SIZE # max length of each stderr output message sage_server.MAX_MD_SIZE # max length of each md (markdown) output message sage_server.MAX_HTML_SIZE # max length of each html output message sage_server.MAX_TEX_SIZE # max length of tex output message sage_server.MAX_OUTPUT_MESSAGES # max number of messages output for a cell. And: sage_server.MAX_OUTPUT # max total character output for a single cell; computation # terminated/truncated if sum of above exceeds this.
sage_server.MAX_OUTPUT sage_server.MAX_OUTPUT_MESSAGES
150000 256
sage_server.MAX_OUTPUT_MESSAGES=100000 sage_server.MAX_OUTPUT=15000000