第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

D3繪制水平柱狀圖

標(biāo)簽:
JavaScript

一、前言

根据需要,Boss让你绘制水平的柱状图,左边显示昨天的数据,今天显示今天的数据。用D3画图

二、仿造数据

today.csv

name,value,unit
A,2000,%
B,1000,t
C,1400,¥
D,32,d
E,520,d
F,10000,d
G,5500,元
H,740,t
I,850,t
J,950,t
K,1100,t
L,1200,t

yesterday.csv

name,value,unit
A,1000,%
B,800,t
C,1200,¥
D,30,d
E,500,d
F,10000,d
G,5000,元
H,700,t
I,800,t
J,900,t
K,1000,t
L,1100,t

三、画图

大致流程

3.1 画布大小,位置

3.2 数据的映射关系,ordinal,linear 常用的。输入,输出

3.3 加载数据,画到指定位置

3.4 添加一些修饰。


var width = 960,height = 500;
var svg = d3.select("body").append("svg").attr("width",width).attr("height",height);
var margin = {top:50,left:60,right:60,bottom:50};
var xScale = d3.scale.linear().range([0,(width- margin.left - margin.right)/2]);    //X轴和Y轴
var yScale = d3.scale.ordinal().rangeRoundBands([0,height - margin.top - margin.bottom],0.1);   //
 
d3.csv("data/today.csv", function (data) {
        data.sort(function(a,b){ return d3.descending(parseInt(a.value),parseInt(b.value))}); //对加载的数据排序
        xScale.domain([0,d3.max(data, function (d) {
            return parseFloat(d.value);
        })]);
        yScale.domain(data.map(function(d){return d.name}));
        bar1 = svg.append("g")
                .attr("class","bar1")
                .attr("transform","translate("+ width/2 +"," + margin.top +")");
        bar1.selectAll("rect").data(data).enter()
                .append("rect")
                .attr("x", function (d) {
                    return 0;
                })
                .attr("y", function (d) {
                    return yScale(d.name);
                })
                .attr("width", function (d) {
                    return xScale(d.value);
                })
                .attr("height", function () {
                    return yScale.rangeBand();
                })
                .attr("fill","#00ff29");
        bar1.selectAll("text").data(data).enter()
                .append("text")
                .attr("x", function (d) {
                    return xScale(parseFloat(d.value));
                })
                .attr("y", function (d) {
                    return yScale(d.name)+yScale.rangeBand();
                })
                .text(function (d) {
                    return d.name + d.value + d.unit;
                })
    });
    d3.csv("data/yesterday.csv", function (data) {
        data.sort(function(a,b){ return d3.descending(parseInt(a.value),parseInt(b.value))});
//        xScale.domain([0,d3.max(data, function (d) {
//            return parseFloat(d.value);
//        })]);
//        yScale.domain(data.map(function(d){return d.name}));
        bar2 = svg.append("g")
                .attr("class","bar1")
                .attr("transform","translate("+ width/2 +"," + margin.top +")");
        bar2.selectAll("rect").data(data).enter()
                .append("rect")
                .attr("x", function (d) {
                    return 0-xScale(parseFloat(d.value));
                })
                .attr("y", function (d) {
                    return yScale(d.name);
                })
                .attr("width", function (d) {
                    return xScale(d.value);
                })
                .attr("height", function () {
                    return yScale.rangeBand();
                })
                .attr("fill","#f5ef13");
        bar2.selectAll("text").data(data).enter()
                .append("text")
                .attr("x", function (d) {
                    return (-40-xScale(parseFloat(d.value)));
                })
                .attr("y", function (d) {
                    return (parseFloat(yScale(d.name)) + parseFloat(yScale.rangeBand()));
                })
                .text(function (d) {
                    return d.name + d.value + d.unit;
                })
    });
    svg.append("text")
            .attr("class","title")
            .attr("x",300).attr("y",40).text("某公司.");
//添加一些修饰性内容
    d3.select("svg").append("rect")
            .attr("x",740)
            .attr("y",354)
            .attr("width","10")
            .attr("height",10)
            .attr("fill","#f5ef13");
    d3.select("svg").append("text")
            .attr("class","mark")
            .attr("x",755)
            .attr("y",364)
            .text("昨天");
    d3.select("svg").append("rect")
            .attr("x",740)
            .attr("y",369)
            .attr("width","10")
            .attr("height",10)
            .attr("fill","#00ff29")
    d3.select("svg").append("text")
            .attr("class","mark")
            .attr("x",755)
            .attr("y",379)
            .text("今天");



四、效果


1459739190157264.png


五、总结

原理很简单,在指定位置画矩形,在指定位置写文字。

在这里标记下,以后稍加修改可以继续使用


點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
JAVA開(kāi)發(fā)工程師
手記
粉絲
1.1萬(wàn)
獲贊與收藏
1545

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消