下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、使用比例尺繪制散點(diǎn)圖摘 要:這一節(jié)主要介紹了繪制散點(diǎn)圖的方法。并給出相關(guān)代碼。關(guān)鍵詞:散點(diǎn)圖;d3.min()和d3.max();D3 1d3.min()和d3.max()回顧一下創(chuàng)建散點(diǎn)圖的數(shù)據(jù)集:var dataset = 5, 20, 480, 90, 250, 50, 100, 33, 330, 95,410, 12, 475, 44, 25, 67, 85, 21, 220, 88;這個(gè)數(shù)據(jù)集是用數(shù)組的數(shù)組表示的。我們是把每個(gè)數(shù)組的第一個(gè)值映射到了x 軸,把第二個(gè)值映射到了y 軸?,F(xiàn)在要應(yīng)用比例尺了,先從x 軸開(kāi)始。目測(cè)一下x 值,大致是從5 到480,因此合理的值域應(yīng)該是0 到50
2、0。你想讓自己的代碼更靈活更有伸縮性吧,這樣即使將來(lái)數(shù)據(jù)集有變化也不用修改代碼。你真聰明!你考慮得很周全,假如我們?cè)诮o路邊的那個(gè)蘋(píng)果攤設(shè)計(jì)一個(gè)數(shù)據(jù)展示板,那么應(yīng)該讓代碼適應(yīng)蘋(píng)果銷量的大幅增長(zhǎng)。而圖表呢,無(wú)論是賣(mài)出5 個(gè)蘋(píng)果還是100 成個(gè)蘋(píng)果,也都應(yīng)該能夠正常顯示。既然不想給值域設(shè)置固定的值,那可以使用兩個(gè)方便的數(shù)組函數(shù):d3.min() 和d3.max(),讓它們幫你動(dòng)態(tài)分析數(shù)據(jù)集。比如,下面的代碼會(huì)循環(huán)數(shù)組中的每個(gè)x值,返回其中最大的那個(gè):d3.max(dataset, function(d) return d0; / 引用嵌套數(shù)組中的第一個(gè)值);以上代碼會(huì)返回480,因?yàn)?80 是數(shù)據(jù)集
3、中最大的x 值。下面解釋一下代碼的執(zhí)行過(guò)程。D3 的min() 和max() 原理相同,都接受一到兩個(gè)參數(shù)。第一個(gè)參數(shù)必須是對(duì)數(shù)組也就是數(shù)據(jù)集的引用。假如有一個(gè)簡(jiǎn)單的一維數(shù)組,如7, 8, 4, 5, 2,那很明顯就知道怎么比較這些值的大小,不需要第二個(gè)參數(shù)。比如:var simpleDataset = 7, 8, 4, 5, 2;d3.max(simpleDataset); / 返回8max() 函數(shù)只是簡(jiǎn)單地循環(huán)數(shù)組中的每個(gè)值,然后找出其中最大的那個(gè)。可是, 我們的數(shù)據(jù)集并不是個(gè)簡(jiǎn)單的數(shù)值數(shù)組, 而是一個(gè)數(shù)組的數(shù)組。調(diào)d3.max(dataset) 可能會(huì)得到不想要的結(jié)果:var data
4、set = 5, 20, 480, 90, 250, 50, 100, 33, 330, 95,410, 12, 475, 44, 25, 67, 85, 21, 220, 88;d3.max(dataset); / 返回85, 21。要告訴max() 想比較哪個(gè)值,就必須傳入第二個(gè)參數(shù),也就是一個(gè)存取器函數(shù):d3.max(dataset, function(d) return d0;);這個(gè)存取器函數(shù)是一個(gè)匿名函數(shù),max() 會(huì)把數(shù)組中的每個(gè)元素(即這里的d)交給它。存取器函數(shù)的目的是指定比較哪個(gè)值。對(duì)我們的數(shù)據(jù)集而言,需要比較x 值,也就是嵌套數(shù)組的第一個(gè)值,位置為0。因此存取器函數(shù)就是
5、這樣的:function(d) return d0; / 返回嵌套數(shù)組中的第一個(gè)值這個(gè)函數(shù)的語(yǔ)法是用匿名函數(shù)來(lái)取得并返回值:.attr("cx", function(d) return d0;).attr("cy", function(d) return d1;)2設(shè)置動(dòng)態(tài)縮放把我們剛剛介紹的知識(shí)綜合起來(lái),就可以創(chuàng)建一個(gè)動(dòng)態(tài)映射x 軸值的比例尺函數(shù):.domain(0, d3.max(dataset, function(d) returnd0; ).range(0, w);首先,我們把這個(gè)比例尺函數(shù)命名為了xScale。當(dāng)然,你可以根據(jù)自己的需要來(lái)命名,
6、但xScale 可以幫我記住這個(gè)函數(shù)的作用。其次,這里同時(shí)設(shè)定了值域和范圍,使用的是包含兩個(gè)值的數(shù)組。第三,我們把值域的最小值設(shè)定為0 了。(實(shí)際上,在這里也可以使用min() 來(lái)生成動(dòng)態(tài)的值。)而值域的最大值則設(shè)定為數(shù)據(jù)集中的最大值(目前是480,將來(lái)可能會(huì)變)。最后,注意一下輸出范圍被設(shè)定為0 到w(即SVG 的寬度)。接下來(lái)可以使用非常類似的代碼為y 軸創(chuàng)建比例尺函數(shù):.domain(0, d3.max(dataset, function(d) return d1; ).range(0, h);要注意的是,max() 方法這一次引用的是d1, 即嵌套數(shù)組的y 值。類似地,range()
7、方法中的最大值設(shè)定成了h,而不是w。3整合縮放后的值現(xiàn)在要做的就是在散點(diǎn)圖代碼的基礎(chǔ)上,修改一下為每個(gè)值創(chuàng)建圓形的代碼。比如,原來(lái)是.attr("cx", function(d) return d0; / 返回?cái)?shù)據(jù)集中的原始值)為了使用縮放后的值(而不是原始值),要改成這樣:.attr("cx", function(d) return xScale(d0); / 返回縮放后的值)同樣,對(duì)于y 軸的代碼.attr("cy", function(d) return d1;)要改成這樣:.attr("cy", function(d) return yScale(d1);)為了比例協(xié)調(diào),下面再對(duì)設(shè)置文本標(biāo)簽坐標(biāo)的代碼作相同修改,即原來(lái)的.attr("x", function(d) return d0;).attr("y", function(d) return d1;)要改成這樣:.attr("x", function(d) return xScale(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度裝飾裝修工程安裝合同
- 2024年工程材料供應(yīng)與驗(yàn)收合同
- 公司員工檢討書(shū)
- 2024年度新能源發(fā)電設(shè)備采購(gòu)與銷售合同
- 2024年度W公司環(huán)保服務(wù)合同協(xié)議書(shū)
- 2024年建筑公司員工聘用合同
- 2024年度網(wǎng)絡(luò)通訊工程安全文明施工管理協(xié)議
- 2024年大型油田勘探開(kāi)發(fā)合作合同(海外)
- 2024年度某航空公司飛機(jī)采購(gòu)合同
- 2024年度區(qū)塊鏈應(yīng)用合作協(xié)議
- 暖通工程師面試試題(含答案)
- 行政服務(wù)中心窗口工作人員手冊(cè)
- 最新患者用藥情況監(jiān)測(cè)
- 試樁施工方案 (完整版)
- ESTIC-AU40使用說(shuō)明書(shū)(中文100版)(共138頁(yè))
- 河北省2012土建定額說(shuō)明及計(jì)算規(guī)則(含定額總說(shuō)明)解讀
- 中工商計(jì)算公式匯總.doc
- 深圳市建筑裝飾工程消耗量標(biāo)準(zhǔn)(第三版)2003
- 《初中英語(yǔ)課堂教學(xué)學(xué)困生轉(zhuǎn)化個(gè)案研究》開(kāi)題報(bào)告
- 恒溫箱PLC控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 176033山西《裝飾工程預(yù)算定額》定額說(shuō)明及計(jì)算規(guī)則
評(píng)論
0/150
提交評(píng)論