Je souhaite utiliser les graphiques D3 dans l'un de mes projets, merci de m'aider.
J'ai essayé de suivre le processus d'installation. mais cela ne fonctionne pas correctement peasen me fournit une autre solution afin de pouvoir la mettre en œuvre dans le projet existant.
npm install d3-ng2-service --save
import { BrowserModule } from '@angular/platform-browser';
import { NgModule, ApplicationRef } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
import { D3Service } from 'd3-ng2-service'; // <-- import statement
@NgModule({
declarations: [
AppComponent,
TestD3Component // <-- declaration of the D3 Test component used below
],
imports: [
BrowserModule,
CommonModule,
FormsModule
],
providers: [D3Service], // <-- provider registration
entryComponents: [AppComponent],
bootstrap: [AppComponent]
})
export class AppModule {
}
Il y a deux implémentation des cartes D3
Graphiques 1.ng2-nvd3
Graphiques 2.ngx
Je vais donc implémenter les cartes ng2-nvd3
peut également le cloner de https://github.com/DevInder1/ng2-nvd3-charts
D'abord besoin de l'installer
npm install ng2-nvd3 --save
Puis importez-le dans NgModule et avez également besoin d'importer d3 et nvd3, comme je l'importe ci-dessous
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import 'd3';
import 'nvd3'
import {NvD3Module} from "ng2-nvd3";
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
NvD3Module,
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Après cela, vous devez ajouter un style au fichier .angular-cli.json
"styles": [
"styles.css",
"../node_modules/nvd3/build/nv.d3.css"
],
Ensuite, vous devez accéder à votre fichier composant.ts dans cet exemple. J'utilise App.component.ts et vous devez fournir des données et un objet option à la directive chart .
import {Component} from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
options: any;
data: any;
constructor() {
this.options = {
chart: {
type: 'pieChart',
height: 500,
x: function (d) {
return d.key;
},
y: function (d) {
return d.y;
},
showLabels: true,
duration: 500,
labelThreshold: 0.01,
labelSunbeamLayout: true,
legend: {
margin: {
top: 5,
right: 35,
bottom: 5,
left: 0
}
}
}
};
this.data = [
{
key: "P60-1",
y: 256
},
{
key: "P60-2",
y: 445
},
{
key: "P40",
y: 225
},
{
key: "P73",
y: 127
},
{
key: "P71",
y: 128
}
];
}
}
une fois que cela est fait dans votre HTML, vous devez fournir la directive Chart dans mon exemple, il s'agit de app.component.html
<div>
<nvd3 [options]="options" [data]="data"></nvd3>
</div>
Solution de bout en bout pour ngx-nvd3. angulaire 6
Exigences:
1.Install "d3": "^3.5.17"
2.Install "ngx-nvd3": "^1.0.9"
app.module.ts (appModule)
import { NvD3Module } from 'ngx-nvd3'
imports: [NvD3Module]
admin.component.html (HTML)
<div>
<nvd3 [options]="options" [data]="datas">
</nvd3>
</div>
admin.component.ts (fichier .ts de composant)
import * as d3 from "d3";
datas:any
styleUrls: ['./adminpanel.component.css','../../../node_modules/nvd3/build/nv.d3.css']
this.options = {
chart: {
type: 'discreteBarChart',
height: 450,
margin: {
top: 20,
right: 20,
bottom: 50,
left: 55
},
x: function (d) {
return d.label;
},
y: function (d) {
return d.value + (1e-10);
},
showValues: true,
valueFormat: function (d) {
return d3.format(',.4f')(d);
},
duration: 500,
xAxis: {
axisLabel: 'X Axis'
},
yAxis: {
axisLabel: 'Y Axis',
axisLabelDistance: -10
}
}
};
this.datas = [
{
key: "Cumulative Return",
values: [
{
"label" : "A" ,
"value" : -29.765957771107
} ,
{
"label" : "B" ,
"value" : 0
} ,
{
"label" : "C" ,
"value" : 32.807804682612
} ,
{
"label" : "d" ,
"value" : 60.807804682612
} ,
{
"label" : "e" ,
"value" : 70.807804682612
} ,
{
"label" : "f" ,
"value" : 80.807804682612
} ,
]
}
];