Skip to content

Directed Graph

1
digraph(edges);

example_digraph_1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include <cmath>
#include <matplot/matplot.h>

std::vector<std::pair<size_t, size_t>> get_edges();

int main() {
    using namespace matplot;
    std::vector<std::pair<size_t, size_t>> edges = {
        {0, 1},   {0, 2},   {0, 3},   {0, 4},   {1, 5},  {1, 6},  {1, 7},
        {1, 8},   {1, 9},   {1, 10},  {1, 11},  {1, 12}, {1, 13}, {1, 14},
        {14, 15}, {14, 16}, {14, 17}, {14, 18}, {14, 19}};
    digraph(edges);

    show();
    return 0;
}

More examples

example_digraph_2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include <cmath>
#include <matplot/matplot.h>

int main() {
    using namespace matplot;
    std::vector<std::pair<size_t, size_t>> edges = {
        {0, 1}, {0, 2}, {0, 3}, {1, 4}, {1, 5}, {2, 4},
        {2, 6}, {3, 5}, {3, 6}, {4, 7}, {5, 7}, {6, 7}};
    auto g = digraph(edges);
    g->edge_labels(
        {"x", "y", "z", "y", "z", "x", "z", "x", "y", "z", "y", "x"});
    g->node_labels(
        {"{0}", "{x}", "{y}", "{z}", "{x,y}", "{x,z}", "{y,z}", "{x,y,z}"});

    show();
    return 0;
}

example_digraph_3

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cmath>
#include <matplot/matplot.h>

int main() {
    using namespace matplot;
    std::vector<std::pair<size_t, size_t>> edges = {
        {0, 1}, {0, 2}, {0, 9},  {1, 3},  {1, 11}, {2, 3},
        {2, 4}, {3, 5}, {4, 5},  {4, 6},  {5, 8},  {6, 7},
        {6, 9}, {7, 8}, {7, 10}, {8, 11}, {9, 10}, {10, 11}};
    auto g = digraph(edges);
    g->marker("s");
    g->node_color("red");
    g->marker_size(7);
    g->line_style("--");

    g->x_data({2, 4, 1.5, 3.5, 1, 3, 1, 2.1, 3, 2, 3.1, 4});
    g->y_data({3, 3, 3.5, 3.5, 4, 4, 2, 2, 2, 1, 1, 1});

    show();
    return 0;
}