stock.html 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  6. <title>amCharts Responsive Example</title>
  7. <script src="http://www.amcharts.com/lib/3/amcharts.js"></script>
  8. <script src="http://www.amcharts.com/lib/3/serial.js"></script>
  9. <script src="http://www.amcharts.com/lib/3/amstock.js"></script>
  10. <script src="../responsive.min.js"></script>
  11. <style>
  12. body, html {
  13. height: 100%;
  14. padding: 0;
  15. margin: 0;
  16. font-family: Verdana;
  17. font-size: 12px;
  18. }
  19. </style>
  20. <script>
  21. var chartData1 = [];
  22. var chartData2 = [];
  23. var chartData3 = [];
  24. var chartData4 = [];
  25. generateChartData();
  26. function generateChartData() {
  27. var firstDate = new Date();
  28. firstDate.setDate( firstDate.getDate() - 500 );
  29. firstDate.setHours( 0, 0, 0, 0 );
  30. for ( var i = 0; i < 500; i++ ) {
  31. var newDate = new Date( firstDate );
  32. newDate.setDate( newDate.getDate() + i );
  33. var a1 = Math.round( Math.random() * ( 40 + i ) ) + 100 + i;
  34. var b1 = Math.round( Math.random() * ( 1000 + i ) ) + 500 + i * 2;
  35. var a2 = Math.round( Math.random() * ( 100 + i ) ) + 200 + i;
  36. var b2 = Math.round( Math.random() * ( 1000 + i ) ) + 600 + i * 2;
  37. var a3 = Math.round( Math.random() * ( 100 + i ) ) + 200;
  38. var b3 = Math.round( Math.random() * ( 1000 + i ) ) + 600 + i * 2;
  39. var a4 = Math.round( Math.random() * ( 100 + i ) ) + 200 + i;
  40. var b4 = Math.round( Math.random() * ( 100 + i ) ) + 600 + i;
  41. chartData1.push( {
  42. "date": newDate,
  43. "value": a1,
  44. "volume": b1
  45. } );
  46. chartData2.push( {
  47. "date": newDate,
  48. "value": a2,
  49. "volume": b2
  50. } );
  51. chartData3.push( {
  52. "date": newDate,
  53. "value": a3,
  54. "volume": b3
  55. } );
  56. chartData4.push( {
  57. "date": newDate,
  58. "value": a4,
  59. "volume": b4
  60. } );
  61. }
  62. }
  63. var chart = AmCharts.makeChart( "chartdiv", {
  64. "type": "stock",
  65. "theme": "none",
  66. "dataSets": [ {
  67. "title": "first data set",
  68. "fieldMappings": [ {
  69. "fromField": "value",
  70. "toField": "value"
  71. }, {
  72. "fromField": "volume",
  73. "toField": "volume"
  74. } ],
  75. "dataProvider": chartData1,
  76. "categoryField": "date"
  77. },
  78. {
  79. "title": "second data set",
  80. "fieldMappings": [ {
  81. "fromField": "value",
  82. "toField": "value"
  83. }, {
  84. "fromField": "volume",
  85. "toField": "volume"
  86. } ],
  87. "dataProvider": chartData2,
  88. "categoryField": "date"
  89. },
  90. {
  91. "title": "third data set",
  92. "fieldMappings": [ {
  93. "fromField": "value",
  94. "toField": "value"
  95. }, {
  96. "fromField": "volume",
  97. "toField": "volume"
  98. } ],
  99. "dataProvider": chartData3,
  100. "categoryField": "date"
  101. },
  102. {
  103. "title": "fourth data set",
  104. "fieldMappings": [ {
  105. "fromField": "value",
  106. "toField": "value"
  107. }, {
  108. "fromField": "volume",
  109. "toField": "volume"
  110. } ],
  111. "dataProvider": chartData4,
  112. "categoryField": "date"
  113. }
  114. ],
  115. "panels": [ {
  116. "showCategoryAxis": false,
  117. "title": "Value",
  118. "percentHeight": 70,
  119. "stockGraphs": [ {
  120. "id": "g1",
  121. "valueField": "value",
  122. "comparable": true,
  123. "compareField": "value",
  124. "balloonText": "[[title]]:<b>[[value]]</b>",
  125. "compareGraphBalloonText": "[[title]]:<b>[[value]]</b>"
  126. } ],
  127. "stockLegend": {
  128. "periodValueTextComparing": "[[percents.value.close]]%",
  129. "periodValueTextRegular": "[[value.close]]"
  130. }
  131. },
  132. {
  133. "title": "Volume",
  134. "percentHeight": 30,
  135. "stockGraphs": [ {
  136. "valueField": "volume",
  137. "type": "column",
  138. "showBalloon": false,
  139. "fillAlphas": 1
  140. } ],
  141. "stockLegend": {
  142. "periodValueTextRegular": "[[value.close]]"
  143. }
  144. }
  145. ],
  146. "chartScrollbarSettings": {
  147. "graph": "g1"
  148. },
  149. "chartCursorSettings": {
  150. "valueBalloonsEnabled": true,
  151. "fullWidth": true,
  152. "cursorAlpha": 0.1,
  153. "valueLineBalloonEnabled": true,
  154. "valueLineEnabled": true,
  155. "valueLineAlpha": 0.5
  156. },
  157. "periodSelector": {
  158. "position": "left",
  159. "periods": [ {
  160. "period": "MM",
  161. "selected": true,
  162. "count": 1,
  163. "label": "1 month"
  164. }, {
  165. "period": "YYYY",
  166. "count": 1,
  167. "label": "1 year"
  168. }, {
  169. "period": "YTD",
  170. "label": "YTD"
  171. }, {
  172. "period": "MAX",
  173. "label": "MAX"
  174. } ]
  175. },
  176. "dataSetSelector": {
  177. "position": "left"
  178. },
  179. "responsive": {
  180. "enabled": true
  181. }
  182. } );
  183. </script>
  184. </head>
  185. <body>
  186. <div id="chartdiv" style="width: 100%; height: 100%;"></div>
  187. </body>
  188. </html>