Rumah pembangunan bahagian belakang tutorial php Cipta visualisasi data yang cantik dalam PHP menggunakan D3.js

Cipta visualisasi data yang cantik dalam PHP menggunakan D3.js

Jun 19, 2023 pm 02:42 PM
php visualisasi data djs

Dengan kemunculan era Internet, data telah menjadi bahagian yang sangat diperlukan dalam kehidupan dan kerja kita. Visualisasi data telah menjadi teknik yang sangat popular dalam proses pemprosesan dan menganalisis data. Visualisasi data membolehkan kami memahami data dengan lebih baik, menemui corak dan arah aliran dalam data serta memaparkan hasil analisis data dengan lebih baik kepada orang lain. Dalam artikel ini, kami akan memperkenalkan cara mencipta visualisasi data yang cantik dalam PHP menggunakan D3.js.

1. Apakah itu D3.js

D3.js (Data-Driven Documents) ialah perpustakaan visualisasi data berdasarkan standard Web, yang menggabungkan data dan dokumen melalui pengikatan Data yang fleksibel dan transformasi yang elegan untuk mencipta visualisasi data interaktif. Menggunakan D3.js, anda boleh membuat pelbagai jenis visualisasi data, termasuk carta linear, carta bar, plot serakan, carta pai dan banyak lagi.

2. Cipta histogram ringkas

Pertama, kita perlu memperkenalkan fail perpustakaan D3.js. Anda boleh memuat turun versi terkini dari tapak web rasmi D3.js. Dalam fail HTML anda, gunakan pernyataan berikut untuk mengimport pustaka D3.js:

<script src="https://d3js.org/d3.v5.min.js"></script>
Salin selepas log masuk

Dalam contoh ini, kami akan mencipta carta bar ringkas yang menunjukkan bandar tertentu dari 2010 hingga 2019 populasi.

Pertama, kita perlu mencipta div untuk memegang carta kita. Tambahkan kod berikut dalam fail HTML:

<div id="chart"></div>
Salin selepas log masuk

Kemudian, dalam fail JavaScript, kita boleh menentukan beberapa data seperti berikut:

var data = [
  { year: 2010, population: 10500000 },
  { year: 2011, population: 10800000 },
  { year: 2012, population: 11200000 },
  { year: 2013, population: 11500000 },
  { year: 2014, population: 12000000 },
  { year: 2015, population: 12400000 },
  { year: 2016, population: 12800000 },
  { year: 2017, population: 13200000 },
  { year: 2018, population: 13600000 },
  { year: 2019, population: 14000000 }
];
Salin selepas log masuk

Seterusnya, kita boleh menggunakan D3.js untuk mencipta SVG elemen, elemen ini adalah tempat kita akan melukis carta. Tambahkan kod berikut pada fail JavaScript:

var svg = d3.select("#chart")
  .append("svg")
  .attr("width", 500)
  .attr("height", 400);
Salin selepas log masuk

Kemudian, kita boleh mencipta skala untuk memetakan nilai data kepada nilai piksel sebenar. Tambahkan kod berikut pada fail JavaScript:

var y = d3.scaleLinear()
  .domain([0, d3.max(data, function(d) { return d.population; })])
  .range([400, 0]);
Salin selepas log masuk

Dalam kod ini, kami menggunakan fungsi d3.scaleLinear() untuk mencipta skala linear. Fungsi domain() digunakan untuk menentukan julat data, dan fungsi julat() digunakan untuk menentukan julat nilai sebenar yang dipetakan.

Seterusnya, kita boleh mencipta paksi dan menambahnya pada elemen SVG. Tambahkan kod berikut pada fail JavaScript:

var yAxis = d3.axisLeft(y);
svg.append("g")
  .attr("transform", "translate(50,0)")
  .call(yAxis);
Salin selepas log masuk

Dalam kod ini, kami menggunakan fungsi d3.axisLeft() untuk mencipta paksi koordinat kiri. Kami kemudian menambah paksi ini pada elemen SVG menggunakan fungsi append(). Akhir sekali, gunakan fungsi call() untuk menggunakan paksi yang baru kami buat.

Sekarang, kami bersedia untuk melukis histogram. Tambahkan kod berikut pada fail JavaScript:

