it-swarm.com.de

Wie verwende ich Highcharts mit Winkel 5?

Gibt es eine Möglichkeit, highcharts.js mit angle2 zu verwenden? Gibt es eine Option anstelle von Highcharts?

18

Sie könnten auch versuchen, angle2-highcharts ich implementiere.

22

Ich weiß, dass diese Frage etwas altmodisch ist, aber einer der ersten Treffer für die Abfragen von angle2 + highcharts ist. Hier ist ein Plunker-Beispiel: https://plnkr.co/edit/8ccBrP?p=preview .

Hier ist die Hauptlogik:

import {
    Component,
    ElementRef,
    AfterViewInit,
    OnDestroy,
    ViewChild
} from '@angular/core';

const Highcharts = require('highcharts/highcharts.src');
import 'highcharts/adapters/standalone-framework.src';

@Component({
    selector: 'my-app',
    template: `
        <div>
            <div #chart></div>
        </div>
    `
})
export class AppComponent implements AfterViewInit, OnDestroy {
  @ViewChild('chart') public chartEl: ElementRef;

  private _chart: any;

  public ngAfterViewInit() {
    let opts: any = {
        title: {
            text: 'Monthly Average Temperature',
            x: -20 //center
        },
        xAxis: {
            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
                'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
        },
        series: [{
            name: 'Tokyo',
            data: [
                7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2,
                26.5, 23.3, 18.3, 13.9, 9.6
            ]
        }]
    };

    if (this.chartEl && this.chartEl.nativeElement) {
        opts.chart = {
            type: 'line',
            renderTo: this.chartEl.nativeElement
        };

        this._chart = new Highcharts.Chart(opts);
    }
  }

  public ngOnDestroy() {
    this._chart.destroy();
  }
}
13
roto

