Wolfram言語を使用してWolfram言語を解釈しますか?

Aug 20 2020

Mathematicaですべての機能の関係をプロットしたいのですが、おそらくD3.jsでGraphまたはforce-directed-graphを使用しています

k = 
  DeleteCases[
    WolframLanguageData[All, {"CanonicalName", "RelatedSymbols"}], {_, _Missing}];
k = MapAt[CanonicalName, k, {All, 2}];
data = 
  DeleteDuplicates[
    Sort /@ Flatten[Thread[#[[1]] \[UndirectedEdge] #[[2]]] & /@ k]];
GraphPlot[data, VertexSize -> Tiny, ImageSize -> Full]

ただし、数字が大きすぎます。ズームインして頂点をツールチップする方法はありますか?

試してみましたがTooltip、プロットが出ませんでした。

Graph[Tooltip[#, #] & /@ VertexList[data], data]

また、オーディオ、画像、コア言語などのカテゴリでこれらの機能を区別するために色を使用するにはどうすればよいですか?

機械学習を使用して、試したこれらの機能を区別できるかもしれませんが、うまくいきませんでした。

space = 
  Thread[
    VertexList[data] -> 
      DimensionReduce[
        FeatureExtract[VertexList[data], {"SegmentedWords", "TFIDF"}], 
        1]];
space[[All, 2]] = Normalize[Flatten@space[[All, 2]]];
NumberLinePlot[space[[All, 2]]]

更新:

バージョン:12.1.1

これらはすでにNestGraphのドキュメントのデモでした。

回答

6 BobHanlon Aug 20 2020 at 22:49

テクニカルサポートCASE:4620942

$Version

(* "12.1.1 for Mac OS X x86 (64-bit) (June 19, 2020)" *)

Clear["Global`*"]

flintyが示唆するように、 documentation

graph = WolframLanguageData["Cos", "RelationshipCommunityGraph"]

頂点のラベルが正しくレンダリングされない

Show[graph, ImageSize -> Large]

回避策として、ラベルを手動で修正します

graph /. Style[lbl_, _List] :> lbl

1 partida Aug 25 2020 at 16:07

r頂点の周りの半径を持つ近傍を抽出できる関数を定義しますn

subgraph[g_, n_, r_] := Subgraph[g, AdjacencyList[g, n, r]~Join~{n}]

Sin関数までの距離が2である近傍を見てみましょう。

subg = subgraph[Graph[data], "Sin", 2];
GraphPlot[HighlightGraph[subg, {"Sin"}], VertexLabels -> "Name", ImageSize -> Large]

次のHTMLで使用するグラフデータをエクスポートします。

json = {"nodes" -> 
    Table[{"id" -> i, "group" -> 1}, {i, VertexList@subg}], 
        "links" -> 
    Table[{"source" -> i[[1]], "target" -> i[[2]], "value" -> 1}, {i, EdgeList@subg}]};
Export["miserables.json", json]

D3.jsv4index.htmlからD3.jsスクリプトをダウンロードします。ラベル付きの強制有向グラフ

次に、ターミナルで次のように入力します(python3): python -m http.server

次にhttp://localhost:8000/Chromeで開くと、フィギュアは頂点をインタラクティブにドラッグできます

しかし、大きなグラフ全体では、D3.jsはそれを処理できません...