svg.selectAll("rect")
  .data(data)
  .enter()
  .append("rect")
  .attr("x", function(d) { return 50 + (d.year - 2010) * 45; })
  .attr("y", function(d){ return y(d.population); })
  .attr("width", 40)
  .attr("height", function(d){ return 400 - y(d.population); })
  .attr("fill", "steelblue");
Salin selepas log masuk

Dalam kod ini, kami menggunakan fungsi selectAll() untuk memilih semua segi empat tepat dalam elemen SVG, dan kemudian gunakan fungsi data() untuk mengikat data pada segi empat tepat . Fungsi enter() memberitahu D3.js perkara yang perlu dilakukan jika terdapat data baharu. Dalam contoh ini, kami merancang 10 bar, jadi kami menggunakan 10 objek data. Kemudian, kami menggunakan fungsi append() untuk menambah elemen segi empat tepat. Seterusnya, gunakan fungsi attr() untuk menetapkan kedudukan, lebar, tinggi dan warna segi empat tepat. Akhir sekali, kami mempunyai carta bar yang bagus yang menunjukkan populasi bandar tertentu dari 2010 hingga 2019.

3. Cipta visualisasi data interaktif

Sekarang, kami telah mencipta histogram ringkas. Walau bagaimanapun, jika anda ingin menjadikan visualisasi data anda lebih menarik, anda perlu menambah beberapa ciri interaktif. Seterusnya, kami akan menunjukkan cara membuat visualisasi data interaktif yang berubah apabila pengguna menggerakkan tetikus pada carta bar.

Pertama, kita perlu mengubah suai elemen SVG yang kita buat sebelum ini. Tambahkan kod berikut pada fail JavaScript:

var svg = d3.select("#chart")
  .append("svg")
  .attr("width", 500)
  .attr("height", 400)
  .on("mousemove", onMouseMove);
Salin selepas log masuk

Dalam kod ini, kami menambah acara pada elemen SVG. Apabila tetikus bergerak ke atas elemen SVG, fungsi onMouseMove() akan dicetuskan.

Seterusnya, kita perlu menulis fungsi onMouseMove(). Tambahkan kod berikut pada fail JavaScript:

function onMouseMove() {
  var mouseX = d3.mouse(this)[0];
  var year = Math.round((mouseX - 50) / 45) + 2010;
  var index = year - 2010;

  var rect = svg.selectAll("rect")._groups[0][index];
  var oldColor = d3.select(rect).attr("fill");
  d3.select(rect).attr("fill", "blue");

  setTimeout(function(){ 
      d3.select(rect).attr("fill", oldColor);
  }, 500);
}
Salin selepas log masuk

Dalam kod ini, kami menggunakan fungsi d3.mouse() untuk mendapatkan koordinat tetikus dalam elemen SVG. Kami kemudian mengira tahun berdasarkan kedudukan tetikus untuk mencari objek data yang ingin kami kendalikan. Dengan memilih unsur segi empat tepat yang sepadan dengan data ini, kita boleh menukar warna unsur segi empat tepat kepada biru. Kami menggunakan fungsi setTimeout() untuk menukar warna elemen segi empat tepat kembali kepada warna asalnya selepas 500 milisaat.

Kini, kami telah melengkapkan visualisasi data interaktif. Apabila pengguna menggerakkan tetikus ke atas histogram, histogram akan bertukar menjadi biru dan kemudian kembali kepada warna asalnya. Melalui contoh ini, kita dapat melihat kuasa dan fleksibiliti D3.js.

4. Ringkasan

Dalam artikel ini, kami memperkenalkan cara menggunakan D3.js dalam PHP untuk mencipta visualisasi data yang cantik. Kami menunjukkan cara membuat carta bar ringkas dan menjadikan visualisasi data kami lebih menarik dengan menambahkan ciri interaktif. D3.js menyediakan API dan kefungsian yang kaya yang membolehkan anda membuat pelbagai jenis visualisasi data dengan mudah. Jika anda ingin mengetahui lebih lanjut tentang penggunaan dan teknik D3.js, anda boleh merujuk kepada dokumentasi rasmi D3.js atau beberapa tutorial D3.js yang sangat baik.

Atas ialah kandungan terperinci Cipta visualisasi data yang cantik dalam PHP menggunakan D3.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini 7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini Nov 13, 2024 am 09:42 AM

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apr 03, 2025 am 12:03 AM

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.

See all articles