Advertisement
o0Mercury0o

fullcode

Jul 27th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.98 KB | None | 0 0
  1. <html>
  2. <head>
  3.  
  4.  
  5. <!-- Styles -->
  6. <style>
  7. body {
  8. font-family: Verdana;
  9. font-size: 12px;
  10. padding: 10px;
  11. }
  12.  
  13. #chartdiv,
  14. #chartwrapper,
  15. #loader {
  16. width: 100%;
  17. height: 500px;
  18. position: relative;
  19. }
  20.  
  21. #loader {
  22. display: none;
  23. position: absolute;
  24. top: 50%;
  25. height: 30px;
  26. margin-top: -15px;
  27. font-size: 18px;
  28. text-align: center;
  29. }
  30.  
  31. #chartwrapper.loading #chartdiv {
  32. opacity: 0.3;
  33. }
  34.  
  35. #chartwrapper.loading #loader {
  36. display: block;
  37. }
  38. </style>
  39.  
  40.  
  41. <!-- Resources -->
  42. <script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
  43. <script src="https://www.amcharts.com/lib/3/serial.js"></script>
  44. <script src="https://www.amcharts.com/lib/3/amstock.js"></script>
  45. <script src="https://www.amcharts.com/lib/3/plugins/export/export.js" type="text/javascript"></script>
  46. <link rel="stylesheet" href="https://www.amcharts.com/lib/3/plugins/export/export.css" type="text/css" media="all" />
  47. <script src="https://www.amcharts.com/lib/3/themes/light.js"></script>
  48.  
  49. <!-- Dataloader -->
  50. <script src="https://www.amcharts.com/lib/3/plugins/dataloader/dataloader.min.js"></script>
  51.  
  52.  
  53.  
  54.  
  55. <!-- Chart code -->
  56. <script type="text/javascript">
  57.  
  58. var chart = AmCharts.makeChart("chartdiv", {
  59. type: "stock",
  60. "theme": "none",
  61. //"dataDateFormat": "YYYY-MM-DD",
  62. "valueAxes": [{
  63. "id": "v1",
  64. "axisAlpha": 0,
  65. "position": "left",
  66. "ignoreAxisWidth":true
  67. }],
  68.  
  69. pathToImages: "https://www.amcharts.com/lib/3/images/",
  70.  
  71. dataSets: [{
  72. title: "first data set",
  73. fieldMappings: [{
  74. fromField: "value",
  75. toField: "value"
  76. }, {
  77. fromField: "rank",
  78. toField: "rank"
  79. }],
  80. dataLoader: {
  81. url: "1.csv?q="+Math.random(), // Math.random added so csv does not get cached
  82. format: "csv",
  83. "delimiter": ",", // column separator
  84. "useColumnNames": true, // use first row for column names
  85. "skip": 1 // skip header row
  86. },
  87. categoryField: "date"
  88. },
  89.  
  90. {
  91. title: "second data set",
  92. fieldMappings: [{
  93. fromField: "value",
  94. toField: "value"
  95. }, {
  96. fromField: "rank",
  97. toField: "rank"
  98. }],
  99. dataLoader: {
  100. url: "2.csv?q="+Math.random(), // Math.random added so csv does not get cached
  101. format: "csv",
  102. "delimiter": ",", // column separator
  103. "useColumnNames": true, // use first row for column names
  104. "skip": 1 // skip header row
  105. },
  106. categoryField: "date"
  107. },
  108.  
  109. {
  110. title: "third data set",
  111. fieldMappings: [{
  112. fromField: "value",
  113. toField: "value"
  114. }, {
  115. fromField: "rank",
  116. toField: "rank"
  117. }],
  118. dataLoader: {
  119. url: "3.csv?q="+Math.random(), // Math.random added so csv does not get cached
  120. format: "csv",
  121. "delimiter": ",", // column separator
  122. "useColumnNames": true, // use first row for column names
  123. "skip": 1 // skip header row
  124. },
  125. categoryField: "date"
  126. },
  127.  
  128. {
  129. title: "fourth data set",
  130. fieldMappings: [{
  131. fromField: "value",
  132. toField: "value"
  133. }, {
  134. fromField: "rank",
  135. toField: "rank"
  136. }],
  137. dataLoader: {
  138. url: "4.csv?q="+Math.random(), // Math.random added so csv does not get cached
  139. format: "csv",
  140. "delimiter": ",", // column separator
  141. "useColumnNames": true, // use first row for column names
  142. "skip": 1 // skip header row
  143. },
  144. categoryField: "date"
  145. }
  146. ],
  147.  
  148. panels: [{
  149.  
  150. showCategoryAxis: false,
  151. title: "Value",
  152. percentHeight: 70,
  153.  
  154. stockGraphs: [{
  155. id: "g1",
  156.  
  157. valueField: "value",
  158. comparable: true,
  159. compareField: "value",
  160. balloonText: "[[title]]:<b>[[value]]</b>",
  161. compareGraphBalloonText: "[[title]]:<b>[[value]]</b>"
  162. }],
  163.  
  164. stockLegend: {
  165. periodValueTextComparing: "[[percents.value.close]]%",
  166. periodValueTextRegular: "[[value.close]]"
  167. }
  168. },
  169.  
  170. {
  171. title: "rank",
  172. percentHeight: 30,
  173. stockGraphs: [{
  174. valueField: "rank",
  175. type: "column",
  176. showBalloon: false,
  177. fillAlphas: 1
  178. }],
  179.  
  180. stockLegend: {
  181. periodValueTextRegular: "[[value.close]]"
  182. }
  183. }
  184. ],
  185.  
  186. chartScrollbarSettings: {
  187. graph: "g1"
  188. },
  189.  
  190. chartCursorSettings: {
  191. valueBalloonsEnabled: true,
  192. fullWidth: true,
  193. cursorAlpha: 0.1
  194. },
  195.  
  196. periodSelector: {
  197. position: "left",
  198. periods: [{
  199. period: "MM",
  200. selected: true,
  201. count: 1,
  202. label: "1 month"
  203. }, {
  204. period: "YYYY",
  205. count: 1,
  206. label: "1 year"
  207. }, {
  208. period: "YTD",
  209. label: "YTD"
  210. }, {
  211. period: "MAX",
  212. label: "MAX"
  213. }]
  214. },
  215.  
  216. dataSetSelector: {
  217. position: "left"
  218. }
  219. });
  220.  
  221. // add listeners only when chart is fully initialized
  222. chart.addListener("rendered", function(event) {
  223. var chart = event.chart;
  224. //retrieve the data when the dataSet is compared or selected from the dropdown
  225. chart.dataSetSelector.addListener("dataSetCompared", loadDataSetData);
  226. chart.dataSetSelector.addListener("dataSetSelected", loadDataSetData);
  227. });
  228.  
  229. function loadDataSetData(event) {
  230. // check if the data set is empty or not
  231. if (event.dataSet.dataProvider.length)
  232. return;
  233.  
  234. // let's display loading indicator
  235. document.getElementById("chartwrapper").className = "loading";
  236.  
  237.  
  238. // (we're going to delay the whole thing so the loading indicator
  239. // is more prominent)
  240. //setTimeout(function() {
  241. // event.dataSet.dataProvider = generateChartData();
  242. // event.chart.validateData();
  243. // document.getElementById("chartwrapper").className = "";
  244. //}, 1000);
  245. }
  246.  
  247.  
  248. </script>
  249.  
  250. </head>
  251.  
  252. <body>
  253.  
  254. <div id="chartwrapper">
  255. <div id="loader">Loading data...</div>
  256. <div id="chartdiv"></div>
  257. </div>
  258.  
  259. </body>
  260. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement