Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

License

NotificationsYou must be signed in to change notification settings

plotly/angular-plotly.js

Repository files navigation

angular-plotly-logo

Aplotly.js Angular component fromPlotly.

CircleCICoverage Status

Maintained by the Plotly Community

Supports Angular 9.x and up. If you want to use with Angular 8.x, please use versionangular-plotly.js@1.x.

Content

Installation

Using theangular CLI to start a new project

$ ng new my-project$cd my-project$ npm install angular-plotly.js plotly.js-dist-min --save$ npm install @types/plotly.js-dist-min --save-dev

Quick start

Add thePlotlyModule into the main app module of your project

import{NgModule}from'@angular/core';import{CommonModule}from'@angular/common';import*asPlotlyJSfrom'plotly.js-dist-min';import{PlotlyModule}from'angular-plotly.js';PlotlyModule.plotlyjs=PlotlyJS;@NgModule({imports:[CommonModule,PlotlyModule],    ...})exportclassAppModule{}

Then use the<plotly-plot> component to display the graph

import{Component}from'@angular/core';@Component({selector:'plotly-example',template:'<plotly-plot [data]="graph.data" [layout]="graph.layout"></plotly-plot>',})exportclassPlotlyExampleComponent{publicgraph={data:[{x:[1,2,3],y:[2,6,3],type:'scatter',mode:'lines+points',marker:{color:'red'}},{x:[1,2,3],y:[2,5,3],type:'bar'},],layout:{width:320,height:240,title:'A Fancy Plot'}};}

You should see a plot like this:

Example plot

For a full description of Plotly chart types and attributes see the following resources:

Theplotly.js is bundled within the angular code. To avoid this, please readhow to customize the plotlyjs bundle below.

API Reference

Basic Props

