legend.html 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <meta name="viewport" content="width=device-width, initial-scale=1" />
  5. <script src="lib/esl.js"></script>
  6. <script src="lib/config.js"></script>
  7. <script src="lib/jquery.min.js"></script>
  8. <script src="lib/facePrint.js"></script>
  9. <script src="lib/testHelper.js"></script>
  10. <script src="lib/draggable.js"></script>
  11. <link rel="stylesheet" href="lib/reset.css">
  12. </head>
  13. <body>
  14. <style>
  15. h1 {
  16. line-height: 60px;
  17. height: 60px;
  18. background: #146402;
  19. text-align: center;
  20. font-weight: bold;
  21. color: #eee;
  22. font-size: 14px;
  23. }
  24. .chart {
  25. height: 300px;
  26. }
  27. </style>
  28. <h1>No scroll, left not set (should be center)</h1>
  29. <div class="chart" id="plain"></div>
  30. <h1>No scroll, width 300, right: 10</h1>
  31. <div class="chart" id="plain2"></div>
  32. <h1>No scroll, has '\n' after 'line3', bottom: 20</h1>
  33. <div class="chart" id="plain3"></div>
  34. <h1>No scroll, vertical, has '\n' after 'line3', right 20</h1>
  35. <div class="chart" id="plain-v"></div>
  36. <h1>No scroll, vertical, top 'middle', left: 20, heigth: 150</h1>
  37. <div class="chart" id="plain-v2"></div>
  38. <h1>Scroll</h1>
  39. <div class="chart" id="scroll"></div>
  40. <h1>Scroll auto: try to change window size (width: 80%, right: 30)</h1>
  41. <div class="chart" id="scroll-auto"></div>
  42. <h1>Scroll auto: left: 30, right: 30, bottom: 0, position: 'start'</h1>
  43. <div class="chart" id="scroll-lr"></div>
  44. <h1>Scroll vertically</h1>
  45. <div class="chart" id="scroll-v"></div>
  46. <h1>Scroll vertically, left: 10, top: 'center', position: 'start', height: 50% (Turn the second page and resize it until page button disappear)</h1>
  47. <div class="chart" id="scroll-v2"></div>
  48. <script>
  49. function makeSeries(seriesCount, categoryCount) {
  50. var series = [];
  51. var legendData = [];
  52. var xAxisData = [];
  53. for (var j = 0; j < categoryCount; j++) {
  54. xAxisData.push('category' + j);
  55. }
  56. for (var i = 0; i < seriesCount; i++) {
  57. var data = [];
  58. for (var j = 0; j < categoryCount; j++) {
  59. data.push(+(Math.random() + 0.5).toFixed(3));
  60. }
  61. var seriesName = 'line' + i;
  62. series.push({
  63. name: seriesName,
  64. type: 'line',
  65. stack: 'all',
  66. symbol: 'circle',
  67. symbolSize: 10,
  68. data: data,
  69. step: 'end'
  70. });
  71. legendData.push(seriesName);
  72. }
  73. return {
  74. series: series,
  75. legendData: legendData,
  76. xAxisData: xAxisData
  77. }
  78. }
  79. </script>
  80. <script>
  81. require([
  82. 'echarts',
  83. // 'echarts/chart/line',
  84. // 'echarts/component/title',
  85. // 'echarts/component/legend',
  86. // 'echarts/component/grid',
  87. // 'echarts/component/tooltip',
  88. // 'echarts/component/dataZoomInside',
  89. // 'zrender/svg/svg'
  90. ], function (echarts) {
  91. var xAxisData = [];
  92. var data1 = [];
  93. var data2 = [];
  94. var data3 = [];
  95. for (var i = 0; i < 100; i++) {
  96. xAxisData.push('类目' + i);
  97. if (i < 5 && i > 1) {
  98. data1.push(0);
  99. }
  100. else {
  101. data1.push(+(Math.random() + 0.5).toFixed(3));
  102. }
  103. data2.push(+(Math.random() + 0.5).toFixed(3));
  104. data3.push(+(Math.random() + 0.5).toFixed(3));
  105. }
  106. var seriesInfo = makeSeries(5, 3);
  107. var option = {
  108. legend: {
  109. data: seriesInfo.legendData,
  110. backgroundColor: 'rgba(0,100,50,0.2)'
  111. },
  112. tooltip: {
  113. },
  114. xAxis: {
  115. data: seriesInfo.xAxisData
  116. },
  117. yAxis: {
  118. splitArea: {
  119. show: true
  120. }
  121. },
  122. series: seriesInfo.series
  123. };
  124. testHelper.createChart(echarts, 'plain', option);
  125. })
  126. </script>
  127. <script>
  128. require([
  129. 'echarts',
  130. // 'echarts/chart/line',
  131. // 'echarts/component/title',
  132. // 'echarts/component/legend',
  133. // 'echarts/component/grid',
  134. // 'echarts/component/tooltip',
  135. // 'echarts/component/dataZoomInside',
  136. // 'zrender/svg/svg'
  137. ], function (echarts) {
  138. var xAxisData = [];
  139. var data1 = [];
  140. var data2 = [];
  141. var data3 = [];
  142. for (var i = 0; i < 100; i++) {
  143. xAxisData.push('类目' + i);
  144. if (i < 5 && i > 1) {
  145. data1.push(0);
  146. }
  147. else {
  148. data1.push(+(Math.random() + 0.5).toFixed(3));
  149. }
  150. data2.push(+(Math.random() + 0.5).toFixed(3));
  151. data3.push(+(Math.random() + 0.5).toFixed(3));
  152. }
  153. var seriesInfo = makeSeries(10, 3);
  154. var option = {
  155. legend: {
  156. right: 10,
  157. width: 300,
  158. data: seriesInfo.legendData,
  159. backgroundColor: 'rgba(0,100,50,0.2)'
  160. },
  161. tooltip: {
  162. },
  163. grid: {
  164. top: 100,
  165. },
  166. xAxis: {
  167. data: seriesInfo.xAxisData
  168. },
  169. yAxis: {
  170. splitArea: {
  171. show: true
  172. }
  173. },
  174. series: seriesInfo.series
  175. };
  176. testHelper.createChart(echarts, 'plain2', option);
  177. })
  178. </script>
  179. <script>
  180. require([
  181. 'echarts',
  182. // 'echarts/chart/line',
  183. // 'echarts/component/title',
  184. // 'echarts/component/legend',
  185. // 'echarts/component/grid',
  186. // 'echarts/component/tooltip',
  187. // 'echarts/component/dataZoomInside',
  188. // 'zrender/svg/svg'
  189. ], function (echarts) {
  190. var xAxisData = [];
  191. var data1 = [];
  192. var data2 = [];
  193. var data3 = [];
  194. for (var i = 0; i < 100; i++) {
  195. xAxisData.push('类目' + i);
  196. if (i < 5 && i > 1) {
  197. data1.push(0);
  198. }
  199. else {
  200. data1.push(+(Math.random() + 0.5).toFixed(3));
  201. }
  202. data2.push(+(Math.random() + 0.5).toFixed(3));
  203. data3.push(+(Math.random() + 0.5).toFixed(3));
  204. }
  205. var seriesInfo = makeSeries(10, 3);
  206. seriesInfo.legendData.splice(4, 0, '\n');
  207. var option = {
  208. legend: {
  209. bottom: 20,
  210. data: seriesInfo.legendData,
  211. backgroundColor: 'rgba(0,100,50,0.2)'
  212. },
  213. tooltip: {
  214. },
  215. grid: {
  216. bottom: 100
  217. },
  218. xAxis: {
  219. data: seriesInfo.xAxisData
  220. },
  221. yAxis: {
  222. splitArea: {
  223. show: true
  224. }
  225. },
  226. series: seriesInfo.series
  227. };
  228. testHelper.createChart(echarts, 'plain3', option);
  229. })
  230. </script>
  231. <script>
  232. require([
  233. 'echarts',
  234. // 'echarts/chart/line',
  235. // 'echarts/component/title',
  236. // 'echarts/component/legend',
  237. // 'echarts/component/grid',
  238. // 'echarts/component/tooltip',
  239. // 'echarts/component/dataZoomInside',
  240. // 'zrender/svg/svg'
  241. ], function (echarts) {
  242. var xAxisData = [];
  243. var data1 = [];
  244. var data2 = [];
  245. var data3 = [];
  246. for (var i = 0; i < 100; i++) {
  247. xAxisData.push('类目' + i);
  248. if (i < 5 && i > 1) {
  249. data1.push(0);
  250. }
  251. else {
  252. data1.push(+(Math.random() + 0.5).toFixed(3));
  253. }
  254. data2.push(+(Math.random() + 0.5).toFixed(3));
  255. data3.push(+(Math.random() + 0.5).toFixed(3));
  256. }
  257. var seriesInfo = makeSeries(20, 3);
  258. seriesInfo.legendData.splice(4, 0, '\n');
  259. var option = {
  260. legend: {
  261. orient: 'vertical',
  262. right: 20,
  263. data: seriesInfo.legendData,
  264. backgroundColor: 'rgba(0,100,50,0.2)'
  265. },
  266. tooltip: {
  267. },
  268. grid: {
  269. right: 240
  270. },
  271. xAxis: {
  272. data: seriesInfo.xAxisData
  273. },
  274. yAxis: {
  275. splitArea: {
  276. show: true
  277. }
  278. },
  279. series: seriesInfo.series
  280. };
  281. testHelper.createChart(echarts, 'plain-v', option);
  282. })
  283. </script>
  284. <script>
  285. require([
  286. 'echarts',
  287. // 'echarts/chart/line',
  288. // 'echarts/component/title',
  289. // 'echarts/component/legend',
  290. // 'echarts/component/grid',
  291. // 'echarts/component/tooltip',
  292. // 'echarts/component/dataZoomInside',
  293. // 'zrender/svg/svg'
  294. ], function (echarts) {
  295. var xAxisData = [];
  296. var data1 = [];
  297. var data2 = [];
  298. var data3 = [];
  299. for (var i = 0; i < 100; i++) {
  300. xAxisData.push('类目' + i);
  301. if (i < 5 && i > 1) {
  302. data1.push(0);
  303. }
  304. else {
  305. data1.push(+(Math.random() + 0.5).toFixed(3));
  306. }
  307. data2.push(+(Math.random() + 0.5).toFixed(3));
  308. data3.push(+(Math.random() + 0.5).toFixed(3));
  309. }
  310. var seriesInfo = makeSeries(20, 3);
  311. var option = {
  312. legend: {
  313. orient: 'vertical',
  314. left: 20,
  315. top: 'center',
  316. height: 150,
  317. data: seriesInfo.legendData,
  318. backgroundColor: 'rgba(0,100,50,0.2)'
  319. },
  320. tooltip: {
  321. },
  322. grid: {
  323. left: 280
  324. },
  325. xAxis: {
  326. data: seriesInfo.xAxisData
  327. },
  328. yAxis: {
  329. splitArea: {
  330. show: true
  331. }
  332. },
  333. series: seriesInfo.series
  334. };
  335. testHelper.createChart(echarts, 'plain-v2', option);
  336. })
  337. </script>
  338. <script>
  339. require([
  340. 'echarts',
  341. // 'echarts/chart/line',
  342. // 'echarts/component/title',
  343. // 'echarts/component/legendScroll',
  344. // 'echarts/component/grid',
  345. // 'echarts/component/tooltip',
  346. // 'echarts/component/dataZoomInside',
  347. // 'zrender/svg/svg'
  348. ], function (echarts) {
  349. var xAxisData = [];
  350. var data1 = [];
  351. var data2 = [];
  352. var data3 = [];
  353. for (var i = 0; i < 100; i++) {
  354. xAxisData.push('类目' + i);
  355. if (i < 5 && i > 1) {
  356. data1.push(0);
  357. }
  358. else {
  359. data1.push(+(Math.random() + 0.5).toFixed(3));
  360. }
  361. data2.push(+(Math.random() + 0.5).toFixed(3));
  362. data3.push(+(Math.random() + 0.5).toFixed(3));
  363. }
  364. var seriesInfo = makeSeries(50, 3);
  365. var option = {
  366. legend: [{
  367. type: 'scroll',
  368. data: seriesInfo.legendData,
  369. backgroundColor: 'rgba(0,100,50,0.2)'
  370. }, {
  371. type: 'scroll',
  372. bottom: 0,
  373. data: seriesInfo.legendData,
  374. backgroundColor: 'rgba(0,100,50,0.2)',
  375. pageButtonPosition: 'start'
  376. }],
  377. tooltip: {
  378. },
  379. grid: {
  380. left: 280
  381. },
  382. xAxis: {
  383. data: seriesInfo.xAxisData
  384. },
  385. yAxis: {
  386. splitArea: {
  387. show: true
  388. }
  389. },
  390. series: seriesInfo.series
  391. };
  392. testHelper.createChart(echarts, 'scroll', option, {draggable: true});
  393. })
  394. </script>
  395. <script>
  396. require([
  397. 'echarts',
  398. // 'echarts/chart/line',
  399. // 'echarts/component/title',
  400. // 'echarts/component/legendScroll',
  401. // 'echarts/component/grid',
  402. // 'echarts/component/tooltip',
  403. // 'echarts/component/dataZoomInside',
  404. // 'zrender/svg/svg'
  405. ], function (echarts) {
  406. var xAxisData = [];
  407. var data1 = [];
  408. var data2 = [];
  409. var data3 = [];
  410. for (var i = 0; i < 100; i++) {
  411. xAxisData.push('类目' + i);
  412. if (i < 5 && i > 1) {
  413. data1.push(0);
  414. }
  415. else {
  416. data1.push(+(Math.random() + 0.5).toFixed(3));
  417. }
  418. data2.push(+(Math.random() + 0.5).toFixed(3));
  419. data3.push(+(Math.random() + 0.5).toFixed(3));
  420. }
  421. var seriesInfo = makeSeries(5, 3);
  422. var option = {
  423. legend: {
  424. type: 'scroll',
  425. width: '80%',
  426. right: 30,
  427. data: seriesInfo.legendData,
  428. pageIconSize: 50,
  429. pageIconColor: 'red',
  430. pageIconInactiveColor: 'green',
  431. backgroundColor: 'rgba(0,100,50,0.2)',
  432. pageTextStyle: {
  433. color: 'yellow',
  434. fontSize: 22
  435. }
  436. },
  437. tooltip: {
  438. },
  439. grid: {
  440. left: 280
  441. },
  442. xAxis: {
  443. data: seriesInfo.xAxisData
  444. },
  445. yAxis: {
  446. splitArea: {
  447. show: true
  448. }
  449. },
  450. series: seriesInfo.series
  451. };
  452. testHelper.createChart(echarts, 'scroll-auto', option, {draggable: true, width: 400});
  453. })
  454. </script>
  455. <script>
  456. require([
  457. 'echarts',
  458. // 'echarts/chart/line',
  459. // 'echarts/component/title',
  460. // 'echarts/component/legendScroll',
  461. // 'echarts/component/grid',
  462. // 'echarts/component/tooltip',
  463. // 'echarts/component/dataZoomInside',
  464. // 'zrender/svg/svg'
  465. ], function (echarts) {
  466. var xAxisData = [];
  467. var data1 = [];
  468. var data2 = [];
  469. var data3 = [];
  470. for (var i = 0; i < 100; i++) {
  471. xAxisData.push('类目' + i);
  472. if (i < 5 && i > 1) {
  473. data1.push(0);
  474. }
  475. else {
  476. data1.push(+(Math.random() + 0.5).toFixed(3));
  477. }
  478. data2.push(+(Math.random() + 0.5).toFixed(3));
  479. data3.push(+(Math.random() + 0.5).toFixed(3));
  480. }
  481. var seriesInfo = makeSeries(55, 3);
  482. var option = {
  483. legend: {
  484. type: 'scroll',
  485. bottom: 0,
  486. right: 30,
  487. left: 30,
  488. data: seriesInfo.legendData,
  489. pageIconSize: 5,
  490. pageIconColor: 'red',
  491. pageIconInactiveColor: 'green',
  492. backgroundColor: 'rgba(0,100,50,0.2)',
  493. pageButtonPosition: 'start',
  494. pageButtonGap: 20,
  495. pageTextStyle: {
  496. fontSize: 9
  497. }
  498. },
  499. tooltip: {
  500. },
  501. grid: {
  502. left: 280
  503. },
  504. xAxis: {
  505. data: seriesInfo.xAxisData
  506. },
  507. yAxis: {
  508. splitArea: {
  509. show: true
  510. }
  511. },
  512. series: seriesInfo.series
  513. };
  514. testHelper.createChart(echarts, 'scroll-lr', option, {draggable: true, width: 400});
  515. })
  516. </script>
  517. <script>
  518. require([
  519. 'echarts',
  520. // 'echarts/chart/line',
  521. // 'echarts/component/title',
  522. // 'echarts/component/legendScroll',
  523. // 'echarts/component/grid',
  524. // 'echarts/component/tooltip',
  525. // 'echarts/component/dataZoomInside',
  526. // 'zrender/svg/svg'
  527. ], function (echarts) {
  528. var xAxisData = [];
  529. var data1 = [];
  530. var data2 = [];
  531. var data3 = [];
  532. for (var i = 0; i < 100; i++) {
  533. xAxisData.push('类目' + i);
  534. if (i < 5 && i > 1) {
  535. data1.push(0);
  536. }
  537. else {
  538. data1.push(+(Math.random() + 0.5).toFixed(3));
  539. }
  540. data2.push(+(Math.random() + 0.5).toFixed(3));
  541. data3.push(+(Math.random() + 0.5).toFixed(3));
  542. }
  543. var seriesInfo = makeSeries(55, 3);
  544. var option = {
  545. legend: {
  546. type: 'scroll',
  547. orient: 'vertical',
  548. bottom: 0,
  549. right: 30,
  550. data: seriesInfo.legendData
  551. },
  552. tooltip: {
  553. },
  554. grid: {
  555. right: 180
  556. },
  557. xAxis: {
  558. data: seriesInfo.xAxisData
  559. },
  560. yAxis: {
  561. splitArea: {
  562. show: true
  563. }
  564. },
  565. series: seriesInfo.series
  566. };
  567. testHelper.createChart(echarts, 'scroll-v', option, {draggable: true, width: 400});
  568. })
  569. </script>
  570. <script>
  571. require([
  572. 'echarts',
  573. // 'echarts/chart/line',
  574. // 'echarts/component/title',
  575. // 'echarts/component/legendScroll',
  576. // 'echarts/component/grid',
  577. // 'echarts/component/tooltip',
  578. // 'echarts/component/dataZoomInside',
  579. // 'zrender/svg/svg'
  580. ], function (echarts) {
  581. var xAxisData = [];
  582. var data1 = [];
  583. var data2 = [];
  584. var data3 = [];
  585. for (var i = 0; i < 100; i++) {
  586. xAxisData.push('类目' + i);
  587. if (i < 5 && i > 1) {
  588. data1.push(0);
  589. }
  590. else {
  591. data1.push(+(Math.random() + 0.5).toFixed(3));
  592. }
  593. data2.push(+(Math.random() + 0.5).toFixed(3));
  594. data3.push(+(Math.random() + 0.5).toFixed(3));
  595. }
  596. var seriesInfo = makeSeries(5, 3);
  597. var option = {
  598. legend: {
  599. type: 'scroll',
  600. orient: 'vertical',
  601. top: 'middle',
  602. left: 10,
  603. height: '50%',
  604. borderColor: '#819356',
  605. borderWidth: 2,
  606. borderRadius: 4,
  607. data: seriesInfo.legendData,
  608. pageButtonPosition: 'start'
  609. },
  610. tooltip: {
  611. },
  612. grid: {
  613. left: 180
  614. },
  615. xAxis: {
  616. data: seriesInfo.xAxisData
  617. },
  618. yAxis: {
  619. splitArea: {
  620. show: true
  621. }
  622. },
  623. series: seriesInfo.series
  624. };
  625. testHelper.createChart(echarts, 'scroll-v2', option, {draggable: true, width: 400});
  626. })
  627. </script>
  628. </body>
  629. </html>