Wir bieten Schulungen an! Von Anfänger bis Experte - inklusive Agentic AI Coding!
Artikel Header Bild zu Diagramme in AngularJS mit D3/nvd3

Diagramme in AngularJS mit D3/nvd3

Robin Böhm 2 Min. Lesezeit

Ihr erstellt gerade eine Anwendung, in der ihr ein Linien-, Balken-, Säulen oder Kreisdiagramm benötigt? Dann seid ihr bestimmt schon auf die JavaScript-Bibliothek D3.js von Mike Bostock gestoßen. Mit D3 könnt ihr diese Art von Diagrammen auf eine sehr elegante Weise erstellen. Außerdem wird die Bibliothek kontinuierlich verbessert und liefert fast 200 Beispiele mit. Natürlich gibt es auch Bücher und eine Menge Artikel dazu.

Obwohl D3 schon sehr gut zu benutzen ist, geht es im Zusammenspiel mit AngularJS noch einfacher. Dazu bietet sich das Projekt angularjs-nvd3-directives an. Dieses Projekt kapselt eine Menge der Visualisierungen als AngularJS-Direktiven.

Aktuell hat nvd3 folgende Direktiven:

  • nvd3LineChart
  • nvd3CumulativeLineChart
  • nvd3StackedAreaChart
  • nvd3MultiBarChart
  • nvd3DiscreteBarChart
  • nvd3HistoricalBarChart
  • nvd3MultiBarHorizontalChart
  • nvd3PieChart
  • nvd3ScatterChart
  • nvd3ScatterPlusLineChart
  • nvd3LinePlusBarChart
  • nvd3LineWithFocusChart
  • nvd3BulletChart
  • nvd3SparklineChart
  • nvd3SparklineWithBandlinesChart

Ein Beispiel

Wir nehmen als Beispiel ein einfaches Liniendiagram. Die Daten werden in einem mehrdimensionalen Array abgelegt:

values: [[ 1025409600000 , 0], [ 1028088000000 , -6.3382185140371] ... ]

Dieses könnt ihr dann mit der Direktive nvd3-line-chart ausgeben.

D3 Chart

Code

💡 Keine Lust zu lesen?

Nicht jeder lernt am besten aus Büchern und Artikeln. Lernen darf interaktiv sein und Spaß machen. Wir bieten dir auch Angular Intensiv-Schulungen an, damit du tiefer in die Thematik einsteigen kannst.

Mehr Informationen zur Angular-Schulung
Teilnehmer:innen in der Veranstaltung Angular-Intensiv-Workshop

application.js

angular.module("nvd3TestApp", ['nvd3ChartDirectives'])
  .controller('MainCtrl', function ($scope) {
    $scope.data = [
      {
        key: "Series 1",
        values: [[ 1025409600000 , 0], [ 1028088000000 , -6.3382185140371] ... ]
      }
    ];
    $scope.xAxisTickFormat = function () {
      return function (d) {
        return d3.time.format('%x')(new Date(d));
      }
    };

    $scope.yAxisTickFormat = function () {
      return function (d) {
        return Math.round(d,10);
      }
    };
});

index.html

<html ng-app="nvd3TestApp">
  <head>
    <script src="d3.js"></script>
    <script src="nv.d3.js"></script>
    <script src="angular.js"></script>
    <script src="angularjs-nvd3-directives.js"></script>
    <script src="application.js"></script>
    <link rel="stylesheet" href="nv.d3.css" />
  </head>
  <body ng-controller="MainCtrl">
    <nvd3-line-chart
      data="data"
      id="exampleId"
      xAxisTickFormat="xAxisTickFormat()"
      yAxisTickFormat="yAxisTickFormat()"
      width="550"
      height="350"
      showXAxis="true"
      showYAxis="true"
    >
    </nvd3-line-chart>
  </body>
</html>

💡 Hat dir das Tutorial geholfen?

Wir bieten auch Angular-Intensiv-Schulungen an, um dich möglichst effektiv in das Thema Angular zu begleiten. Im Kurs kannst Du die Fragen stellen, die Du nur schlecht googeln kannst, z.B. "Besserer Weg, um meine Applikation zu strukturieren?". Wir können sie Dir beantworten.

Jetzt weiter lernen
Teilnehmer:innen der Veranstaltung Angular-Intensiv-Workshop

Weitere Diagramm-Beispiele findet ihr in der Projektdokumentation.

Viel Spaß beim Ausprobieren!

Robin Böhm

Robin Böhm

Gründer von Angular.DE
Entwickler, Trainer und Buch-Autor

Robin beschäftigt sich seit 2012 intensiv mit der Erstellung client-seitiger Web-Applikationen. 2014 hat er das erste deutschsprachige Buch zum Thema AngularJS geschrieben und ist Mitgründer der Platform Angular.DE. Mit seinem Schulungs-Team hat er bereits über 1200 Unternehmen den erfolgreichen Start mit Angular ermöglicht.

Weitere Artikel

Migration AngularJS zu Angular
angularjs angular
Jonathan Schneider •

Migration AngularJS zu Angular

Migration mit ngUpgrade leichtgemacht. Eine Zusammenfassung über alle wichtigen Schritte, wie ihr eure AngularJS App zu einer Angular App migrieren könnt.

Migration AngularJS zu Angular [Video]
angularjs angular
Robin Böhm •

Migration AngularJS zu Angular [Video]

Angular Version >2.x kommt … und es macht alles anders! Ist das wirklich so? Was hat das für meine Anwendung zu bedeuten? Mehr darüber in diesem Artikel!

Newsletter

Bleibe auf dem Laufenden mit den neuesten Angular News, Tutorials und Schulungsangeboten.

Newsletter abonnieren