React+(00):React中集成

时间:2025-03-08 07:09:10
import React, {useRef, useEffect} from "react"; import vis from "vis"; const nodes = new vis.DataSet([ {id: 0, label: "Myriel", group: 1}, {id: 1, label: "Napoleon", group: 1}, {id: 2, label: "", group: 1}, {id: 3, label: "", group: 1}, {id: 4, label: "CountessdeLo", group: 1}, {id: 5, label: "Geborand", group: 1}, {id: 6, label: "Champtercier", group: 1}, {id: 7, label: "Cravatte", group: 1}, {id: 8, label: "Count", group: 1}, {id: 9, label: "OldMan", group: 1}, {id: 10, label: "Labarre", group: 2}, {id: 11, label: "Valjean", group: 2}, {id: 12, label: "Marguerite", group: 3}, {id: 13, label: "", group: 2}, {id: 14, label: "Isabeau", group: 2}, {id: 15, label: "Gervais", group: 2}, {id: 16, label: "Tholomyes", group: 3}, {id: 17, label: "Listolier", group: 3}, {id: 18, label: "Fameuil", group: 3}, {id: 19, label: "Blacheville", group: 3}, {id: 20, label: "Favourite", group: 3}, {id: 21, label: "Dahlia", group: 3}, {id: 22, label: "Zephine", group: 3}, {id: 23, label: "Fantine", group: 3}, {id: 24, label: "", group: 4}, {id: 25, label: "Thenardier", group: 4}, {id: 26, label: "Cosette", group: 5}, {id: 27, label: "Javert", group: 4}, {id: 28, label: "Fauchelevent", group: 0}, {id: 29, label: "Bamatabois", group: 2}, {id: 30, label: "Perpetue", group: 3}, {id: 31, label: "Simplice", group: 2}, {id: 32, label: "Scaufflaire", group: 2}, {id: 33, label: "Woman1", group: 2}, {id: 34, label: "Judge", group: 2}, {id: 35, label: "Champmathieu", group: 2}, {id: 36, label: "Brevet", group: 2}, {id: 37, label: "Chenildieu", group: 2}, {id: 38, label: "Cochepaille", group: 2}, {id: 39, label: "Pontmercy", group: 4}, {id: 40, label: "Boulatruelle", group: 6}, {id: 41, label: "Eponine", group: 4}, {id: 42, label: "Anzelma", group: 4}, {id: 43, label: "Woman2", group: 5}, {id: 44, label: "MotherInnocent", group: 0}, {id: 45, label: "Gribier", group: 0}, {id: 46, label: "Jondrette", group: 7}, {id: 47, label: "", group: 7}, {id: 48, label: "Gavroche", group: 8}, {id: 49, label: "Gillenormand", group: 5}, {id: 50, label: "Magnon", group: 5}, {id: 51, label: "", group: 5}, {id: 52, label: "", group: 5}, {id: 53, label: "", group: 5}, {id: 54, label: "", group: 5}, {id: 55, label: "Marius", group: 8}, {id: 56, label: "BaronessT", group: 5}, {id: 57, label: "Mabeuf", group: 8}, {id: 58, label: "Enjolras", group: 8}, {id: 59, label: "Combeferre", group: 8}, {id: 60, label: "Prouvaire", group: 8}, {id: 61, label: "Feuilly", group: 8}, {id: 62, label: "Courfeyrac", group: 8}, {id: 63, label: "Bahorel", group: 8}, {id: 64, label: "Bossuet", group: 8}, {id: 65, label: "Joly", group: 8}, {id: 66, label: "Grantaire", group: 8}, {id: 67, label: "MotherPlutarch", group: 9}, {id: 68, label: "Gueulemer", group: 4}, {id: 69, label: "Babet", group: 4}, {id: 70, label: "Claquesous", group: 4}, {id: 71, label: "Montparnasse", group: 4}, {id: 72, label: "Toussaint", group: 5}, {id: 73, label: "Child1", group: 10}, {id: 74, label: "Child2", group: 10}, {id: 75, label: "Brujon", group: 4}, {id: 76, label: "", group: 8}, ]); // create some edges const edges = new vis.DataSet([ {from: 1, to: 0}, {from: 2, to: 0}, {from: 3, to: 0}, {from: 3, to: 2}, {from: 4, to: 0}, {from: 5, to: 0}, {from: 6, to: 0}, {from: 7, to: 0}, {from: 8, to: 0}, {from: 9, to: 0}, {from: 11, to: 10}, {from: 11, to: 3}, {from: 11, to: 2}, {from: 11, to: 0}, {from: 12, to: 11}, {from: 13, to: 11}, {from: 14, to: 11}, {from: 15, to: 11}, {from: 17, to: 16}, {from: 18, to: 16}, {from: 18, to: 17}, {from: 19, to: 16}, {from: 19, to: 17}, {from: 19, to: 18}, {from: 20, to: 16}, {from: 20, to: 17}, {from: 20, to: 18}, {from: 20, to: 19}, {from: 21, to: 16}, {from: 21, to: 17}, {from: 21, to: 18}, {from: 21, to: 19}, {from: 21, to: 20}, {from: 22, to: 16}, {from: 22, to: 17}, {from: 22, to: 18}, {from: 22, to: 19}, {from: 22, to: 20}, {from: 22, to: 21}, {from: 23, to: 16}, {from: 23, to: 17}, {from: 23, to: 18}, {from: 23, to: 19}, {from: 23, to: 20}, {from: 23, to: 21}, {from: 23, to: 22}, {from: 23, to: 12}, {from: 23, to: 11}, {from: 24, to: 23}, {from: 24, to: 11}, {from: 25, to: 24}, {from: 25, to: 23}, {from: 25, to: 11}, {from: 26, to: 24}, {from: 26, to: 11}, {from: 26, to: 16}, {from: 26, to: 25}, {from: 27, to: 11}, {from: 27, to: 23}, {from: 27, to: 25}, {from: 27, to: 24}, {from: 27, to: 26}, {from: 28, to: 11}, {from: 28, to: 27}, {from: 29, to: 23}, {from: 29, to: 27}, {from: 29, to: 11}, {from: 30, to: 23}, {from: 31, to: 30}, {from: 31, to: 11}, {from: 31, to: 23}, {from: 31, to: 27}, {from: 32, to: 11}, {from: 33, to: 11}, {from: 33, to: 27}, {from: 34, to: 11}, {from: 34, to: 29}, {from: 35, to: 11}, {from: 35, to: 34}, {from: 35, to: 29}, {from: 36, to: 34}, {from: 36, to: 35}, {from: 36, to: 11}, {from: 36, to: 29}, {from: 37, to: 34}, {from: 37, to: 35}, {from: 37, to: 36}, {from: 37, to: 11}, {from: 37, to: 29}, {from: 38, to: 34}, {from: 38, to: 35}, {from: 38, to: 36}, {from: 38, to: 37}, {from: 38, to: 11}, {from: 38, to: 29}, {from: 39, to: 25}, {from: 40, to: 25}, {from: 41, to: 24}, {from: 41, to: 25}, {from: 42, to: 41}, {from: 42, to: 25}, {from: 42, to: 24}, {from: 43, to: 11}, {from: 43, to: 26}, {from: 43, to: 27}, {from: 44, to: 28}, {from: 44, to: 11}, {from: 45, to: 28}, {from: 47, to: 46}, {from: 48, to: 47}, {from: 48, to: 25}, {from: 48, to: 27}, {from: 48, to: 11}, {from: 49, to: 26}, {from: 49, to: 11}, {from: 50, to: 49}, {from: 50, to: 24}, {from: 51, to: 49}, {from: 51, to: 26}, {from: 51, to: 11}, {from: 52, to: 51}, {from: 52, to: 39}, {from: 53, to: 51}, {from: 54, to: 51}, {from: 54, to: 49}, {from: 54, to: 26}, {from: 55, to: 51}, {from: 55, to: 49}, {from: 55, to: 39}, {from: 55, to: 54}, {from: 55, to: 26}, {from: 55, to: 11}, {from: 55, to: 16}, {from: 55, to: 25}, {from: 55, to: 41}, {from: 55, to: 48}, {from: 56, to: 49}, {from: 56, to: 55}, {from: 57, to: 55}, {from: 57, to: 41}, {from: 57, to: 48}, {from: 58, to: 55}, {from: 58, to: 48}, {from: 58, to: 27}, {from: 58, to: 57}, {from: 58, to: 11}, {from: 59, to: 58}, {from: 59, to: 55}, {from: 59, to: 48}, {from: 59, to: 57}, {from: 60, to: 48}, {from: 60, to: 58}, {from: 60, to: 59}, {from: 61, to: 48}, {from: 61, to: 58}, {from: 61, to: 60}, {from: 61, to: 59}, {from: 61, to: 57}, {from: 61, to: 55}, {from: 62, to: 55}, {from: 62, to: 58}, {from: 62, to: 59}, {from: 62, to: 48}, {from: 62, to: 57}, {from: 62, to: 41}, {from: 62, to: 61}, {from: 62, to: 60}, {from: 63, to: 59}, {from: 63, to: 48}, {from: 63, to: 62}, {from: 63, to: 57}, {from: 63, to: 58}, {from: 63, to: 61}, {from: 63, to: 60}, {from: 63, to: 55}, {from: 64, to: 55}, {from: 64, to: 62}, {from: 64, to: 48}, {from: 64, to: 63}, {from: 64, to: 58}, {from: 64, to: 61}, {from: 64, to: 60}, {from: 64, to: 59}, {from: 64, to: 57}, {from: 64, to: 11}, {from: 65, to: 63}, {from: 65, to: 64}, {from: 65, to: 48}, {from: 65, to: 62}, {from: 65, to: 58}, {from: 65, to: 61}, {from: 65, to: 60}, {from: 65, to: 59}, {from: 65, to: 57}, {from: 65, to: 55}, {from: 66, to: 64}, {from: 66, to: 58}, {from: 66, to: 59}, {from: 66, to: 62}, {from: 66, to: 65}, {from: 66, to: 48}, {from: 66, to: 63}, {from: 66, to: 61}, {from: 66, to: 60}, {from: 67, to: 57}, {from: 68, to: 25}, {from: 68, to: 11}, {from: 68, to: 24}, {from: 68, to: 27}, {from: 68, to: 48}, {from: 68, to: 41}, {from: 69, to: 25}, {from: 69, to: 68}, {from: 69, to: 11}, {from: 69, to: 24}, {from: 69, to: 27}, {from: 69, to: 48}, {from: 69, to: 41}, {from: 70, to: 25}, {from: 70, to: 69}, {from: 70, to: 68}, {from: 70, to: 11}, {from: 70, to: 24}, {from: 70, to: 27}, {from: 70, to: 41}, {from: 70, to: 58}, {from: 71, to: 27}, {from: 71, to: 69}, {from: 71, to: 68}, {from: 71, to: 70}, {from: 71, to: 11}, {from: 71, to: 48}, {from: 71, to: 41}, {from: 71, to: 25}, {from: 72, to: 26}, {from: 72, to: 27}, {from: 72, to: 11}, {from: 73, to: 48}, {from: 74, to: 48}, {from: 74, to: 73}, {from: 75, to: 69}, {from: 75, to: 68}, {from: 75, to: 25}, {from: 75, to: 48}, {from: 75, to: 41}, {from: 75, to: 70}, {from: 75, to: 71}, {from: 76, to: 64}, {from: 76, to: 65}, {from: 76, to: 66}, {from: 76, to: 63}, {from: 76, to: 62}, {from: 76, to: 48}, {from: 76, to: 58}, ]); const data = { nodes: nodes, edges: edges, }; const options = { nodes: { shape: "dot", size: 16, }, physics: { forceAtlas2Based: { gravitationalConstant: -26, centralGravity: 0.005, springLength: 230, springConstant: 0.18, }, maxVelocity: 146, solver: "forceAtlas2Based", timestep: 0.35, stabilization: {iterations: 150}, }, }; // const network = new (container, data, options); const NetWorkGraph = ()=> { const containerRef = useRef(null); useEffect(() => { new vis.Network(containerRef.current, data, options); }) return( <div ref={containerRef} style={{width:'800px',height:'300px'}}> </div> ) } export default NetWorkGraph;