顯示標(biāo)記標(biāo)簽。將文本、時間等字段拖入維度欄,將數(shù)值拖入左值軸和右值軸,設(shè)置好標(biāo)簽和顯示,在柱狀圖上午顯示數(shù)據(jù)標(biāo)簽,只需要將標(biāo)簽設(shè)置為“顯示標(biāo)記標(biāo)簽”,在js中用顯示標(biāo)記標(biāo)簽將柱狀統(tǒng)計圖上的分類顯示從上方移到下方。JavaScript(簡稱“JS”) 是一種具有函數(shù)優(yōu)先的輕量級,解釋型或即時編譯型的編程語言。
專注于為中小企業(yè)提供成都做網(wǎng)站、網(wǎng)站設(shè)計服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)玉屏免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
這個可以在先顯示內(nèi)容摘要,設(shè)置熱點區(qū)域,鼠標(biāo)移入后進行全部內(nèi)容的放大顯示
1、模擬數(shù)據(jù)
// 模擬100條0-100的隨機數(shù),作為柱狀圖的高度
var data = Array.apply(0, Array(100)).map(function() {
return Math.random() * 100;
});
2、創(chuàng)建SVG容器
var margin = {top: 20, right: 20, bottom: 30, left: 50},
width = document.body.clientWidth - margin.left - margin.right,
height = 500 - margin.top - margin.bottom;
var chart = d3.select('body')
.append('svg')
.attr('width', width + margin.left + margin.right)
.attr('height', height + margin.top + margin.bottom)
.append('g')
.attr('transform', 'translate(' + margin.left + ', ' + margin.top + ')');
chart就是最終建立的容器,下面就往容器里面放元素。
3、畫柱狀圖
// 計算每根柱狀物體的寬度
var barWidth = width / data.length;
// 用g作每根柱狀物體的容器,意義可類比div
// 前一篇文章已經(jīng)介紹過selectAll的意義,即生成占位符,等待填充svg圖形
var bar = chart.selectAll('g')
.data(data)
.enter()
.append('g')
// 接收一個數(shù)據(jù)填充一個g元素
// 同時為g設(shè)置位置
.attr('transform', function(d, i) {
return 'translate(' + i * barWidth + ', 0)';
});
bar.append('rect')
// 添加一個矩形
.attr('y', function(d) {
return height - d;
})
.attr('height', function(d) {
return d;
})
.attr('width', barWidth - 1);
前文提到svg的元素定位都是基于整個svg容器左上角作為原點,但并不能使用position: absolute等方法定位,此處的g元素通過位移來定位x坐標(biāo),即transform: translate(x, 0)。
這里的bar可類比jQuery對象,是一個類數(shù)組對象,bar調(diào)用的方法都會對bar里面每個對象進行調(diào)用。代碼中每一次調(diào)用都插入一個矩形,同時設(shè)置y坐標(biāo)、高度和寬度,x坐標(biāo)跟父容器(g)保持一致即可。這里需要注意y坐標(biāo)往下為正,為了讓所有矩形的下邊處于同一高度,這里設(shè)置每個矩形的y坐標(biāo)為容器高度減去矩形高度。為了用一像素區(qū)分開每個矩形,這里設(shè)置矩形寬度為父容器的寬度減1。
通過以上js代碼再稍微設(shè)置一點css
rect {
fill: #2177BB;
}
即可看到一張最簡單的柱狀圖了。
4、添加坐標(biāo)軸
var y = d3.scale.linear()
.domain([0, d3.max(data)])
.range([height, 0]);
var xAxis = d3.svg.axis()
.scale(x)
.orient('bottom')
.ticks(1);
var yAxis = d3.svg.axis()
.scale(y)
.orient('left');
// 添加x坐標(biāo)軸
chart.append('g')
.attr('class', 'x axis')
.attr('transform', 'translate(0,' + height + ')')
.call(xAxis);
// 添加y坐標(biāo)軸
chart.append('g')
.attr('class', 'y axis')
.call(yAxis);
完整的柱狀圖就是這樣了
本文題目:Javascript柱圖,javascript 柱狀圖
路徑分享:http://www.ekvhdxd.cn/article14/dscsode.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、網(wǎng)站建設(shè)、網(wǎng)站改版、面包屑導(dǎo)航、響應(yīng)式網(wǎng)站、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)