質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

996閲覧

ruby graphvizで、edgeのheadport、tailportを指定したい

yamahirog

総合スコア2

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

1クリップ

投稿2021/04/28 03:42

ruby graphvizで、edgeのheadport、tailportを指定したい

ruby graphvizでheadport、tailportの指定ができず困っています。

ruby

1require "gviz" 2 3Graph do 4 global layout:"dot", overlap:false 5 nodes width: 2, height: 1, fontname:"MS UI GOTHIC", :style => :filled, :fillcolor => :white 6 7 8 node :a, {label: "a"} 9 node :b, {label: "b"} 10 node :c, {label: "c"} 11 node :d, {label: "d"} 12 node :e, {label: "e"} 13 node :f, {label: "f"} 14 15 edge :a_b 16 edge :b_d 17 edge :c_d 18 edge :d_e 19 edge :d_e 20 edge :b_f 21 22save :"abc", :png 23end

edge :b_dのheadportをs、tailportをnに指定したいと考えています。

試したこと

ruby

1 edge :b_d[headport= s, tailport= n]

ruby

1 edge :b_d[headport="s", tailport="n"]

ruby

1 edge :b_d{headport=s, tailport=n}

など、試みましたが出力できません。
アドバイスお願いいたします。

参考にしたもの
Graphvizとdot言語でグラフを描く方法のまとめ

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Gvizを読んでみると、nodeメソッドはハッシュなオプションを素朴にDOT形式の文字列に変換しているように見えます。
具体的には edge :b_d, { headport: 's', tailport: 'n' } のように与えます。

(余談ですが、Graphメソッドにinstance_evalメソッドが使われていて、こういう風にDSLが作られるんだ、と思いました。)

投稿2021/04/29 05:05

編集2021/04/29 05:07
gemmaro

総合スコア358

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamahirog

2021/04/29 14:00

アドバイスありがとうございます! おかげさまで問題解決できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問