Ich denke, dass Sie ng2-highchart ( https://github.com/Bigous/ng2-highcharts ) ausprobieren könnten.

Dieses Projekt zeigt ein Anwendungsbeispiel: https://github.com/Bigous/angular2-seed-ng2-highcharts .

10

Um diese Bibliothek zu installieren, installieren Sie zuerst die Abhängigkeiten der Peer:

$ npm install --save [email protected]^4.2.1

Stellen Sie außerdem sicher, dass Sie die Typisierung für Highcharts installieren:

$ npm install @types/highcharts --save

Dann installieren Sie diese Bibliothek mit:

$ npm install --save ng2-highcharts

app.module

import { Ng2HighchartsModule } from 'ng2-highcharts';

add Ng2HighchartsModule to @NgModule => imports

angle cli Fügen Sie diese JS-Dateien im Skript hinzu

"../node_modules/highcharts/highcharts.js",
    "../node_modules/highcharts/highcharts-more.js", 
    "../node_modules/highcharts/modules/exporting.js"

komponentendatei

import { Ng2Highcharts } from 'ng2-highcharts';


private chartData = {
chart: {
  type: 'column'
},
xAxis: {
  categories: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
},
series: [
  {
    name: 'NC',
    data: [7057, 6858, 6643, 6570, 6115, 107, 31, 635, 203, 2, 2]
  }, {
    name: 'OK',
    data: [54047, 52484, 50591, 49479, 46677, 33, 156, 947, 408, 6, 2]
  }, {
    name: 'KO',
    data: [11388, 11115, 10742, 10757, 10290, 973, 914, 4054, 732, 34, 2]
  }, {
    name: 'VALID',
    data: [8836, 8509, 8255, 7760, 7621, 973, 914, 4054, 732, 34, 2]
  }, {
    name: 'CHECK',
    data: [115, 162, 150, 187, 172, 973, 914, 4054, 732, 34, 2]
  }, {
    name: 'COR',
    data: [12566, 12116, 11446, 10749, 10439, 973, 914, 4054, 732, 34, 2]
  }
]};

Und das HTML

<div [ng2-highcharts]="chartData"></div>
5
Mahendra Waykos

Dies wurde zu package.json hinzugefügt:

"angular2-highcharts": "^0.3.3",
"highcharts": "^5.0.0",

Dies wurde in der Datei main.module.ts hinzugefügt:

import { ChartModule } from 'angular2-highcharts';

Dies wurde bei main.module.ts im @NgModule-Importabschnitt hinzugefügt

imports: [ // import Angular's modules    
    ChartModule
],

Dies wurde in der vendor.ts-Datei hinzugefügt:

//Angular2-highcharts
import { Highcharts } from 'angular2-highcharts';
require('highcharts/highcharts-more')(Highcharts);
require('highcharts/modules/solid-gauge')(Highcharts);

Dies wurde in der Datei chart.component.ts hinzugefügt

import { Highcharts } from 'angular2-highcharts';

deklarieren Sie dies innerhalb des Klassencodes der chart.component:

options: HighchartsOptions;
chartData: any = [];

Fügen Sie diesen Code in der Methode hinzu, mit der die Daten an das Diagramm gebunden werden:

this.options = {
      chart: { type: 'spline' },
      title : { text : 'chart' },
      xAxis: {
          type: 'datetime'
      },
      series: [{
        name: "name",
        data: this.chartData
      }]
    };

Dies wurde auf der chart.component.html-Seite hinzugefügt:

<div>
      <chart [options]="options"></chart>
    </div>
4
user2347528

Versuchen Sie diesen Ansatz ohne die Bibliothek eines Drittanbieters.

import {Component} from 'angular2/core';

declare var jQuery:any;

@Component({
    selector: 'my-chart',
    template: `<div style="width:60%" id="container"></div>`
})
export class AppComponent { 
    private data = [
            {
                name: 'USA',
                data: [null, null, null, null, null, 6, 11, 32, 110, 235, 369, 640,
                    1005, 1436, 2063, 3057, 4618, 6444, 9822, 15468, 20434, 24126,
                    27387, 29459, 31056, 31982, 32040, 31233, 29224, 27342, 26662,
                    26956, 27912, 28999, 28965, 27826, 25579, 25722, 24826, 24605,
                    24304, 23464, 23708, 24099, 24357, 24237, 24401, 24344, 23586,
                    22380, 21004, 17287, 14747, 13076, 12555, 12144, 11009, 10950,
                    10871, 10824, 10577, 10527, 10475, 10421, 10358, 10295, 10104]
            }, 
            {
                name: 'USSR/Russia',
                data: [null, null, null, null, null, null, null, null, null, null,
                    5, 25, 50, 120, 150, 200, 426, 660, 869, 1060, 1605, 2471, 3322,
                    4238, 5221, 6129, 7089, 8339, 9399, 10538, 11643, 13092, 14478,
                    15915, 17385, 19055, 21205, 23044, 25393, 27935, 30062, 32049,
                    33952, 35804, 37431, 39197, 45000, 43000, 41000, 39000, 37000,
                    35000, 33000, 31000, 29000, 27000, 25000, 24000, 23000, 22000,
                    21000, 20000, 19000, 18000, 18000, 17000, 16000]
            }];

    ngAfterViewInit() {
        this.renderChart();
    }

    renderChart(){
        jQuery('#container').highcharts({
            chart: {
                type: 'area'
            },
            title: {
                text: 'US and USSR nuclear stockpiles'
            },
            subtitle: {
                text: 'Source: thebulletin.metapress.com'
            },
            xAxis: {
                allowDecimals: false,
                labels: {
                    formatter: function () {
                        return this.value;
                    }
                }
            },
            yAxis: {
                title: {
                    text: 'Nuclear weapon states'
                },
                labels: {
                    formatter: function () {
                        return this.value / 1000 + 'k';
                    }
                }
            },
            tooltip: {
                pointFormat: '{series.name} produced <b>{point.y:,.0f}</b>' +
                             '<br/>warheads in {point.x}'
            },
            plotOptions: {
                area: {
                    pointStart: 1940,
                    marker: {
                        enabled: false,
                        symbol: 'circle',
                        radius: 2,
                        states: {
                            hover: {
                                enabled: true
                            }
                        }
                    }
                }
            },
            series: this.data
        });
    }
}

Und notieren Sie das auf index.html

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>

Oder probieren Sie dieses Modul http://ngmodules.org/modules/angular2-highcharts , wenn Sie ein Punktauswahlereignis behandeln müssen.

3
Michal

PrimeNG-Diagramme können eine Alternative sein. http://www.primefaces.org/primeng/

3
Cagatay Civici

Nur mit offiziellem Highcharts-Modul (ohne Winkel2-Highcharts und andere und sogar @ Typen/Highcharts)

npm install --save-dev highcharts

import * as HC from 'highcharts';
...
export class MainComponent implements OnInit, AfterViewInit {
...
ngAfterViewInit() {
  let chartOptions = {
  ...
    chart: {
      renderTo: 'chartPanel', // need to have div #chartPanel in template
      ...
    }
  }
  this.chartInstance = new HC.Chart(chartOptions);
}

this.chartInstance verfügt über alle Highcharts-Methoden wie addSeries, Reflow, Redraw usw.

1
Andrey

Ich habe es noch nicht getestet, aber HighCharts hat seine offizielle Angular Library , die offenbar aktiv ist.

1
LeonardoX

Stand Oktober 2018:

angle-highcharts ist das neue Kind im Block und hat angle2-highcharts an Popularität überholt.

angle-highcharts ist eine auf Angular-Direktiven basierende Implementierung von Highcharts. ATTOW erfordert Angular 7 (das kürzlich veröffentlicht wurde).

Ich habe keine Verbindung zu einer der Bibliotheken.

1
danday74