①FとGが横並びになる方法を教えて下さい。
GVファイル(graph description language)にrankがでてきません

②スモールsをつけない方法を教えて下さい。
sをつけないと、絵が重なります。

上向き矢印↑を作ってみました。目標は、graphviz,pythonでトーナメント表(tournament)作成です。よろしくお願いします。

def apply_styles(graph, styles):       
    graph.graph_attr.update(
        ('graph' in styles and styles['graph']) or {}
    )
    graph.node_attr.update(
        ('nodes' in styles and styles['nodes']) or {}
    )
    graph.edge_attr.update(
        ('edges' in styles and styles['edges']) or {}
    )
    return graph
from graphviz import Digraph
g = Digraph('G', filename='cluster.gv')
with g.subgraph(name='cluster_1') as c:
    c.edges([('1', 'A'), ('1', 'B'),
             ('2', 'C'), ('2', 'D'),
             ('3', 'E'), ('3', 'F'),
             ('6', '4'), ('6', '5'),
             ('4', '1'), ('4', '2'),
             ('5', '3'), ('5', 'G')
             ])
with g.subgraph(name='cluster_2') as c:
    c.edges([('s1', 'sA'), ('s1', 'sB'),
             ('s2', 'sC'), ('s2', 'sD'),
             ('s3', 'sE'), ('s3', 'sF'),
             ('s6', 's4'), ('s6', 's5'),
             ('s4', 's1'), ('s4', 's2'),
             ('s5', 's3'), ('s5', 'sG')
             ])
    styles = {
        'rank': {'same;sF;sG'},
        'edges': {
             'dir': 'both',
             'arrowhead': 'none',
             'arrowtail': 'normal'
            }
       }
    c = apply_styles(c, styles)
g.view()

出力

digraph G {
    subgraph cluster_1 {
            1 -> A
            1 -> B
            2 -> C
            2 -> D
            3 -> E
            3 -> F
            6 -> 4
            6 -> 5
            4 -> 1
            4 -> 2
            5 -> 3
            5 -> G
    }
    subgraph cluster_2 {
        edge [arrowhead=none arrowtail=normal dir=both]
            s1 -> sA
            s1 -> sB
            s2 -> sC
            s2 -> sD
            s3 -> sE
            s3 -> sF
            s6 -> s4
            s6 -> s5
            s4 -> s1
            s4 -> s2
            s5 -> s3
            s5 -> sG
    }
}