{"id":644,"date":"2015-02-15T17:41:32","date_gmt":"2015-02-15T09:41:32","guid":{"rendered":"http:\/\/www.daliane.com\/?p=644"},"modified":"2015-02-15T17:41:32","modified_gmt":"2015-02-15T09:41:32","slug":"d3_js_xue_xi_bi_ji_ba_zhe_xian_tu_de_shu_biao_xiang_ying_he_xiang_xia_zuan_qu","status":"publish","type":"post","link":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/d3_js_xue_xi_bi_ji_ba_zhe_xian_tu_de_shu_biao_xiang_ying_he_xiang_xia_zuan_qu\/","title":{"rendered":"D3.js\u5b66\u4e60\u7b14\u8bb0\u516b:\u6298\u7ebf\u56fe\u7684\u9f20\u6807\u54cd\u5e94\u548c\u5411\u4e0b\u94bb\u53d6"},"content":{"rendered":"<div class=\"newsPageBody\">\n<p class=\"title\">\u8981\u89e3\u51b3\u7684\u95ee\u9898<\/p>\n<p>\u6211\u5f53\u521d\u4e3a\u4ec0\u4e48\u9009\u62e9D3.js\uff1f\u4e0d\u662f\u56e0\u4e3a\u5b83\u7684\u56fe\u50cf\u591a\u4e48\u7eda\u4e3d\uff0c\u90a3\u662f\u4f5c\u56fe\u8f6f\u4ef6\u7684\u57fa\u672c\u529f\u80fd\uff0c\u5982\u679c\u53ea\u662f\u4e3a\u4e86\u505a\u4e00\u4e9b\u9759\u6001\u56fe\u50cf\uff0c\u90a3\u6ca1\u6709\u5fc5\u8981\u8d39\u52b2\u6765\u5199\u8fd9\u4e2a\u4ee3\u7801\uff0c\u9009\u62e9\u5b83\uff0c\u4e3b\u8981\u662f\u56e0\u4e3a\u5b83\u5728\u4f5c\u56fe\u7684\u540c\u65f6\u8fd8\u5177\u6709\u4ea4\u4e92\u6027\uff0c\u80fd\u591f\u81ea\u7531\u64cd\u63a7\u56fe\u50cf\u5143\u7d20\uff0c\u8fd9\u624d\u662fSVG\u7684\u7cbe\u534e\u6240\u5728\u3002\u76ee\u524d\u4e3a\u6b62\uff0c\u5df2\u7ecf\u5b8c\u6210\u4e86\u6298\u7ebf\u56fe\u7684\u7ed8\u5236\u5de5\u4f5c\uff0c\u63a5\u4e0b\u6765\u4e3a\u6298\u7ebf\u56fe\u8bbe\u7f6e\u4ea4\u4e92\u884c\u4e3a\u3002<\/p>\n<p class=\"title\">\u4e3a\u6298\u7ebf\u56fe\u589e\u52a0\u9f20\u6807\u60ac\u505c\u884c\u4e3a<\/p>\n<p>\u5728\u6298\u7ebf\u56fe\u7684\u5706\u70b9\u4e0a\u8bbe\u7f6e\u9f20\u6807\u76d1\u63a7\u4e8b\u4ef6\uff0c\u5f53\u9f20\u6807\u79fb\u52a8\u5230\u5706\u5f62\u4e0a\uff0c\u663e\u793a\u4e3a\u624b\u578b\u5e76\u663e\u793a\u63d0\u793a\uff0c\u663e\u793a\u624b\u578b\uff0c\u53ea\u9700\u8981\u4e3a\u5706\u70b9\u6dfb\u52a0\u5c5e\u6027.attr(&#8220;cursor&#8221;,&#8221;pointer&#8221;)\u5c31\u53ef\u4ee5\u4e86\u3002\u663e\u793a\u63d0\u793a\u7684\u8bdd\uff0c\u6211\u4eec\u9996\u5148\u4e3a\u63d0\u793a\u6587\u5b57\u505a\u4e00\u4e9b\u6837\u5f0f\u3002<\/p>\n<div class=\"codeBox\">\n<div class=\"codeArea\">.tiptools<br \/>\n{<br \/>\ndisplay:block;<br \/>\nbackground-color:#FFF;<br \/>\nborder:1px solid #E7E7E7;<br \/>\npadding:10px;<br \/>\nfont-size:12px;<br \/>\nfont-family:Arial, Helvetica, sans-serif;<br \/>\ncursor:pointer;<br \/>\n}<\/div>\n<\/div>\n<p>\u7136\u540e\u4fa6\u542c\u5706\u70b9\u7684\u9f20\u6807\u7ecf\u8fc7\uff08mouseover\uff09\u548c\u79bb\u5f00\uff08mouseout\uff09\u4e8b\u4ef6\uff0c\u4e3a\u5b83\u4eec\u6dfb\u52a0\u54cd\u5e94\u51fd\u6570,\u4e3a\u4e86\u80fd\u591f\u5728\u9f20\u6807\u79bb\u5f00\u7684\u65f6\u5019\u5220\u9664\u63d0\u793a\uff0c\u6211\u4eec\u4e3a\u63d0\u793a\u7684Group\u6dfb\u52a0\u4e86\u4e00\u4e2aid\u5c5e\u6027\uff0c\u5728\u9f20\u6807\u79bb\u5f00\u65f6\u5019\uff0c\u4f7f\u7528 d3.select(&#8220;#[id]&#8221;)\u8fd9\u6837\u7684\u8bed\u53e5\u6765\u5b9a\u4f4d\u5b83\u3002<\/p>\n<div class=\"codeBox\">\n<div class=\"codeArea\">this.group.selectAll(&#8220;circle&#8221;)<br \/>\n.on(&#8220;mouseover&#8221;,function(d,i){<br \/>\nvar tx=parseFloat(d3.select(this).attr(&#8220;cx&#8221;));<br \/>\nvar ty=parseFloat(d3.select(this).attr(&#8220;cy&#8221;));var tips=svg.append(&#8220;g&#8221;)<br \/>\n.attr(&#8220;id&#8221;,&#8221;tips&#8221;);<\/p>\n<p>var tipRect=tips.append(&#8220;rect&#8221;)<br \/>\n.attr(&#8220;x&#8221;,tx+10)<br \/>\n.attr(&#8220;y&#8221;,ty+10)<br \/>\n.attr(&#8220;width&#8221;,120)<br \/>\n.attr(&#8220;height&#8221;,30)<br \/>\n.attr(&#8220;fill&#8221;,&#8221;#FFF&#8221;)<br \/>\n.attr(&#8220;stroke-width&#8221;,1)<br \/>\n.attr(&#8220;stroke&#8221;,&#8221;#CCC&#8221;);<\/p>\n<p>var tipText=tips.append(&#8220;text&#8221;)<br \/>\n.attr(&#8220;class&#8221;,&#8221;tiptools&#8221;)<br \/>\n.text(lineNames[id]+&#8221;\\r\\n&#8221;+xMarks[i]+&#8221;\\r\\n&#8221;+d)<br \/>\n.attr(&#8220;x&#8221;,tx+20)<br \/>\n.attr(&#8220;y&#8221;,ty+30);<br \/>\n})<br \/>\n.on(&#8220;mouseout&#8221;,function(d,i){<br \/>\nd3.select(&#8220;#tips&#8221;).remove();<br \/>\n});<\/p>\n<\/div>\n<\/div>\n<p>\u5bdf\u770b\u65b0\u7684\u52a8\u753b\u6f14\u793a\u6548\u679c\uff1a<\/p>\n<blockquote>\n<table>\n<tbody>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-doctype\">&lt;!DOCTYPE html&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;html&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;head&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;meta <span class=\"html-attribute-name\">charset<\/span>=&#8221;<span class=\"html-attribute-value\">utf-8<\/span>&#8220;&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;title&gt;<\/span>\u753b\u4e00\u4e2a\u6298\u7ebf\u56fe<span class=\"html-tag\">&lt;\/title&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;script <span class=\"html-attribute-name\">type<\/span>=&#8221;<span class=\"html-attribute-value\">text\/javascript<\/span>&#8221; <span class=\"html-attribute-name\">src<\/span>=&#8221;<a class=\"html-attribute-value html-resource-link\" href=\"http:\/\/www.bjmagicdata.com\/d3\/js\/d3.js\" target=\"_blank\">js\/d3.js<\/a>&#8220;&gt;<\/span><span class=\"html-tag\">&lt;\/script&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;\/head&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;style <span class=\"html-attribute-name\">type<\/span>=&#8221;<span class=\"html-attribute-value\">text\/css<\/span>&#8220;&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">body{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">height: 100%;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.title{font-family:Arial,\u5fae\u8f6f\u96c5\u9ed1;font-size:18px;text-anchor:middle;}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.subTitle{font-family:Arial,\u5b8b\u4f53;font-size:12px;text-anchor:middle;fill:#666}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.axis path,<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.axis line {<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">fill: none;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">stroke: black;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">shape-rendering: crispEdges;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.axis text {<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">font-family: sans-serif;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">font-size: 11px;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">fill:#999;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.inner_line path,<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.inner_line line {<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">fill: none;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">stroke:#E7E7E7;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">shape-rendering: crispEdges;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.legend{font-size: 12px; font-family:Arial, Helvetica, sans-serif}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.tiptools<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">display:block;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">background-color:#FFF;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">border:1px solid #E7E7E7;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">padding:10px;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">font-size:12px;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">font-family:Arial, Helvetica, sans-serif;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">cursor:pointer;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;\/style&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;body&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;script <span class=\"html-attribute-name\">type<\/span>=&#8221;<span class=\"html-attribute-value\">text\/javascript<\/span>&#8220;&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var dataset=[];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var lines=[]; \/\/\u4fdd\u5b58\u6298\u7ebf\u56fe\u5bf9\u8c61<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var xMarks=[];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var lineNames=[]; \/\/\u4fdd\u5b58\u7cfb\u5217\u540d\u79f0<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var lineColor=[&#8220;#F00&#8243;,&#8221;#09F&#8221;,&#8221;#0F0&#8243;];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var w=600;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var h=400;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var padding=40;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var currentLineNum=0;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u7528\u4e00\u4e2a\u53d8\u91cf\u5b58\u50a8\u6807\u9898\u548c\u526f\u6807\u9898\u7684\u9ad8\u5ea6\uff0c\u5982\u679c\u6ca1\u6709\u6807\u9898\u4ec0\u4e48\u7684\uff0c\u5c31\u4e3a0<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var head_height=padding;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var title=&#8221;\u6536\u652f\u5e73\u8861\u7edf\u8ba1\u56fe&#8221;;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var subTitle=&#8221;2013\u5e741\u6708 \u81f3 2013\u5e746\u6708&#8221;;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u7528\u4e00\u4e2a\u53d8\u91cf\u8ba1\u7b97\u5e95\u90e8\u7684\u9ad8\u5ea6\uff0c\u5982\u679c\u4e0d\u662f\u591a\u7cfb\u5217\uff0c\u5c31\u4e3a0<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var foot_height=padding;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u6a21\u62df\u6570\u636e<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">getData();<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u5224\u65ad\u662f\u5426\u591a\u7ef4\u6570\u7ec4\uff0c\u5982\u679c\u4e0d\u662f\uff0c\u5219\u8f6c\u4e3a\u591a\u7ef4\u6570\u7ec4\uff0c\u8fd9\u4e9b\u5904\u7406\u662f\u4e3a\u4e86\u5904\u7406\u5916\u90e8\u4f20\u9012\u7684\u53c2\u6570\u8bbe\u7f6e\u7684\uff0c\u73b0\u5728\u6570\u636e\u6807\u51c6\uff0c\u6ca1\u4ec0\u4e48\u7528<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">if(!(dataset[0] instanceof Array))<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var tempArr=[];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">tempArr.push(dataset);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">dataset=tempArr;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u4fdd\u5b58\u6570\u7ec4\u957f\u5ea6\uff0c\u4e5f\u5c31\u662f\u7cfb\u5217\u7684\u4e2a\u6570<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">currentLineNum=dataset.length;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u56fe\u4f8b\u7684\u9884\u7559\u4f4d\u7f6e<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">foot_height+=25;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u5b9a\u4e49\u753b\u5e03<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var svg=d3.select(&#8220;body&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.append(&#8220;svg&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;width&#8221;,w)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;height&#8221;,h);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u6dfb\u52a0\u80cc\u666f<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">svg.append(&#8220;g&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.append(&#8220;rect&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;x&#8221;,0)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;y&#8221;,0)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;width&#8221;,w)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;height&#8221;,h)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.style(&#8220;fill&#8221;,&#8221;#FFF&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.style(&#8220;stroke-width&#8221;,2)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.style(&#8220;stroke&#8221;,&#8221;#E7E7E7&#8243;);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u6dfb\u52a0\u6807\u9898<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">if(title!=&#8221;&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">svg.append(&#8220;g&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.append(&#8220;text&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.text(title)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;class&#8221;,&#8221;title&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;x&#8221;,w\/2)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;y&#8221;,head_height);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">head_height+=30;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u6dfb\u52a0\u526f\u6807\u9898<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">if(subTitle!=&#8221;&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">svg.append(&#8220;g&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.append(&#8220;text&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.text(subTitle)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;class&#8221;,&#8221;subTitle&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;x&#8221;,w\/2)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;y&#8221;,head_height);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">head_height+=20;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">maxdata=getMaxdata(dataset);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u6a2a\u5750\u6807\u8f74\u6bd4\u4f8b\u5c3a<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var xScale = d3.scale.linear()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.domain([0,dataset[0].length-1])<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.range([padding,w-padding]);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u7eb5\u5750\u6807\u8f74\u6bd4\u4f8b\u5c3a<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var yScale = d3.scale.linear()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.domain([0,maxdata])<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.range([h-foot_height,head_height]);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u5b9a\u4e49\u6a2a\u8f74\u7f51\u683c\u7ebf<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var xInner = d3.svg.axis()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.scale(xScale)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.tickSize(-(h-head_height-foot_height),0,0)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.tickFormat(&#8220;&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.orient(&#8220;bottom&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.ticks(dataset[0].length);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u6dfb\u52a0\u6a2a\u8f74\u7f51\u683c\u7ebf<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var xInnerBar=svg.append(&#8220;g&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;class&#8221;,&#8221;inner_line&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;transform&#8221;, &#8220;translate(0,&#8221; + (h &#8211; padding) + &#8220;)&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.call(xInner);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u5b9a\u4e49\u7eb5\u8f74\u7f51\u683c\u7ebf<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var yInner = d3.svg.axis()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.scale(yScale)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.tickSize(-(w-padding*2),0,0)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.tickFormat(&#8220;&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.orient(&#8220;left&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.ticks(10);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u6dfb\u52a0\u7eb5\u8f74\u7f51\u683c\u7ebf<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var yInnerBar=svg.append(&#8220;g&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;class&#8221;, &#8220;inner_line&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;transform&#8221;, &#8220;translate(&#8220;+padding+&#8221;,0)&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.call(yInner);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u5b9a\u4e49\u6a2a\u8f74<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var xAxis = d3.svg.axis()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.scale(xScale)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.orient(&#8220;bottom&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.ticks(dataset[0].length);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u6dfb\u52a0\u6a2a\u5750\u6807\u8f74<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var xBar=svg.append(&#8220;g&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;class&#8221;,&#8221;axis&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;transform&#8221;, &#8220;translate(0,&#8221; + (h &#8211; foot_height) + &#8220;)&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.call(xAxis);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u901a\u8fc7\u7f16\u53f7\u83b7\u53d6\u5bf9\u5e94\u7684\u6a2a\u8f74\u6807\u7b7e<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">xBar.selectAll(&#8220;text&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.text(function(d){return xMarks[d];});<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u5b9a\u4e49\u7eb5\u8f74<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var yAxis = d3.svg.axis()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.scale(yScale)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.orient(&#8220;left&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.ticks(10);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u6dfb\u52a0\u7eb5\u8f74<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var yBar=svg.append(&#8220;g&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;class&#8221;, &#8220;axis&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;transform&#8221;, &#8220;translate(&#8220;+padding+&#8221;,0)&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.call(yAxis);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u6dfb\u52a0\u56fe\u4f8b<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var legend=svg.append(&#8220;g&#8221;);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">addLegend();<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u6dfb\u52a0\u6298\u7ebf<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">lines=[];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">for(i=0;i&lt;currentLineNum;i++)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var newLine=new CrystalLineObject();<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">newLine.init(i);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">lines.push(newLine);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u91cd\u65b0\u4f5c\u56fe<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">function drawChart()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var _duration=1000;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">getData();<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">addLegend();<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u8bbe\u7f6e\u7ebf\u6761\u52a8\u753b\u8d77\u59cb\u4f4d\u7f6e<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var lineObject=new CrystalLineObject();<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">for(i=0;i&lt;dataset.length;i++)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">if(i&lt;currentLineNum)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u5bf9\u5df2\u6709\u7684\u7ebf\u6761\u505a\u52a8\u753b<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">lineObject=lines[i];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">lineObject.movieBegin(i);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">else<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u5982\u679c\u73b0\u6709\u7ebf\u6761\u4e0d\u591f\uff0c\u5c31\u52a0\u4e0a\u4e00\u4e9b<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var newLine=new CrystalLineObject();<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">newLine.init(i);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">lines.push(newLine);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u5220\u9664\u591a\u4f59\u7684\u7ebf\u6761\uff0c\u5982\u679c\u6709\u7684\u8bdd<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">if(dataset.length&lt;currentLineNum)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">for(i=dataset.length;i&lt;currentLineNum;i++)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">lineObject=lines[i];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">lineObject.remove();<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">lines.splice(dataset.length,currentLineNum-dataset.length);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">maxdata=getMaxdata(dataset);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">newLength=dataset[0].length;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u6a2a\u8f74\u6570\u636e\u52a8\u753b<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">xScale.domain([0,newLength-1]);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">xAxis.scale(xScale).ticks(newLength);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">xBar.transition().duration(_duration).call(xAxis);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">xBar.selectAll(&#8220;text&#8221;).text(function(d){return xMarks[d];});<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">xInner.scale(xScale).ticks(newLength);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">xInnerBar.transition().duration(_duration).call(xInner);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u7eb5\u8f74\u6570\u636e\u52a8\u753b<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">yScale.domain([0,maxdata]);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">yBar.transition().duration(_duration).call(yAxis);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">yInnerBar.transition().duration(_duration).call(yInner);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u5f00\u59cb\u7ebf\u6761\u52a8\u753b<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">for(i=0;i&lt;lines.length;i++)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">lineObject=lines[i];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">lineObject.reDraw(i,_duration);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">currentLineNum=dataset.length;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">dataLength=newLength;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u5b9a\u4e49\u6298\u7ebf\u7c7b<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">function CrystalLineObject()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.group=null;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.path=null;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.oldData=[];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.init=function(id)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var arr=dataset[id];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.group=svg.append(&#8220;g&#8221;);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var line = d3.svg.line()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.x(function(d,i){return xScale(i);})<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.y(function(d){return yScale(d);});<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u6dfb\u52a0\u6298\u7ebf<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.path=this.group.append(&#8220;path&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;d&#8221;,line(arr))<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.style(&#8220;fill&#8221;,&#8221;none&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.style(&#8220;stroke-width&#8221;,1)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.style(&#8220;stroke&#8221;,lineColor[id])<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.style(&#8220;stroke-opacity&#8221;,0.9);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u6dfb\u52a0\u7cfb\u5217\u7684\u5c0f\u5706\u70b9<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.group.selectAll(&#8220;circle&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.data(arr)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.enter()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.append(&#8220;circle&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;cx&#8221;, function(d,i) {<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">return xScale(i);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">})<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;cy&#8221;, function(d) {<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">return yScale(d);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">})<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;cursor&#8221;,&#8221;pointer&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;r&#8221;,5)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;fill&#8221;,lineColor[id]);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.group.selectAll(&#8220;circle&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.on(&#8220;mouseover&#8221;,function(d,i){<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var tx=parseFloat(d3.select(this).attr(&#8220;cx&#8221;));<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var ty=parseFloat(d3.select(this).attr(&#8220;cy&#8221;));<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var tips=svg.append(&#8220;g&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;id&#8221;,&#8221;tips&#8221;);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var tipRect=tips.append(&#8220;rect&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;x&#8221;,tx+10)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;y&#8221;,ty+10)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;width&#8221;,120)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;height&#8221;,30)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;fill&#8221;,&#8221;#FFF&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;stroke-width&#8221;,1)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;stroke&#8221;,&#8221;#CCC&#8221;);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var tipText=tips.append(&#8220;text&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;class&#8221;,&#8221;tiptools&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.text(lineNames[id]+&#8221;\\r\\n&#8221;+xMarks[i]+&#8221;\\r\\n&#8221;+d)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;x&#8221;,tx+20)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;y&#8221;,ty+30);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">})<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.on(&#8220;mouseout&#8221;,function(d,i){<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">d3.select(&#8220;#tips&#8221;).remove();<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">});<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.oldData=arr;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">};<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u52a8\u753b\u521d\u59cb\u5316\u65b9\u6cd5<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.movieBegin=function(id)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var arr=dataset[i];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u8865\u8db3\/\u5220\u9664\u8def\u5f84<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var olddata=this.oldData;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var line= d3.svg.line()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.x(function(d,i){if(i&gt;=olddata.length) return w-padding; else return xScale(i);})<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.y(function(d,i){if(i&gt;=olddata.length) return h-foot_height; else return yScale(olddata[i]);});<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u8def\u5f84\u521d\u59cb\u5316<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.path.attr(&#8220;d&#8221;,line(arr));<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u622a\u65ad\u65e7\u6570\u636e<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var tempData=olddata.slice(0,arr.length);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var circle=this.group.selectAll(&#8220;circle&#8221;).data(tempData);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u5220\u9664\u591a\u4f59\u7684\u5706\u70b9<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">circle.exit().remove();<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u5706\u70b9\u521d\u59cb\u5316\uff0c\u6dfb\u52a0\u5706\u70b9,\u591a\u51fa\u6765\u7684\u5230\u53f3\u4fa7\u5e95\u90e8<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.group.selectAll(&#8220;circle&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.data(arr)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.enter()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.append(&#8220;circle&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;cx&#8221;, function(d,i){<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">if(i&gt;=olddata.length) return w-padding; else return xScale(i);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">})<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;cy&#8221;,function(d,i){<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">if(i&gt;=olddata.length) return h-foot_height; else return yScale(d);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">})<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;r&#8221;,5)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;fill&#8221;,lineColor[id])<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;cursor&#8221;,&#8221;pointer&#8221;);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.group.selectAll(&#8220;circle&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.on(&#8220;mouseover&#8221;,function(d,i){<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var tx=parseFloat(d3.select(this).attr(&#8220;cx&#8221;));<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var ty=parseFloat(d3.select(this).attr(&#8220;cy&#8221;));<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var tips=svg.append(&#8220;g&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;id&#8221;,&#8221;tips&#8221;);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var tipRect=tips.append(&#8220;rect&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;x&#8221;,tx+10)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;y&#8221;,ty+10)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;width&#8221;,120)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;height&#8221;,30)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;fill&#8221;,&#8221;#FFF&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;stroke-width&#8221;,1)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;stroke&#8221;,&#8221;#CCC&#8221;);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var tipText=tips.append(&#8220;text&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;class&#8221;,&#8221;tiptools&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.text(lineNames[id]+&#8221;\\r\\n&#8221;+xMarks[i]+&#8221;\\r\\n&#8221;+d)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;x&#8221;,tx+20)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;y&#8221;,ty+30);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">})<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.on(&#8220;mouseout&#8221;,function(d,i){<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">d3.select(&#8220;#tips&#8221;).remove();<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">});<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.oldData=arr;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">};<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u91cd\u7ed8\u52a0\u52a8\u753b\u6548\u679c<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.reDraw=function(id,_duration)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var arr=dataset[i];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var line = d3.svg.line()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.x(function(d,i){return xScale(i);})<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.y(function(d){return yScale(d);});<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u8def\u5f84\u52a8\u753b<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.path.transition().duration(_duration).attr(&#8220;d&#8221;,line(arr));<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u5706\u70b9\u52a8\u753b<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.group.selectAll(&#8220;circle&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.transition()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.duration(_duration)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;cx&#8221;, function(d,i) {<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">return xScale(i);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">})<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;cy&#8221;, function(d) {<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">return yScale(d);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">})<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">};<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u4ece\u753b\u5e03\u5220\u9664\u6298\u7ebf<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.remove=function()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">this.group.remove();<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">};<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u6dfb\u52a0\u56fe\u4f8b<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">function addLegend()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var textGroup=legend.selectAll(&#8220;text&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.data(lineNames);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">textGroup.exit().remove();<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">legend.selectAll(&#8220;text&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.data(lineNames)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.enter()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.append(&#8220;text&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.text(function(d){return d;})<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;class&#8221;,&#8221;legend&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;x&#8221;, function(d,i) {return i*100;})<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;y&#8221;,0)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;fill&#8221;,function(d,i){ return lineColor[i];});<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var rectGroup=legend.selectAll(&#8220;rect&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.data(lineNames);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">rectGroup.exit().remove();<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">legend.selectAll(&#8220;rect&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.data(lineNames)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.enter()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.append(&#8220;rect&#8221;)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;x&#8221;, function(d,i) {return i*100-20;})<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;y&#8221;,-10)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;width&#8221;,12)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;height&#8221;,12)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">.attr(&#8220;fill&#8221;,function(d,i){ return lineColor[i];});<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">legend.attr(&#8220;transform&#8221;,&#8221;translate(&#8220;+((w-lineNames.length*100)\/2)+&#8221;,&#8221;+(h-10)+&#8221;)&#8221;);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u4ea7\u751f\u968f\u673a\u6570\u636e<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">function getData()<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var lineNum=Math.round(Math.random()*10)%3+1;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var dataNum=Math.round(Math.round(Math.random()*10))+5;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">oldData=dataset;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">dataset=[];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">xMarks=[];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">lineNames=[];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">for(i=0;i&lt;dataNum;i++)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">xMarks.push(&#8220;\u6807\u7b7e&#8221;+i);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">for(i=0;i&lt;lineNum;i++)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">var tempArr=[];<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">for(j=1;j&lt;dataNum;j++)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">tempArr.push(Math.round(Math.random()*h));<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">dataset.push(tempArr);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">lineNames.push(&#8220;\u7cfb\u5217&#8221;+i);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">\/\/\u53d6\u5f97\u591a\u7ef4\u6570\u7ec4\u6700\u5927\u503c<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">function getMaxdata(arr)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">maxdata=0;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">for(i=0;i&lt;arr.length;i++)<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">{<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">maxdata=d3.max([maxdata,d3.max(arr[i])]);<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">return maxdata;<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\">}<\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;\/script&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;p <span class=\"html-attribute-name\">align<\/span>=&#8221;<span class=\"html-attribute-value\">left<\/span>&#8220;&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;button <span class=\"html-attribute-name\">onClick<\/span>=&#8221;<span class=\"html-attribute-value\">javascript:drawChart();<\/span>&#8220;&gt;<\/span>\u5237\u65b0\u6570\u636e<span class=\"html-tag\">&lt;\/button&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;\/p&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;\/body&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"line-number\"><\/td>\n<td class=\"line-content\"><span class=\"html-tag\">&lt;\/html&gt;<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/blockquote>\n<p>&nbsp;<\/p>\n<p>\uff0c\u6253\u5f00\u540e\u53f3\u952e\u67e5\u770b\u6e90\u7801\uff0c\u9f20\u6807\u79fb\u52a8\u5230\u5706\u70b9\u4e0a\uff0c\u53ef\u4ee5\u770b\u5230\u6570\u636e\u63d0\u793a\u6807\u7b7e\u3002<\/p>\n<p class=\"title\">\u5b9e\u73b0\u5411\u4e0b\u94bb\u53d6<\/p>\n<p>\u73b0\u5728\u56fe\u8868\u5df2\u7ecf\u5177\u6709\u4e00\u5b9a\u7684\u4ea4\u4e92\u6027\u4e86\uff0c\u6211\u4eec\u5e0c\u671b\u80fd\u591f\u5728\u70b9\u51fb\u5706\u70b9\u7684\u65f6\u5019\uff0c\u5bf9\u5185\u90e8\u6570\u636e\u6709\u4e00\u4e2a\u9009\u62e9\uff0c\u5e76\u5c06\u9009\u62e9\u7ed3\u679c\u53d1\u9001\u51fa\u6765\uff0c\u7c7b\u4f3c\u6c34\u6676\u6613\u8868\u7684\u3010\u5411\u4e0b\u94bb\u53d6\u3011\u529f\u80fd\u3002\u90a3\u4e48\u9996\u5148\u9700\u8981\u5b9a\u4e49\u4e00\u4e2a\u4e8b\u4ef6\uff0c\u5f53\u7528\u6237\u70b9\u51fb\u9f20\u6807\uff0c\u4e8b\u4ef6\u88ab\u89e6\u53d1\uff0c\u5982\u679c\u6709\u53e6\u5916\u7684\u5bf9\u8c61\u4fa6\u542c\u5b83\uff0c\u5219\u5c06\u6570\u636e\u53d1\u9001\u51fa\u6765\u3002<\/p>\n<div class=\"codeBox\">\n<div class=\"codeArea\">\/\/\u5b9a\u4e49\u6298\u7ebf\u7684\u70b9\u51fb\u4e8b\u4ef6<br \/>\nvar listeners = {};\/\/\u5982\u679c\u6709\u4fa6\u542c\uff0c\u5219\u89e6\u53d1\u4e8b\u4ef6<br \/>\nvar fireEvent= function (eventName, eventProperties)<br \/>\n{<br \/>\nif (!listeners[eventName])<br \/>\nreturn;<br \/>\nfor (var i = 0; i &lt; listeners[eventName].length; i++) {<br \/>\nlisteners[eventName][i](eventProperties);<br \/>\n}<br \/>\n};<\/p>\n<p>\/\/\u6ce8\u518c\u4fa6\u542c\u5230\u7c7b<br \/>\nthis.addListener= function (eventName, callback)<br \/>\n{<br \/>\nif (!listeners[eventName])<br \/>\nlisteners[eventName] = [];<br \/>\nlisteners[eventName].push(callback);<br \/>\n};<\/p>\n<p>\/\/\u4ece\u7c7b\u91cc\u9762\u79fb\u9664\u4fa6\u542c<br \/>\nthis.removeListener = function (eventName, callback)<br \/>\n{<br \/>\nif (!listeners[eventName])<br \/>\nreturn;<br \/>\nfor (var i = 0; i &lt; listeners[eventName].length; i++) {<br \/>\nif (listeners[eventName][i] == callback) {<br \/>\ndelete listeners[eventName][i];<br \/>\nreturn;<br \/>\n}<br \/>\n}<br \/>\n};<\/p>\n<\/div>\n<\/div>\n<p>\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u5728\u6298\u7ebf\u70b9\u51fb\u7684\u65f6\u5019\uff0c\u89e6\u53d1\u8fd9\u4e2a\u4e8b\u4ef6\u3002<\/p>\n<div class=\"codeBox\">\n<div class=\"codeArea\">\/\/\u5706\u70b9\u7684\u5176\u5b83\u4ee3\u7801<br \/>\n&#8230;&#8230;<br \/>\n.on(&#8220;click&#8221;,function(d,i)<br \/>\n{<br \/>\nfireEvent(&#8220;click&#8221;,{lineName:lineNames[id],xMark:xMarks[i],value:d});<br \/>\n});<\/div>\n<\/div>\n<p>\u7136\u540e\u5728\u4e3b\u7a0b\u5e8f\u7684\u6dfb\u52a0\u6298\u7ebf\u91cc\u9762\u6ce8\u518c\u4fa6\u542c\uff0c\u770b\u770b\u7528\u6237\u70b9\u51fb\u7684\u5706\u70b9\u4fe1\u606f\uff0c\u8fd9\u91cc\u6211\u4eec\u7b80\u5355\u7684alert\u4e00\u4e0b\uff0c\u5982\u679c\u9700\u8981\u548c\u6298\u7ebf\u56fe\u5916\u90e8\u4ea4\u4e92\uff0c\u8fd8\u9700\u8981\u5c06\u6298\u7ebf\u56fe\u5305\u88c5\u4e00\u4e0b\uff0c\u505a\u6210\u4e00\u4e2a\u7c7b\uff0c\u7136\u540e\u4e3a\u5b83\u518d\u5b9a\u4e49\u4e8b\u4ef6\uff0c\u5e76\u6ce8\u518c\u4fa6\u542c\u3002<\/p>\n<div class=\"codeBox\">\n<div class=\"codeArea\">\/\/\u6dfb\u52a0\u6298\u7ebf<br \/>\nlines=[];<br \/>\nfor(i=0;i&lt;currentLineNum;i++)<br \/>\n{<br \/>\nvar newLine=new CrystalLineObject();<br \/>\nnewLine.init(i);<br \/>\n\/\/\u4fa6\u542c\u5706\u70b9\u70b9\u51fb\u4e8b\u4ef6<br \/>\nnewLine.addListener(&#8220;click&#8221;,function(msg){<br \/>\nalert(&#8220;\u7cfb\u5217\u540d\u79f0\uff1a&#8221;+msg.lineName+&#8221;\\r\\n\u6807\u7b7e\uff1a&#8221;+msg.xMark+&#8221;\\r\\n\u503c\uff1a&#8221;+msg.value);<br \/>\n});<br \/>\nlines.push(newLine);<br \/>\n}<\/div>\n<\/div>\n<p>\u5177\u4f53\u7684js\u81ea\u5b9a\u4e49\u4e8b\u4ef6\u7684\u89e3\u91ca\uff0c\u7f51\u4e0a\u5f88\u591a\uff0c\u611f\u5174\u8da3\u7684\u8bdd\uff0c\u53ef\u4ee5\u6df1\u5165\u7814\u7a76\u4e00\u4e0b\uff0c\u73b0\u5728\u6211\u4eec\u7684\u6298\u7ebf\u56fe\u5982\u4e0b\u56fe\u6240\u793a\u3002<\/p>\n<p align=\"center\"><a href=\"http:\/\/www.daliane.com\/wp-content\/uploads\/2015\/02\/8_2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-645\" src=\"http:\/\/www.daliane.com\/wp-content\/uploads\/2015\/02\/8_2-300x203.jpg\" alt=\"8_2\" width=\"300\" height=\"203\" srcset=\"http:\/\/www.daliane.com\/wp-content\/uploads\/2015\/02\/8_2-300x203.jpg 300w, http:\/\/www.daliane.com\/wp-content\/uploads\/2015\/02\/8_2.jpg 607w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u5bdf\u770b\u65b0\u7684\u52a8\u753b\u6f14\u793a\u6548\u679c\uff1ademo8_2.html\uff0c\u6253\u5f00\u540e\u53f3\u952e\u67e5\u770b\u6e90\u7801\uff0c\u70b9\u51fb\u3010\u5237\u65b0\u6570\u636e\u3011\u53ef\u4ee5\u770b\u5230\u65b0\u7684\u52a8\u753b\u6548\u679c\uff0c\u70b9\u51fb\u6298\u7ebf\u4e0a\u7684\u5706\u70b9\uff0c\u4f1a\u5f39\u51fa\u5bf9\u8bdd\u6846\uff0c\u8bf4\u660e\u7528\u6237\u5728\u6298\u7ebf\u7c7b\u4e0a\u70b9\u51fb\u7684\u4fe1\u606f\u3002<\/p>\n<p>&nbsp;<\/p>\n<p><b>\u53c2\u8003\u7f51\u7ad9\u4e0e\u76f8\u5173\u6587\u6863\u8d44\u6599<\/b><\/p>\n<hr style=\"height: 1px; color: #ccc;\" \/>\n<p>D3.js\u7f51\u7ad9\uff1ahttp:\/\/d3js.org\/<\/p>\n<p>\u5b98\u65b9API\u8bf4\u660ehttps:\/\/github.com\/mbostock\/d3\/wiki\/API-Reference<\/p>\n<p>\u5b66\u4e60\u8d44\u6599:http:\/\/www.dashingd3js.com\/<\/p>\n<p>http:\/\/bost.ocks.org\/mike\/<\/p>\n<p>https:\/\/github.com\/mbostock\/d3\/wiki<\/p>\n<p>https:\/\/groups.google.com\/forum\/?fromgroups#!forum\/d3-js<\/p>\n<p>http:\/\/stackoverflow.com\/questions\/tagged\/d3.js<\/p>\n<p>https:\/\/github.com\/mbostock\/d3\/wiki\/Gallery<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u8981\u89e3\u51b3\u7684\u95ee\u9898 \u6211\u5f53\u521d\u4e3a\u4ec0\u4e48\u9009\u62e9D3.js\uff1f\u4e0d\u662f\u56e0\u4e3a\u5b83\u7684\u56fe\u50cf\u591a\u4e48\u7eda\u4e3d\uff0c\u90a3\u662f\u4f5c\u56fe\u8f6f\u4ef6\u7684\u57fa\u672c\u529f\u80fd\uff0c\u5982\u679c\u53ea\u662f\u4e3a\u4e86\u505a\u4e00\u4e9b&#8230;<\/p>\n","protected":false},"author":2,"featured_media":645,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"categories":[38],"tags":[55,233],"_links":{"self":[{"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/posts\/644"}],"collection":[{"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/comments?post=644"}],"version-history":[{"count":1,"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/posts\/644\/revisions"}],"predecessor-version":[{"id":646,"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/posts\/644\/revisions\/646"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/media\/645"}],"wp:attachment":[{"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/media?parent=644"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/categories?post=644"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/tags?post=644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}