《資料視覺化實戰》讀書筆記
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 並為其設定相應視覺化屬性,實現元素的變...