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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用按鈕更新圖表和文本 (D3.js)

使用按鈕更新圖表和文本 (D3.js)

江戶川亂折騰 2023-09-11 15:17:02
我想制作 3 個(gè)圖表,當(dāng)用戶單擊按鈕時(shí)可以更新(一一顯示)。像這樣:但我也想在圖表下方添加一個(gè)文本(h3 元素)。這是我的代碼: HTML:<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Document</title></head><body>    <button onclick="update(pageViews)">Page Views</button>    <button onclick="update(users)">Reader</button>    <button onclick="update(BounceRate)">Bounce Rate</button>    <div id="myChart"></div>    <h3>        Total of Page View on March is xxxx.    </h3>    <script src="https://d3js.org/d3.v4.js"></script>    <script src="stackOverflow.js" charset="utf-8"></script></body></html>圖表運(yùn)行良好,但文本不會(huì)改變。有人可以幫忙嗎?我認(rèn)為我在 if 語句中犯了一些錯(cuò)誤,但我仍然無法弄清楚。這是我的 JSFiddle:https://jsfiddle.net/tw0jbd81/1/
查看完整描述

1 回答

?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

因此,您將數(shù)據(jù)集作為參數(shù)傳遞給全局變量中單擊按鈕時(shí)的更新函數(shù)。


這部分也沒什么用


if (update(pageViews)) {

    tulisanBawah.innerHTML = "Total page views of march";

    console.log("pageviews");

} else if (update(users)) {

    tulisanBawah.innerHTML = "Total users of march";

    console.log("users");

}

因?yàn)樗龅氖虑槭?,它在第一個(gè) IF 條件中調(diào)用 update(pageViews),該條件解析為未定義(因?yàn)樵摵瘮?shù)不返回任何內(nèi)容),然后它再次調(diào)用 update(users),該條件再次解析為未定義,因此條件體不會(huì)被觸發(fā)。

我會(huì)用一種不同的方式來做這件事

  1. 將函數(shù)參數(shù)設(shè)置為我們要使用的字符串?dāng)?shù)據(jù)集名稱,這樣我們就可以從 HTML vie update('pageViews') 中調(diào)用它

  2. 調(diào)用腳本頁腳的 update 方法

  3. 將標(biāo)題更新登錄移至更新功能內(nèi)

  4. 附加按鈕回調(diào),例如頁面視圖

  5. 為了更新H3元素的內(nèi)容,使用innerText,而不是innerHTML

所以最終的JS會(huì)是這樣的

var pageViews = [

    { ser1: 1, ser2: 3625 },

    { ser1: 2, ser2: 2698 },

    { ser1: 3, ser2: 2441 },

    { ser1: 4, ser2: 2399 },

    { ser1: 5, ser2: 2342 },

    { ser1: 6, ser2: 2279 },

    { ser1: 7, ser2: 2087 },

    { ser1: 8, ser2: 2070 },

    { ser1: 9, ser2: 2490 },

    { ser1: 10, ser2: 2535 },

    { ser1: 11, ser2: 3468 },

    { ser1: 12, ser2: 2526 },

    { ser1: 13, ser2: 0 },

    { ser1: 14, ser2: 0 },

    { ser1: 15, ser2: 0 },

    { ser1: 16, ser2: 0 },

    { ser1: 17, ser2: 0 },

    { ser1: 18, ser2: 0 },

    { ser1: 19, ser2: 0 },

    { ser1: 20, ser2: 0 },

    { ser1: 21, ser2: 0 },

    { ser1: 22, ser2: 0 },

    { ser1: 23, ser2: 0 },

    { ser1: 24, ser2: 0 },

    { ser1: 25, ser2: 0 },

    { ser1: 26, ser2: 0 },

    { ser1: 27, ser2: 0 },

    { ser1: 28, ser2: 0 },

    { ser1: 29, ser2: 0 },

    { ser1: 30, ser2: 0 },

    { ser1: 31, ser2: 0 }

];


var users = [

    { ser1: 1, ser2: 1332 },

    { ser1: 2, ser2: 956 },

    { ser1: 3, ser2: 909 },

    { ser1: 4, ser2: 924 },

    { ser1: 5, ser2: 864 },

    { ser1: 6, ser2: 799 },

    { ser1: 7, ser2: 824 },

    { ser1: 8, ser2: 812 },

    { ser1: 9, ser2: 881 },

    { ser1: 10, ser2: 926 },

    { ser1: 11, ser2: 1330 },

    { ser1: 12, ser2: 964 },

    { ser1: 13, ser2: 0 },

    { ser1: 14, ser2: 0 },

    { ser1: 15, ser2: 0 },

    { ser1: 16, ser2: 0 },

    { ser1: 17, ser2: 0 },

    { ser1: 18, ser2: 0 },

    { ser1: 19, ser2: 0 },

    { ser1: 20, ser2: 0 },

    { ser1: 21, ser2: 0 },

    { ser1: 22, ser2: 0 },

    { ser1: 23, ser2: 0 },

    { ser1: 24, ser2: 0 },

    { ser1: 25, ser2: 0 },

    { ser1: 26, ser2: 0 },

    { ser1: 27, ser2: 0 },

    { ser1: 28, ser2: 0 },

    { ser1: 29, ser2: 0 },

    { ser1: 30, ser2: 0 },

    { ser1: 31, ser2: 0 }

];


