1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | import React, {Component} from 'react' ; import ReactECharts from 'echarts-for-react' ; // or var ReactECharts = require('echarts-for-react'); interface AppProps {} interface AppState {} let markLine: any = []; const positions = [ 'start' , 'middle' , 'end' , 'insideStart' , 'insideStartTop' , 'insideStartBottom' , 'insideMiddle' , 'insideMiddleTop' , 'insideMiddleBottom' , 'insideEnd' , 'insideEndTop' , 'insideEndBottom' ] as const; export default class EChartApp extends Component<AppProps, AppState> { constructor(props:any) { super (props); this .state = { name: "Charts React" }; } option = { animation: false , textStyle: { fontSize: 14 }, xAxis: { data: [ 'A' , 'B' , 'C' , 'D' , 'E' ], boundaryGap: true , splitArea: { show: true } }, yAxis: { max: 2 }, series: [ { name: 'line' , type: 'line' , stack: 'all' , symbolSize: 6, data: [0.3, 1.4, 1.2, 1, 0.6], markLine: { data: markLine, label: { distance: [20, 8] } } } ], grid: { top: 30, left: 60, right: 60, bottom: 40 } }; func =()=> { for ( var i = 0; i < positions.length; ++i) { markLine.push({ name: positions[i], yAxis: 1.8 - 0.2 * Math.floor(i / 3), label: { formatter: '{b}' , position: positions[i] } }); if (positions[i] !== 'middle' ) { const name = positions[i] === 'insideMiddle' ? 'insideMiddle / middle' : positions[i]; markLine.push([ { name: 'start: ' + positions[i], coord: [0, 0.3], label: { formatter: name, position: positions[i] } }, { name: 'end: ' + positions[i], coord: [3, 1] } ]); } } } render() { this .func() console.log( this .option) return ( <div> <ReactECharts style={{width: '1900px' ,height: '1000px' }} // echarts={echarts} option={ this .option} // required // notMerge={true} // optional // lazyUpdate={true} // optional // theme="my_theme" // optional // onChartReady={this.onChartReadyCallback} // optional // onEvents={EventsDict} // opts={} /> </div> ); } } |
