Guide component is used for annotations of chart. In F2, annotations are driven by data. Being driven by data means that the aesthetics of an annotation object are linked to variables in a dataset in a similar manner to that for a graphic. A text annotation, for example, might be positioned according to a value of a variable, or its color might be determined by a variable value, or its content might be determined by statistical parameters.
We provide 8 types of guide components, we will introduce them and their usage below.
How to Register Guide Plugin
F2 has modular structure provides best tree-shaking results and package size optimization.
If you just import F2 from '@antv/f2', then it has included 6 types Guide by default, they are Arc, Html, Line, Rect, Tag and Text. But if you want a better package size optimization, you can register manually:
If you want to use all types of guide, you can:
constF2=require('@antv/f2/lib/core');// Step 1: require guide componentsrequire('@antv/f2/lib/component/guide'); // require all guide components// Step 2: require guide pluginconstGuide=require('@antv/f2/lib/plugin/guide');// Step 3:register Guide pluginF2.Chart.plugins.register(Guide); // Global registeration here, for all chart instances.// Or just for current chart instanceconstchart=newF2.Chart({ id:'canvas', plugins: Guide});
or you just want to use several types, you can:
constF2=require('@antv/f2/lib/core');// All guide types are listed below, and you can choose one according to your needs.// Guide.Arcrequire('@antv/f2/lib/component/guide/arc');// Guide.Htmlrequire('@antv/f2/lib/component/guide/html');// Guide.Textrequire('@antv/f2/lib/component/guide/text');// Guide.Rectrequire('@antv/f2/lib/component/guide/rect');// Guide.Linerequire('@antv/f2/lib/component/guide/line');// Guide.Pointrequire('@antv/f2/lib/component/guide/point');// Guide.Tagrequire('@antv/f2/lib/component/guide/tag');// Guide.RegionFilterrequire('@antv/f2/lib/component/guide/region-filter');// Step 2: require guide pluginconstGuide=require('@antv/f2/lib/plugin/guide');// Step 3:register Guide pluginF2.Chart.plugins.register(Guide); // Global registeration here, for all chart instances.// Or just for current chart instanceconstchart=newF2.Chart({ id:'canvas', plugins: Guide});
The global options for the chart guide tag is defined in F2.Global.guide.tag.
direct
backgroud configuration
background: { padding:20,// padding of the tag, just use as css padding radius:5,// the box-radius of tag fill:'#1890FF',// the background color of tag }
The values of the three parameters passed in can be following type:
Array,the value in the array can be the data in dataset, or can be percentage, or keyword(they are 'max', 'min', 'median')
// this is the dataset of chartconstdata= [ { name:'a', value:300 }, { name:'b', value:250 }, { name:'c', value:180 }];chart.guide().line({ start: [ 'a',300 ], end: [ 'c',180 ] });chart.guide().text({ position: [ '50%','max' ], content:'Hi'});
Function: Callback can used to dynamically locate the position. It is often used in the scenario where position of the guide element changes according to the change of the data. Detail demo and code here.
chart.guide().line({/** * @param{Scale} xScale scale of x-axis * @param{Array} yScales scale array of y-axis * @return{Array} return value must be an array */start(xScale, yScales) {return []; // position information },/** * ending point of guide line * @param{Scale} xScale scale of x-axis * @param{Array} yScales scale array of y-axis * @return{Array} return value must be an array */end(xScale, yScales) {return []; // position information }});
tag content, if you want a text wrapping, just write '\n' in the text, such as 'maximum \n200'.
direct
String
'tl'
direction of tag, if autoAdjust is true,when the tag is outside the chart [plot](todo) area, the direct will be automatically corrected and guaranteed to be in the plot area.
autoAdjust
Boolean
true
If value is true, when the tag is outside the chart plot area, the direct will be automatically corrected and guaranteed to be in the plot area.