var BounceRate = [

    { ser1: 1, ser2: 5.68 },

    { ser1: 2, ser2: 4.49 },

    { ser1: 3, ser2: 5.29 },

    { ser1: 4, ser2: 5.74 },

    { ser1: 5, ser2: 6.14 },

    { ser1: 6, ser2: 3.95 },

    { ser1: 7, ser2: 6.03 },

    { ser1: 8, ser2: 5.08 },

    { ser1: 9, ser2: 5.1 },

    { ser1: 10, ser2: 4.78 },

    { ser1: 11, ser2: 3.84 },

    { ser1: 12, ser2: 5.75 },

    { ser1: 13, ser2: 0 },

    { ser1: 14, ser2: 0 },

    { ser1: 15, ser2: 0 },

    { ser1: 16, ser2: 0 },

    { ser1: 17, ser2: 0 },

    { ser1: 18, ser2: 0 },

    { ser1: 19, ser2: 0 },

    { ser1: 20, ser2: 0 },

    { ser1: 21, ser2: 0 },

    { ser1: 22, ser2: 0 },

    { ser1: 23, ser2: 0 },

    { ser1: 24, ser2: 0 },

    { ser1: 25, ser2: 0 },

    { ser1: 26, ser2: 0 },

    { ser1: 27, ser2: 0 },

    { ser1: 28, ser2: 0 },

    { ser1: 29, ser2: 0 },

    { ser1: 30, ser2: 0 },

    { ser1: 31, ser2: 0 }

];


// set the dimensions and margins of the graph

var margin = { top: 10, right: 30, bottom: 20, left: 50 },

    width = 650 - margin.left - margin.right,

    height = 400 - margin.top - margin.bottom;


// append the svg object to the body of the page

var svg = d3

    .select("#myChart")

    .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 + ")");


// Initialise a X axis:

var x = d3.scaleLinear().range([0, width]);

var xAxis = d3.axisBottom().scale(x);

svg

    .append("g")

    .attr("transform", "translate(0," + height + ")")

    .attr("class", "myXaxis");


// Initialize an Y axis

var y = d3.scaleLinear().range([height, 0]);

var yAxis = d3.axisLeft().scale(y);

svg.append("g").attr("class", "myYaxis");



var title = document.querySelector("#title");


// Create a function that takes a dataset as input and update the plot:

function update(dataSetName) {

    if (dataSetName === "pageViews") {

        var data = pageViews

      title.innerText = "Page Views"

    }

    else if (dataSetName === "users") {

        var data = users

      title.innerText = "Users"

    }

    else if (dataSetName === "BounceRate") {

        var data = BounceRate

      title.innerText = "Bounce Rate"

    }


    // Create the X axis:

    x.domain([

        0,

        d3.max(data, function (d) {

            return d.ser1;

        })

    ]);

    svg

        .selectAll(".myXaxis")

        .transition()

        .duration(2500)

        .call(xAxis);


    // create the Y axis

    y.domain([

        0,

        d3.max(data, function (d) {

            return d.ser2;

        })

    ]);

    svg

        .selectAll(".myYaxis")

        .transition()

        .duration(2500)

        .call(yAxis);


    // Create a update selection: bind to the new data

    var u = svg.selectAll(".lineTest").data([data], function (d) {

        return d.ser1;

    });


    // Update the line

    u.enter()

        .append("path")

        .attr("class", "lineTest")

        .merge(u)

        .transition()

        .duration(2500)

        .attr(

            "d",

            d3

                .line()

                .x(function (d) {

                    return x(d.ser1);

                })

                .y(function (d) {

                    return y(d.ser2);

                })

        )

        .attr("fill", "none")

        .attr("stroke", "#ef504d")

        .attr("stroke-width", 5);


    // update tulisan bawah

}


update('pageViews')

請(qǐng)參閱此處的 JS 小提琴 https://jsfiddle.net/modularcoder/tLv3pusb/21/


查看完整回答
反對(duì) 回復(fù) 2023-09-11
  • 1 回答
  • 0 關(guān)注
  • 114 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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