PropTypeDefaultDescription
[data]Array[]list of trace objects (seehttps://plot.ly/javascript/reference/)
[layout]Objectundefinedlayout object (seehttps://plot.ly/javascript/reference/#layout)
[frames]Arrayundefinedlist of frame objects (seehttps://plot.ly/javascript/reference/)
[config]Objectundefinedconfig object (seehttps://plot.ly/javascript/configuration-options/)
[revision]NumberundefinedWhen provided, causes the plot to update when the revision is incremented.
[updateOnLayoutChange]BooleantrueFlag which determines if this component should watch to changes onlayout property and update the graph.
[updateOnDataChange]BooleantrueFlag which determines if this component should watch to changes ondata property and update the graph.
[updateOnlyWithRevision]BooleanfalseIftrue, this component will update only when the propertyrevision is increased.
(initialized)Function(figure, graphDiv)undefinedCallback executed after plot is initialized. See below for parameter information.
(update)Function(figure, graphDiv)undefinedCallback executed when when a plot is updated due to new data or layout, or when user interacts with a plot. See below for parameter information.
(purge)Function(figure, graphDiv)undefinedCallback executed when component unmounts, beforePlotly.purge strips thegraphDiv of all private attributes. See below for parameter information.
(error)Function(err)undefinedCallback executed when a plotly.js API method rejects
[divId]stringundefinedid assigned to the<div> into which the plot is rendered.
[className]stringundefinedapplied to the<div> into which the plot is rendered
[style]Object{position: 'relative', display: 'inline-block'}used to style the<div> into which the plot is rendered
[debug]BooleanfalseAssign the graph div towindow.gd for debugging
[useResizeHandler]BooleanfalseWhen true, adds a call toPlotly.Plot.resize() as awindow.resize event handler

Note: To make a plot responsive, i.e. to fill its containing element and resize when the window is resized, usestyle orclassName to set the dimensions of the element (i.e. usingwidth: 100%; height: 100% or some similar values) and setuseResizeHandler totrue while settinglayout.autosize totrue and leavinglayout.height andlayout.width undefined. This will implement the behaviour documented here:https://plot.ly/javascript/responsive-fluid-layout/

@Component({selector:'plotly-example',template:`    <plotly-plot [data]="graph.data" [layout]="graph.layout"       [useResizeHandler]="true" [style]="{position: 'relative', width: '100%', height: '100%'}">    </plotly-plot>`,})exportclassPlotlyExampleComponent{publicgraph={data:[{x:[1,2,3],y:[2,5,3],type:'bar'}],layout:{autosize:true,title:'A Fancy Plot'},};}

Event handler props

Event handlers for specificplotly.js events may be attached through the following props:

PropTypePlotly EventObs
(afterExport)Functionplotly_afterexport
(afterPlot)Functionplotly_afterplot
(animated)Functionplotly_animated
(animatingFrame)Functionplotly_animatingframe
(animationInterrupted)Functionplotly_animationinterrupted
(autoSize)Functionplotly_autosize
(beforeExport)Functionplotly_beforeexport
(buttonClicked)Functionplotly_buttonclicked
(plotlyClick)Functionplotly_clickwhy not (click)?
(clickAnnotation)Functionplotly_clickannotation
(deselect)Functionplotly_deselect
(doubleClick)Functionplotly_doubleclick
(framework)Functionplotly_framework
(hover)Functionplotly_hover
(legendClick)Functionplotly_legendclick
(legendDoubleClick)Functionplotly_legenddoubleclick
(react)Functionplotly_react
(relayout)Functionplotly_relayout
(restyle)Functionplotly_restyle
(redraw)Functionplotly_redraw
(selected)Functionplotly_selected
(selecting)Functionplotly_selecting
(sliderChange)Functionplotly_sliderchange
(sliderEnd)Functionplotly_sliderend
(sliderStart)Functionplotly_sliderstart
(transitioning)Functionplotly_transitioning
(transitionInterrupted)Functionplotly_transitioninterrupted
(unhover)Functionplotly_unhover
(relayouting)Functionplotly_relayouting
(treemapclick)Functionplotly_treemapclick
(sunburstclick)Functionplotly_sunburstclick

Customizing <plotly-plot> component

<plotly-plot> component supports injection of user-defined contents:

<plotly-plot>    user-defined Angular template</plotly-plot>

will put the user template into the root<div> of the resultingplotly.js plot,in front of any plotly-generated elements. This could be useful for implementing plot overlays.

Customizing theplotly.js bundle

By default, this library bundlesplotly.js from the peer dependency together within the output. This results on huge outputs, forplotly.js itself is ~3MB when bundled. It also makes the build (withng serve --prod) really slow, for it minifies everything together.

If you wish to optimize loadingplotly.js in a different way, please check bothPlotlyViaCDNModule andPlotlyViaWindowModule modules below.

Plotly Via CDN Module

If you want to loadplotly.jsfrom a CDN, use thePlotlyViaCDNModule and set on thePlotlyViaCDNModule.plotlyVersion property the plotly.js's version you want to use and, optionally, you can also set on thePlotlyViaCDNModule.plotlyBundle property the plotly.js's build you want to use:

import{NgModule}from'@angular/core';import{CommonModule}from'@angular/common';import{PlotlyViaCDNModule}from'angular-plotly.js';PlotlyViaCDNModule.setPlotlyVersion('1.55.2');// can be `latest` or any version number (i.e.: '1.40.0')PlotlyViaCDNModule.setPlotlyBundle('basic');// optional: can be null (for full) or 'basic', 'cartesian', 'geo', 'gl3d', 'gl2d', 'mapbox' or 'finance'@NgModule({imports:[CommonModule,PlotlyViaCDNModule,],    ...})exportclassAppModule{}

By default, plotly's CDN is used to fetch the requested bundle.js. However, you can either chooseplotly,cloudflare orcustom.

...// For cloudflarePlotlyViaCDNModule.setPlotlyVersion('1.55.2','cloudflare');// cloudflare doesn't support `latest`. It is mandatory to supply version.PlotlyViaCDNModule.setPlotlyBundle('basic');// optional: can be null (for full) or 'basic', 'cartesian', 'geo', 'gl3d', 'gl2d', 'mapbox' or 'finance'// For custom CDN URLPlotlyViaCDNModule.loadViaCDN('custom','https://custom.cdn/url');// can be used directly for any self hosted plotly bundle...

Plotly Via Window Module

plotly.js can be added as aglobal script on angular.json to avoid it being bundled into the final project's code. To make this happen, you must first addplotly.js path intoangular.json file as shown below:

// angular.json{    ..."projects":{"project-name":{// This is your project's name            ..."architect":{"build":{                    ..."options":{"scripts":["node_modules/plotly.js-dist-min/plotly.min.js"// add this]}}}...}}}

This will includeplotly.js into thevendor.js file generated by angular CLI build process, andplotly.js library will be loaded before angular and your project's code. Thewindow.Plotly will be available. Thus, you must usePlotlyViaWindowModule module to forceangular-plotly.js to usewindow.Plotly object:

import{NgModule}from'@angular/core';import{CommonModule}from'@angular/common';import{PlotlyViaWindowModule}from'angular-plotly.js';@NgModule({imports:[CommonModule,PlotlyViaWindowModule],    ...})exportclassAppModule{}

If you want to use adifferent precompiled bundle or if you wish toassemble you own customized bundle, you can usePlotlyViaWindowModule to force the use ofwindow.Plotly object as shown above.

Development

To get started:

$ npm install

To see the demo app, run:

$ npm start

To run the tests:

$ npm runtest

FAQ

Please, check theFAQ

License

© 2019 Plotly, Inc. MIT License.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

    Packages

    No packages published

    [8]ページ先頭

    ©2009-2025 Movatter.jp