Skip to content
daisyBlazor

ArcDiagramChart

Nodes in a row on one baseline, each link an arc above it as thick as its value: shared tickets between teams, calls between services. D3 places the nodes and arcs; the chart draws them in theme colours with the names below.
Hierarchy and networks
Cover · <ArcDiagramChart>
Arc diagramSupport linked to Billing: 34; Support linked to Platform: 21; Support linked to Product: 28; Product linked to Design: 40; Product linked to Platform: 18; Platform linked to Data: 12; Data linked to Billing: 9Support – Billing: 34Support – Platform: 21Support – Product: 28Product – Design: 40Product – Platform: 18Platform – Data: 12Data – Billing: 9Support: 3 linksSupportBilling: 2 linksBillingPlatform: 3 linksPlatformProduct: 3 linksProductDesign: 1 linkDesignData: 2 linksData

Examples

Basic

Each GraphLink joins two node names with a Value; nodes appear in order of first mention and grow with their number of links.

Shared tickets between teams
Shared tickets between teamsSupport linked to Billing: 34; Support linked to Platform: 21; Support linked to Product: 28; Product linked to Design: 40; Product linked to Platform: 18; Platform linked to Security: 15; Platform linked to Data: 12; Data linked to Billing: 9; Security linked to Support: 6; Design linked to Support: 5Support – Billing: 34Support – Platform: 21Support – Product: 28Product – Design: 40Product – Platform: 18Platform – Security: 15Platform – Data: 12Data – Billing: 9Security – Support: 6Design – Support: 5Support: 5 linksSupportBilling: 2 linksBillingPlatform: 4 linksPlatformProduct: 3 linksProductDesign: 2 linksDesignSecurity: 2 linksSecurityData: 2 linksData
website/Examples/Charts/ArcDiagramChartBasicExample.razor Source

Groups and order

Nodes gives each node a Group (colour and legend); Sort="Group" places each group side by side so links inside a group stay short.

Arc diagramCDN linked to Gateway: 80M calls; Gateway linked to Auth: 42M calls; Gateway linked to Projects: 35M calls; Gateway linked to Search: 18M calls; Projects linked to Database: 30M calls; Projects linked to Storage: 22M calls; Auth linked to Database: 25M calls; Search linked to Database: 10M calls; Projects linked to Queue: 8M callsCDN – Gateway: 80M callsGateway – Auth: 42M callsGateway – Projects: 35M callsGateway – Search: 18M callsProjects – Database: 30M callsProjects – Storage: 22M callsAuth – Database: 25M callsSearch – Database: 10M callsProjects – Queue: 8M callsGateway (Edge): 4 linksGatewayDatabase (Data): 3 linksDatabaseAuth (Core): 2 linksAuthStorage (Data): 1 linkStorageProjects (Core): 4 linksProjectsCDN (Edge): 1 linkCDNSearch (Core): 2 linksSearchQueue (Data): 1 linkQueue
Edge Data Core
website/Examples/Charts/ArcDiagramChartGroupsExample.razor Source

Playground

Shared tickets between teams
Shared tickets between teamsSupport linked to Billing: 34; Support linked to Platform: 21; Support linked to Product: 28; Product linked to Design: 40; Product linked to Platform: 18; Platform linked to Security: 15; Platform linked to Data: 12; Data linked to Billing: 9; Security linked to Support: 6; Design linked to Support: 5Support – Billing: 34Support – Platform: 21Support – Product: 28Product – Design: 40Product – Platform: 18Platform – Security: 15Platform – Data: 12Data – Billing: 9Security – Support: 6Design – Support: 5Support: 5 linksSupportBilling: 2 linksBillingPlatform: 4 linksPlatformProduct: 3 linksProductDesign: 2 linksDesignSecurity: 2 linksSecurityData: 2 linksData
Sort ArcDiagramSort
<ArcDiagramChart
                 Title="Shared tickets between teams"
                 Links="@_shared" />

@code {
    private readonly GraphLink[] _shared =
    [
        new("Support", "Billing", 34),
        new("Support", "Platform", 21),
        new("Support", "Product", 28),
        new("Product", "Design", 40),
        new("Product", "Platform", 18),
        new("Platform", "Security", 15),
        new("Platform", "Data", 12),
        new("Data", "Billing", 9),
        new("Security", "Support", 6),
        new("Design", "Support", 5),
    ];
}

API

<ArcDiagramChart>

DaisyBlazor.Charts

Parameters

  • AspectRatio double
    = 1.78

    Width divided by height. The chart keeps this shape at any width; its text keeps its size.

  • GroupColors IReadOnlyDictionary<string, string>
    = null

    Optional colour per group name (any CSS colour); other groups cycle through the theme palette.

  • Links IReadOnlyList<GraphLink>
    = []

    The connections. Node names come from Source and Target; links to the same node or without a positive Value are skipped.

  • Nodes IReadOnlyList<GraphNode>
    = null

    Optional node list: sets the order and each node's Group (its colour), and adds nodes that have no links.

  • RowHeight double?
    = null

    Height of each row in px, for a chart that lays its categories out as rows (horizontal bars, a Gantt's lanes, a heatmap's rows…): its height then follows its number of rows instead of AspectRatio, so a long list keeps readable rows at any width. A chart, or an orientation, without rows ignores it.

  • ShowLegend bool
    = true

    Show a colour key for the node groups under the chart.

  • ShowTitle bool
    = true

    Draw Title as a visible heading above the chart (the default); false keeps it only as the chart's accessible name, for a chart inside a card that already has a heading.

  • Sort ArcDiagramSort
    = ArcDiagramSort.Input

    How the nodes are ordered on the baseline.

  • Title string
    = null

    Optional heading rendered above the chart; it is also the chart's accessible name.

  • ValueFormat string
    = "{0:#,0.##}"

    Format string for link values in tooltips, e.g. "{0:N0} calls".

  • Width string
    = "100%"

    CSS width of the chart wrapper.

  • Class string
    = null

    Additional CSS classes merged onto the w-full wrapper.

  • Style string
    = null

    Inline styles appended after the width on the wrapper.

Something went wrong while running the docs. Reload