Rumah >hujung hadapan web >tutorial js >Bermula dengan carta.js: carta baris dan bar

Bermula dengan carta.js: carta baris dan bar

Jennifer Aniston
Jennifer Anistonasal
2025-03-18 11:19:22575semak imbas

Bermula dengan carta.js: carta baris dan bar

Tutorial ini dibina pada Pengenalan Chart.js sebelumnya, menunjukkan penciptaan garis dan bar carta. Kami akan meneroka pilihan penyesuaian untuk meningkatkan penampilan carta dan perwakilan data.

Carta Talian: Menggambarkan perubahan dari masa ke masa

Carta garis berkesan menggambarkan bagaimana perubahan berubah -ubah berhubung dengan yang lain, sering kali. Sebagai contoh, mereka sesuai untuk memaparkan kelajuan kenderaan dari masa ke masa.

Chart.js memudahkan penciptaan carta garis. Secara lalai, carta dipenuhi dengan rgba(0, 0, 0, 0.1) . Untuk menjadikan warna latar belakang kelihatan, pastikan harta backgroundColor ditetapkan dan harta fill adalah true . Kunci tension membolehkan interpolasi padu tersuai, mempengaruhi lengkung garis antara titik data. Menetapkan stepped ke "middle" mencipta kesan seperti langkah.

Segmen individu antara titik data boleh digayakan secara unik. Contoh ini menunjukkan kelajuan dua kereta:

 const checkspeed = (ctx, color_a, color_b) => ctx.p0.parsed.y> ctx.p1.parsed.y? color_a: color_b;

Biarkan datafirst = {
  Label: "Kereta A - Kelajuan (MPH)",
  Data: [0, 59, 75, 20, 20, 55, 40],
  BorderColor: "Hitam",
  Latar Belakang Color: "Telus",
  BorderDash: [3, 3],
  melangkah: "tengah"
};

Biarkan datasecond = {
  Label: "Kereta B - Kelajuan (MPH)",
  Data: [20, 15, 60, 60, 65, 30, 70],
  BorderColor: "Blue",
  Latar Belakang Color: "Telus",
  segmen: {
        BorderColor: ctx => checkspeed (ctx, 'orangered', 'Yellowgreen'),
  },
};

Biarkan SpeedData = {
  Label: ["0s", "10s", "20s", "30s", "40s", "50s", "60s"],
  Dataset: [Datafirst, DataSecond]
};

Biarkan lineChart = carta baru (SpeedCanvas, {
  Jenis: "baris",
  Data: SpeedData
});

Kod ini membandingkan titik data berturut -turut. Jika kelajuan berkurangan, orangered digunakan; Jika tidak, yellowgreen .

Carta bar: pelbagai paksi y untuk kejelasan

Untuk pelbagai dataset dengan skala yang berbeza, menggunakan pelbagai paksi Y meningkatkan kebolehbacaan. Setiap dataset boleh diberikan kepada paksi Y tertentu menggunakan kunci yAxisID .

 biarkan gravitybars = '#f06292';
Let DensityBars = '#4db6ac';

Biarkan DensityData = {
  Label: "Ketumpatan planet (kg/m3)",
  Data: [5427, 5243, 5514, 3933, 1326, 687, 1271, 1638],
  Latar Belakang Color: DensityBars,
  Yaxisid: "ketumpatan paksi y"
};

Biarkan gravityData = {
  Label: "Graviti Planet (M/S2)",
  Data: [3.7, 8.9, 9.8, 3.7, 23.1, 9.0, 8.7, 11.0],
  Latar Belakang Color: GravityBars,
  Yaxisid: "Y-Axis-Gravity"
};

Biarkan planetData = {
  Labels: ["Mercury", "Venus", "Earth", "Mars", "Musytari", "Saturn", "Uranus", "Neptune"],
  Dataset: [DensityData, GravityData]
};

Biarkan ChartOptions = {
  BarperCentage: 1,
  KategoriPercentage: 0.8,
  Skala: {
    "ketumpatan y-axis": {
      grid: {
        Warna: DensityBars,
        Tickcolor: DensityBars,
        BorderColor: DensityBars
      },
      Ticks: {
        Warna: DensityBars
      },
      Kedudukan: "Kiri"
    },
    "y-axis-gravity": {
      grid: {
        Warna: GravityBars,
        Tickcolor: GravityBars,
        BorderColor: GravityBars
      },
      Ticks: {
        Warna: GravityBars
      },
      Kedudukan: "Betul"
    }
  }
};

Biarkan Barchart = carta baru (DensityCanvas, {
  Jenis: "Bar",
  Data: PlanetData,
  Pilihan: Chartoptions
});

Contoh ini menggunakan nilai yAxisID yang unik dan menyesuaikan warna grid, tanda, dan sempadan untuk setiap paksi dalam chartOptions . barPercentage dan categoryPercentage Control Bar Spasi.

Kesimpulan

Tutorial ini merangkumi penciptaan dan penyesuaian carta baris dan bar dalam carta.js, membolehkan anda membuat carta visual yang menarik dan bermaklumat. Tutorial seterusnya akan meneroka carta kawasan radar dan kutub.

Atas ialah kandungan terperinci Bermula dengan carta.js: carta baris dan bar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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