Echar使用例

22640 ワード

ECharts動的データ+時間軸+dataZoom
https://blog.csdn.net/zouhaodong/article/details/80974837
 
  1 
  2     <span style="color: #008000;">//</span><span style="color: #008000;">       dom,   echarts  </span>
  3     <span style="color: #0000ff;">var</span> myChart = echarts.init(document.getElementById('main'<span style="color: #000000;">));
  </span>4 
  5     $("input[name=qryPrice]").change(<span style="color: #0000ff;">function</span><span style="color: #000000;"> () {
  </span>6<span style="color: #000000;">         QueryChart();
  </span>7<span style="color: #000000;">     });
  </span>8     <span style="color: #0000ff;">function</span><span style="color: #000000;"> QueryChart() {
  </span>9<span style="color: #000000;">         myChart.showLoading();
 </span>10<span style="color: #000000;">         $.ajax({
 </span>11             type: "post"<span style="color: #000000;">,
 </span>12             url: "@MaterialSpecChartUrl"<span style="color: #000000;">,
 </span>13<span style="color: #000000;">             data: {
 </span>14                 qryPrice: $("input[name='qryPrice']:checked"<span style="color: #000000;">).val(),
 </span>15                 ItemType: $('#SpecChartItemType'<span style="color: #000000;">).val(),
 </span>16                 ItemMainClass: $('#SpecChartItemMainClass'<span style="color: #000000;">).val(),
 </span>17                 ItemSubClass: $('#SpecChartItemSubClass'<span style="color: #000000;">).val(),
 </span>18                 ProjectNo: $('#SpecChartProjectNo'<span style="color: #000000;">).val(),
 </span>19                 SpecModel: $('#SpecChartSpecModel'<span style="color: #000000;">).val(),
 </span>20                 Brand: $('#SpecChartBrand'<span style="color: #000000;">).val()
 </span>21<span style="color: #000000;">             },
 </span>22             success: <span style="color: #0000ff;">function</span><span style="color: #000000;"> (result) {
 </span>23<span style="color: #000000;">                 myChart.hideLoading();
 </span>24                 <span style="color: #0000ff;">var</span> resultJ =<span style="color: #000000;"> JSON.parse(result);
 </span>25                 <span style="color: #0000ff;">var</span> data =<span style="color: #000000;"> resultJ.rows;
 </span>26                 <span style="color: #008000;">//</span><span style="color: #008000;">            </span>
 27                 <span style="color: #0000ff;">var</span> option =<span style="color: #000000;"> {
 </span>28                     <span style="color: #008000;">//</span><span style="color: #008000;">title: {</span>
 29                     <span style="color: #008000;">//</span><span style="color: #008000;">    text: '          '</span>
 30                     <span style="color: #008000;">//</span><span style="color: #008000;">},</span>
 31<span style="color: #000000;">                     tooltip: {
 </span>32                         trigger: 'item'<span style="color: #000000;">,
 </span>33<span style="color: #000000;">                         axisPointer: {
 </span>34                             type: 'cross'
 35<span style="color: #000000;">                         },
 </span>36                         formatter: <span style="color: #0000ff;">function</span><span style="color: #000000;"> (param) {
 </span>37                             <span style="color: #0000ff;">return</span><span style="color: #000000;"> [
 </span>38                                 '  : ' + param.data.CreateTime + '<hr size=1 style="margin: 3px 0">'<span style="color: #000000;">,
 </span>39                                 '  : ' + param.data.Price + '<br/>'<span style="color: #000000;">,
 </span>40                                 '  :' + param.data.Amount + '<br/>'<span style="color: #000000;">,
 </span>41                                 '  : ' + param.data.Brand + '<br/>'<span style="color: #000000;">,
 </span>42                                 '  : ' + param.data.CityName + '<br/>'<span style="color: #000000;">,
 </span>43                                 '  : ' +<span style="color: #000000;"> param.data.ProjectName
 </span>44                             ].join(''<span style="color: #000000;">);
 </span>45<span style="color: #000000;">                         }
 </span>46<span style="color: #000000;">                     },
 </span>47<span style="color: #000000;">                     grid: {
 </span>48                         right: 150<span style="color: #000000;">,
 </span>49                         left: 50
 50<span style="color: #000000;">                     },
 </span>51<span style="color: #000000;">                     legend: {
 </span>52                         <span style="color: #008000;">//</span><span style="color: #008000;">data: ['  ', '  ']</span>
 53                         type: 'scroll'<span style="color: #000000;">,
 </span>54                         orient: get_orient(), <span style="color: #008000;">//</span><span style="color: #008000;"> 'horizontal'</span>
 55<span style="color: #000000;">                         right: get_legendRight(),
 </span>56                         <span style="color: #008000;">//</span><span style="color: #008000;">width: 100,</span>
 57                         formatter: <span style="color: #0000ff;">function</span><span style="color: #000000;"> (name) {
 </span>58                             <span style="color: #0000ff;">return</span> echarts.format.truncateText(name, 120, '14px Microsoft Yahei', '…'<span style="color: #000000;">);
 </span>59<span style="color: #000000;">                         },
 </span>60<span style="color: #000000;">                         tooltip: {
 </span>61                             show: <span style="color: #0000ff;">true</span>
 62<span style="color: #000000;">                         }
 </span>63<span style="color: #000000;">                     },
 </span>64<span style="color: #000000;">                     dataset: {
 </span>65                         <span style="color: #008000;">//</span><span style="color: #008000;">       。</span>
 66<span style="color: #000000;">                         source: data
 </span>67<span style="color: #000000;">                     },
 </span>68<span style="color: #000000;">                     xAxis: {
 </span>69                         type: 'time'<span style="color: #000000;">,
 </span>70<span style="color: #000000;">                         axisLabel: {
 </span>71                             width: '100%'<span style="color: #000000;">,
 </span>72                             formatter: <span style="color: #0000ff;">function</span><span style="color: #000000;"> (value, index) {
 </span>73                                 <span style="color: #008000;">//</span><span style="color: #008000;">      / ,           </span>
 74                                 <span style="color: #0000ff;">var</span> date = <span style="color: #0000ff;">new</span><span style="color: #000000;"> Date(value);
 </span>75                                 <span style="color: #0000ff;">var</span> y =<span style="color: #000000;"> date.getFullYear();
 </span>76                                 <span style="color: #0000ff;">var</span> m = date.getMonth() + 1<span style="color: #000000;">;
 </span>77                                 <span style="color: #0000ff;">var</span> d =<span style="color: #000000;"> date.getDate();
 </span>78                                 <span style="color: #0000ff;">return</span> y+'-'+m+'-'+<span style="color: #000000;">d;
 </span>79<span style="color: #000000;">                             }
 </span>80<span style="color: #000000;">                         },
 </span>81                         inverse: <span style="color: #0000ff;">true</span><span style="color: #000000;">,
 </span>82<span style="color: #000000;">                         splitLine: {
 </span>83                             show: <span style="color: #0000ff;">false</span>
 84<span style="color: #000000;">                         }
 </span>85<span style="color: #000000;">                     },
 </span>86<span style="color: #000000;">                     yAxis: {
 </span>87                         type: 'value'<span style="color: #000000;">,
 </span>88                         <span style="color: #008000;">//</span><span style="color: #008000;">gridIndex: 1,</span>
 89<span style="color: #000000;">                         splitLine: {
 </span>90                             show: <span style="color: #0000ff;">false</span>
 91<span style="color: #000000;">                         }
 </span>92<span style="color: #000000;">                     },
 </span>93<span style="color: #000000;">                     dataZoom: [
 </span>94                         {   <span style="color: #008000;">//</span><span style="color: #008000;">   dataZoom  ,    x 。</span>
 95                             type: 'slider', <span style="color: #008000;">//</span><span style="color: #008000;">    dataZoom     slider   dataZoom   </span>
 96                             handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z'<span style="color: #000000;">,
 </span>97                             xAxisIndex: [0<span style="color: #000000;">],
 </span>98                             start: 70,      <span style="color: #008000;">//</span><span style="color: #008000;">     10%    。</span>
 99                             end: 100         <span style="color: #008000;">//</span><span style="color: #008000;">     60%    。</span>
100<span style="color: #000000;">                         },
</span>101                         {   <span style="color: #008000;">//</span><span style="color: #008000;">   dataZoom  ,   x 。</span>
102                             type: 'inside', <span style="color: #008000;">//</span><span style="color: #008000;">    dataZoom     inside   dataZoom   </span>
103                             xAxisIndex: [0<span style="color: #000000;">],
</span>104                             start: 70,      <span style="color: #008000;">//</span><span style="color: #008000;">     10%    。</span>
105                             end: 100         <span style="color: #008000;">//</span><span style="color: #008000;">     60%    。</span>
106<span style="color: #000000;">                         }
</span>107<span style="color: #000000;">                     ],
</span>108<span style="color: #000000;">                     series: serie_func(data)
</span>109<span style="color: #000000;">                 };
</span>110 
111                 <span style="color: #008000;">//</span><span style="color: #008000;">                 。</span>
112                 myChart.setOption(option, <span style="color: #0000ff;">true</span><span style="color: #000000;">); 
</span>113<span style="color: #000000;">             },
</span>114             error: <span style="color: #0000ff;">function</span><span style="color: #000000;"> (XMLHttpRequest, textStatus, errorThrown) {
</span>115<span style="color: #000000;">             }
</span>116<span style="color: #000000;">         });
</span>117<span style="color: #000000;">     };
</span>118     <span style="color: #0000ff;">void</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> InitChart() {
</span>119<span style="color: #000000;">         QueryChart();
</span>120<span style="color: #000000;">     }();
</span>121     <span style="color: #008000;">/*</span><span style="color: #008000;">serie   </span><span style="color: #008000;">*/</span>
122     <span style="color: #0000ff;">function</span><span style="color: #000000;"> get_orient() {
</span>123         <span style="color: #0000ff;">return</span> 'vertical'<span style="color: #000000;">;
</span>124<span style="color: #000000;">     };
</span>125     <span style="color: #0000ff;">function</span><span style="color: #000000;"> get_legendRight() {
</span>126         <span style="color: #0000ff;">return</span> 10<span style="color: #000000;">;
</span>127<span style="color: #000000;">     };
</span>128 
129     <span style="color: #0000ff;">function</span><span style="color: #000000;"> serie_func(item_op) {
</span>130         <span style="color: #0000ff;">var</span> serie =<span style="color: #000000;"> [];
</span>131         <span style="color: #0000ff;">var</span> mmAvgPrice =<span style="color: #000000;"> {
</span>132             name: '        ', <span style="color: #008000;">//</span><span style="color: #008000;"> item_op[i].ProjectName,//      </span>
133             type: 'line'<span style="color: #000000;">,
</span>134             symbolSize: 15<span style="color: #000000;">,
</span>135<span style="color: #000000;">             tooltip: {
</span>136                 <span style="color: #008000;">//</span><span style="color: #008000;">trigger: 'item',</span>
137                 formatter: <span style="color: #0000ff;">function</span><span style="color: #000000;"> (param) {
</span>138                     <span style="color: #008000;">//</span><span style="color: #008000;">      / ,           </span>
139                     <span style="color: #0000ff;">var</span> date = <span style="color: #0000ff;">new</span><span style="color: #000000;"> Date(param.data.CreateTime);
</span>140                     <span style="color: #0000ff;">var</span> y =<span style="color: #000000;"> date.getFullYear();
</span>141                     <span style="color: #0000ff;">var</span> m = date.getMonth() + 1<span style="color: #000000;">;
</span>142                     <span style="color: #0000ff;">var</span> d =<span style="color: #000000;"> date.getDate();
</span>143                     <span style="color: #0000ff;">return</span><span style="color: #000000;"> [
</span>144                         '  : ' + param.data.MMAVPrice + '<br/>'<span style="color: #000000;">,
</span>145                         '  : ' + y + '-' +<span style="color: #000000;"> m
</span>146                     ].join(''<span style="color: #000000;">);
</span>147<span style="color: #000000;">                 }
</span>148<span style="color: #000000;">             },
</span>149<span style="color: #000000;">             encode: {
</span>150                 x: 2,      <span style="color: #008000;">//</span><span style="color: #008000;">      3、1、5     x  。</span>
151                 y: 25,              <span style="color: #008000;">//</span><span style="color: #008000;">      2     y  。</span>
152                 tooltip: [3, 2, 4] <span style="color: #008000;">//</span><span style="color: #008000;">      3、2、4    tooltip    。</span>
153<span style="color: #000000;">             },
</span>154<span style="color: #000000;">             itemStyle: {
</span>155                 color: 'red'
156<span style="color: #000000;">             }
</span>157<span style="color: #000000;">         }
</span>158 
159<span style="color: #000000;">         serie.push(mmAvgPrice);
</span>160         <span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">var</span> i = 0; i < item_op.length; i++) {  <span style="color: #008000;">//</span><span style="color: #008000;">         item_op       serie   data[],       item</span>
161             <span style="color: #0000ff;">var</span> item =<span style="color: #000000;"> {
</span>162                 name: get_serie_name(item_op[i]), <span style="color: #008000;">//</span><span style="color: #008000;"> item_op[i].ProjectName,//      </span>
163                 type: 'scatter'<span style="color: #000000;">,
</span>164                 symbolSize: 20<span style="color: #000000;">,
</span>165<span style="color: #000000;">                 data: [
</span>166<span style="color: #000000;">                         {
</span>167                             value: [item_op[i].CreateTime, item_op[i].Price],<span style="color: #008000;">//</span><span style="color: #008000;">x,y      </span>
168<span style="color: #000000;">                             name: item_op[i].CityName,
</span>169<span style="color: #000000;">                             Amount: item_op[i].Amount,
</span>170<span style="color: #000000;">                             Brand: item_op[i].Brand,
</span>171<span style="color: #000000;">                             CreateTime: item_op[i].CreateTime,
</span>172<span style="color: #000000;">                             ITEMSUBCLASS: item_op[i].ITEMSUBCLASS,
</span>173<span style="color: #000000;">                             MaterialName: item_op[i].MaterialName,
</span>174<span style="color: #000000;">                             Price: item_op[i].Price,
</span>175<span style="color: #000000;">                             ProjectName: item_op[i].ProjectName,
</span>176<span style="color: #000000;">                             SpecModel: item_op[i].SpecModel,
</span>177<span style="color: #000000;">                             EnginAreaName: item_op[i].EnginAreaName,
</span>178<span style="color: #000000;">                             CityName: item_op[i].CityName
</span>179<span style="color: #000000;">                         }
</span>180<span style="color: #000000;">                 ]
</span>181<span style="color: #000000;">             }
</span>182<span style="color: #000000;">             serie.push(item);
</span>183             
184<span style="color: #000000;">         };
</span>185 
186         <span style="color: #0000ff;">return</span><span style="color: #000000;"> serie;
</span>187<span style="color: #000000;">     };
</span>188     <span style="color: #0000ff;">function</span><span style="color: #000000;"> get_serie_name(item) {
</span>189         <span style="color: #0000ff;">var</span> qryPrice = $("input[name='qryPrice']:checked"<span style="color: #000000;">).val();
</span>190         <span style="color: #0000ff;">var</span> serie_name = ""<span style="color: #000000;">;
</span>191         <span style="color: #0000ff;">if</span> (qryPrice == 0<span style="color: #000000;">) {
</span>192             serie_name =<span style="color: #000000;"> item.ProjectName;
</span>193         }<span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span>(qryPrice == 1<span style="color: #000000;">){
</span>194             serie_name =<span style="color: #000000;"> item.Brand;
</span>195         } <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> (qryPrice == 2<span style="color: #000000;">) {
</span>196             serie_name =<span style="color: #000000;"> item.ProjectName;
</span>197         } <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> (qryPrice == 3<span style="color: #000000;">) {
</span>198             serie_name =<span style="color: #000000;"> item.EnginAreaName;
</span>199         } <span style="color: #0000ff;">else</span><span style="color: #000000;"> {
</span>200             serie_name =<span style="color: #000000;"> item.ProjectName;
</span>201<span style="color: #000000;">         }
</span>202         <span style="color: #0000ff;">return</span><span style="color: #000000;"> serie_name;
</span>203<span style="color: #000000;">     }
</span>204     
205 
206