D3學習筆記(7 8 3)

2021-10-23 19:56:59 字數 2750 閱讀 9637

《資料視覺化實戰》讀書筆記

1、比例尺的輸入值域(input domain):可能的輸入值的範圍。

比例尺的輸出範圍(output range):輸出值可能的範圍。

2、d3的比例尺函式生成器,通過d3.scale訪問。

要生成乙個比例尺,在d3.scale後面加上要建立的比例尺型別即可。

輸入值域:domain()方法,將值域以陣列形式傳給它。

輸出範圍:range()方法。

var scale = d3.scale.

linear()

;//變數scale用來儲存函式

scale.

domain([

100,

500]);

//設定輸入值域

scale.

range([

10,350]);

//設定輸出範圍

//-----------也可連綴完成設定------------

var scale = d3.scale.

linear()

.domain([

100,

500]).

range([

10,350]

);

一般我們會在attr()或其它類似方法中呼叫比例尺函式。

3、如果不想給值域設定固定的值,使**更加靈活,可以使用兩個陣列函式:d3.min()和d3.max()。

//一維陣列,傳遞對資料集的引用:

let ******dataset =[7

,8,4

,5,2

];d3.max

(******dataset)

;//返回8

//二維陣列,再傳乙個訪問器函式指定比較哪個值

var dataset =[[

1,2]

,[2,

3],[

5,8]

];d3.max

(dataset,

function

(d))

;

4、縮放散點圖

//建立動態對映x軸值的比例尺函式

var xscale = d3.scale.

linear()

.domain([

0,d3.

max(dataset,

function

(d))])

.range([

0,w]);

//w是svg的寬度

//建立動態對映y軸值的比例尺函式

var yscale = d3.scale.

linear()

.domain([

0,d3.

max(dataset,

function

(d))])

.range([

0,h]);

//之後把設計繪圖時用到的x、y座標的d[0]改為xscale(d[0]),d[1]改為yscale(d[1])即可。

5、因為svg圖的座標系原點在螢幕左上角,因上向下繪圖。所以會出現較小值在圖表上方,較大值在圖表下方的情況。我們為了翻轉影象,只要把yscale的輸出範圍由.range([0,h])改為.range([h,0])即可,這樣yscale對較小的輸入會返回較大的輸出值。

6、為避免繪製的靠近邊緣的散點被切割掉,可在設定比例尺的時候在上下左右四邊加入邊距。

let padding =20;

.range

([padding,w-padding]);

........

range

([h-padding,padding]

);

1、呼叫數軸函式並不會返回值,而是會生成數軸相關的可見元素,包括軸線、標籤和刻度。(與之對比,比例尺函式只是根據輸入值來計算並返回值,主要是在其他函式裡呼叫,不會影響dom)

數軸函式只適用於svg圖形,因為它們生成的都是svg元素。

數軸與比例尺配合使用。

2、

//建立數軸函式

let xaxis = d3.svg.

axis()

.scale

(xscale)

.orient

("bottom");

//呼叫數軸函式

//把**放到指令碼底部,以便在svg中的其他元素都生成之後再生成數軸,這樣數軸就可以出現在「上面」了。

svg.

("g").

call

(xaxis)

;

3、修正數軸

//先給g指定乙個axis類,好新增css樣式

svg.

("g").

attr

("class"

,"axis").

attr

("transform"

,"translate(0,"

+(h-padding)

+")").

call

(xaxis)

//之後在中的標籤裡新增兩條針對axis的css規則

//通過css給svg應用樣式時,只能使用svg的屬性名,而不能使用常規的css屬性。

//數軸本身是由path、line、text元素構成的,css可針對此三個元素設定樣式。

//平移變換語法:translate(x,y),把元素移動到新位置的座標是(x,y)

裝置 D3 狀態筆記

以上都是亂寫的,等讀懂了再來編輯 裝置 d3 狀態包括 d3hot 和 d3cold 摘自微軟 在 d3 hot 狀態時,device 的供電大部分都已經斷掉了,其上一層 bus 仍然會給其極少的電流來進行控制。此時的 device 也能夠從邊帶電源中吸取電流,這取決於裝置的結構。此時計算機可以繼續...

Python學習筆記D3(列表與元組)

insert index,object 在編號index位置前插入object remove obj pop index 1 移除列表中的乙個元素 預設最後乙個元素 並且返回該元素的值 del var1 var2 語句 刪除單個或多個物件 列表分片切片的通用寫法是 start stop step 情...

D3能做什麼

d3.js是乙個js庫,用於建立資料視覺化圖形,但這麼說來還是小看它了。d3是個很不錯的軟體,它能幫你生成和操作帶資料的文件!為此,要 把資料載入到瀏覽器的記憶體空間 把資料繫結到文件中的元素,根據需要建立新元素 解析每個元素的範圍資料 bound datum 並為其設定相應視覺化屬性,實現元素的變...