如何调整点图中边缘的方向?
在提问之前,我尝试搜索我的问题的答案,但我找不到。 我的问题是关于改变点图中的边缘方向。 Rankdir 是“LR”,但在图表的某些部分,我想使用“TB”。让我举个例子。
digraph G { rankdir=LR; size="7,5"; browser->ui_thread; browser->db_thread; browser->webkit_thread; browser->cache_thread; browser->file_thread; browser->io_thread; io_thread[style=filled]; cache_thread[style=filled]; ui_thread->thread[label=inherit]; ui_thread->messageloop[style=dotted]; db_thread->messageloop[style=dotted]; webkit_thread->messageloop[style=dotted]; cache_thread->messageloop[style=dotted]; file_thread->messageloop[style=dotted]; io_thread->messageloop[style=dotted]; }
它给出这样的图表
但是,这不是我想要的。 我想要下面的图片。 “thread”垂直位于“ui_thread”上方。 您可能认为使用“rankdir=same”与“thread”和“ui_thread”可以轻松解决这个问题。 我确实已经尝试过了。但我失败了。 “thread”始终低于“ui_thread”。
谢谢,
Before asking, I tried to search the answer for my question, buf I couldn't find.
My question is about changing edge direction in dot diagram. Rankdir is 'LR', but in certain part of graph, I want to use 'TB'. Let me give an example.
digraph G { rankdir=LR; size="7,5"; browser->ui_thread; browser->db_thread; browser->webkit_thread; browser->cache_thread; browser->file_thread; browser->io_thread; io_thread[style=filled]; cache_thread[style=filled]; ui_thread->thread[label=inherit]; ui_thread->messageloop[style=dotted]; db_thread->messageloop[style=dotted]; webkit_thread->messageloop[style=dotted]; cache_thread->messageloop[style=dotted]; file_thread->messageloop[style=dotted]; io_thread->messageloop[style=dotted]; }
it gives out graph like this
But, this is not what I want.
I want the following image. "thread" is above "ui_thread" vertically.
You may think it can be solved easily using "rankdir=same" with "thread" and "ui_thread".
I sure tried this already. but I failed. "thread" is always below "ui_thread".
thanks,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不幸的是,图形方向只能指定一次,并且整个图形保持在该方向。在这种情况下,您通常可以通过结合使用
constraint=false
和不可见边来强制进行某种排序,从而获得所需的效果。此代码将生成您的第二张图像:
Unfortunately, graph direction can only be specified once, and the whole graph stays in that direction. In this situation, you can usually get the desired effect with a combination of
constraint=false
and invisible edges to force some ordering.This code will produce your second image: