Sử dụng biểu đồ.js để biến dữ liệu thành sơ đồ tương tác

Sep 14, 2025
Cách
[số 8]

Về lý thuyết, việc tạo sơ đồ không khó. Xử lý lượng giác cần thiết cho biểu đồ hình tròn là một trong những công việc cổ điển nhất được sử dụng để đào tạo lập trình viên. Có rất nhiều thư viện sơ đồ Vying cho sự chú ý của các nhà phát triển ngay bây giờ, nhưng trong bài viết này, chúng tôi sẽ tập trung vào cách sử dụng biểu đồ công cụ nguồn mở.js.

Chúng tôi sẽ đặt thư viện thông qua các bước, tạo một tập hợp các sơ đồ có thể in từ dữ liệu được tạo ngẫu nhiên. Biểu đồ.js là một phổ biến đặc biệt phổ biến Công cụ thiết kế web Bởi vì nó cung cấp một sự đánh đổi độc đáo giữa dễ sử dụng và các tính năng nâng cao, cho phép bạn tạo biểu đồ tương tác và hấp dẫn Infographics. .

Với biểu đồ.js, bạn có thể chọn từ tám loại biểu đồ khác nhau để thêm vào trang web của mình với nỗ lực tối thiểu. Mô-đun hình ảnh động được thêm vào gần đây làm phong phú các sơ đồ với hình ảnh trông gợi cảm. Tạo một trang web mới để chứa sơ đồ của bạn? Nhận của bạn web hosting tại chỗ, và chắc chắn để thử một đỉnh người tạo ra trang web . Được rồi, hãy bắt đầu.

Nhấp vào biểu tượng ở trên cùng bên phải của mỗi hình ảnh để phóng to nó.

01. Triển khai thư viện

Khi sử dụng biểu đồ.JS là phổ biến, bạn có thể tìm thấy phiên bản đóng gói của nó từ các đĩa CDN khác nhau như CloudFlare. Chỉ cần tải nó với một & lt; script & gt; thẻ, và đảm bảo rằng một & lt; canvas & gt; Đối tượng gần đó - Chart.js thực hiện phép thuật của nó bằng cách sử dụng cơ sở hạ tầng kết xuất được cung cấp trong tiện ích này.

 & lt; html & gt;
& lt; Head & GT;
& lt; script src = "https://cdnjs.cloudflare.com/ajax/libs/chart.js/2.4.0/
Biểu đồ.min.js "& gt;
& lt; / script & gt;
& lt; / head & gt;
& lt; body & gt;
& lt; canvas id = "workarea" & gt;
& lt; / canvas & gt;
& lt; / body & gt;
& lt; / html & gt; 

02. Bắt đầu khởi tạo

First, load up the framework

Đầu tiên, tải lên khung

Khi khung được tải, bước tiếp theo liên quan đến việc xử lý Xử lý Canvas2D chỉ vào & lt; canvas & gt; ví dụ được tạo trong bước trước. Sau đó, điều này có thể được sử dụng để tạo một thể hiện mới của Đồ thị() Lớp, chịu trách nhiệm xử lý dữ liệu, kết xuất và tương tác.

 & lt; script & gt;
(chức năng() {
var ctx = tài liệu.
getEuityById ('Workarea'). GetContext ('2d');
biểu đồ var = biểu đồ mới (CTX,
Đồn là
Loại: 'Dòng',
Tùy chọn: {},
. . .
});
}) ();
& lt; / script & gt; 

03. Thêm nguồn dữ liệu

line chart

Đối với biểu đồ dòng của chúng tôi, chỉ cần một bộ dữ liệu

Các lớp biểu đồ lấy một con trỏ dữ liệu cung cấp một hoặc nhiều Dataset. các đối tượng chứa thông tin đo lường thực tế. Trong trường hợp biểu đồ dòng của chúng tôi, chỉ cần một bộ dữ liệu. Nó đi kèm với phần tử dữ liệu bắt buộc và một vài tham số tùy chọn đang điều chỉnh quá trình hiển thị thực tế.

 var biểu đồ = biểu đồ mới (ctx, {
Loại: 'Dòng',
Tùy chọn: {},
dữ liệu: {
Nhãn: ["Tháng một",
"Tháng hai", "March", "Tháng Tư", "May", "Tháng Sáu",
"Tháng 7"],
Bộ dữ liệu: [{
Nhãn: "Bộ dữ liệu đầu tiên của tôi",
màu nền:
        'RGB (255, 99, 132)',
Bordercolor:
'RGB (255, 99, 132)',
Dữ liệu: [0, 10, 5,
2, 20, 30, 45],
}]
Không thể
}); 

04. Dừng bất kỳ nhấp nháy

Biểu đồ.js đi kèm với logic thay đổi tinh vi, không may - có xu hướng lấy kích thước màn hình sai theo thời gian. Hạn chế kích thước của & lt; canvas & gt; yếu tố thông qua css, buồn thay, không làm thủ thuật. Thay vào đó, cả hai khả năng bảo trì tỷ lệ khung hình và khả năng đáp ứng thông qua trường Tùy chọn đi kèm với hàm tạo lớp biểu đồ.

 & lt; Canvas id = "Workarea" Style = "Width: 800px;
Chiều cao: 600px; "& gt; & lt; / canvas & gt; & lt; / canvas & gt;
& lt; script & gt;
(chức năng() {
var ctx = tài liệu.
getEuityById ('Workarea'). GetContext ('2D');
biểu đồ var = biểu đồ mới (CTX,
Đồn là
Loại: 'Dòng',

Tùy chọn: {
đáp ứng: Sai, Duy trìRatio:
Sai}, 

05. Thêm bố cục

Để diễn giải Andrei Tupolev: Bây giờ, một người nhỏ đang bay, chúng ta hãy mang lại cái lớn hơn. Giàn giáo được hiển thị kèm theo bước này 'nhân lên sơ đồ' của chúng tôi - thay vì làm việc với một yếu tố canvas, giờ đây chúng tôi tạo tổng cộng bốn trong số chúng và sắp xếp chúng trên màn hình theo cách tương tự như máy hiện sóng lecroy. Đáng buồn thay, điều này không hoàn toàn như dự định.

 & lt; Canvas id = "Workarea"
Phong cách = "Vị trí: Tuyệt đối; Top: 0%; Trái: 0%;
Chiều rộng: 49%; Chiều cao: 49%; "& gt; & lt; / canvas & gt; & lt; / canvas & gt;
& lt; canvas id = "workarea2"
Phong cách = "Vị trí: Tuyệt đối; Top: 0%; Trái: 51%;
Chiều rộng: 49%; Chiều cao: 49%; "& gt; & lt; / canvas & gt; & lt; / canvas & gt;
& lt; canvas id = "workarea3"
Phong cách = "Vị trí: Tuyệt đối; Top: 51%; Trái: 0%;
Chiều rộng: 49%; Chiều cao: 49%; "& gt; & lt; / canvas & gt; & lt; / canvas & gt;
& lt; canvas id = "workarea4"
Phong cách = "Vị trí: Tuyệt đối; Top: 51%; Trái: 51%;
Chiều rộng: 49%; Chiều cao: 49%; "& gt; & lt; / canvas & gt; & lt; / canvas & gt; 

06. Tame bất kỳ lỗi kết xuất

Wrapper <div> tags enforce a structure from the outside

Wrapper & lt; div & gt; Tags thực thi một cấu trúc từ bên ngoài

Cách an toàn nhất để xử lý các sơ đồ biểu đồ.js trong các bố cục phức tạp liên quan đến việc sử dụng trình bao bọc & lt; div & gt; Tags. Họ thực thi một cấu trúc từ bên ngoài, do đó đảm bảo rằng động cơ bố trí nội bộ không thể gây hại nhiều hơn mức cần thiết. Trong trường hợp này, tuy nhiên, đảm bảo kích hoạt lại tính năng Phản ứng.

 & lt; Div Style = "Vị trí: Tuyệt đối; Top: 0%; Left:
0%; Chiều rộng: 49%; Chiều cao: 49%; "& gt;
& lt; canvas id = "workarea" & gt; & lt; / canvas & gt; & lt; /
Canvas & GT;
& lt; / div & gt;
& LT; Div Style = "Vị trí: Tuyệt đối; Top: 0%; Trái:
51%; Chiều rộng: 49%; Chiều cao: 49%; "& gt;
& lt; canvas id = "workarea2" & gt; & lt; / canvas & gt; & lt; /
Canvas & GT;
& lt; / div & gt;
& LT; Div Style = "Vị trí: Tuyệt đối; Top: 51%; Trái:
0%; Chiều rộng: 49%; Chiều cao: 49%; "& gt;
& lt; canvas id = "workarea3" & gt; & lt; / canvas & gt; & lt; /
Canvas & GT;
& lt; / div & gt;
& LT; Div Style = "Vị trí: Tuyệt đối; Top: 51%; Trái:
51%; Chiều rộng: 49%; Chiều cao: 49%; "& gt;
& lt; canvas id = "workarea4" & gt; & lt; / canvas & gt; & lt; /
Canvas & GT;
& lt; / div & gt;
& lt; script & gt;
tài liệu.addeventlistener ("domcontentl
oaded ", hàm () {
var ctx = tài liệu.
getEuityById ('Workarea'). GetContext ('2D');
biểu đồ var = mới
Biểu đồ (CTX, {
kiểu:
'hàng',
Tùy chọn:
{}, 

07. THỬ THỬ

Creating bar charts is simple

Tạo biểu đồ thanh rất đơn giản

Luôn luôn kết xuất các biểu đồ dòng được tẻ nhạt nhanh chóng. Hãy vân sảy mọi thứ bằng cách thay đổi thuộc tính Type thành Bar, từ đó mang lại các sơ đồ thanh như một thuộc tính như thể hiện trong hình đi kèm với bước này. Chúng tôi quảng bá trường dữ liệu để 'phạm vi' toàn cầu 'để loại bỏ tái sử dụng.

 & lt; script & gt;
document.addeventlistener ("domcontentLoaded", hàm () {
var myfield = {
Nhãn: ["Tháng một", "Tháng hai", "March", "Tháng Tư", "May", "Tháng Sáu", "Tháng 7"],
Bộ dữ liệu: [{
nhãn:
"Dataset đầu tiên của tôi",

BackgroundColor: 'RGB (255, 99, 132)',

BorderColor: 'RGB (255, 99, 132)',
Dữ liệu: [0, 10, 5, 2, 20, 30, 45],
}]
};

. . .
CTX = tài liệu.
getEuityById ('workarea4'). GetContext ('2d');
Biểu đồ = Biểu đồ mới (CTX, {
Loại: 'Bar',
Tùy chọn: {},
Dữ liệu: Myfield.
});
});
& lt; / script & gt; 

08. Tránh bánh nướng.

pie charts taking over the screen

Biểu đồ bánh yêu cầu điều trị đặc biệt nếu bạn không muốn họ lấp đầy toàn bộ màn hình của bạn

Về lý thuyết, một biểu đồ hình tròn có thể được hiển thị dọc theo cùng một dòng. Tháo các thuộc tính màu sắc để ngăn chặn sự xuất hiện đồng đều và đặt thuộc tính loại thành Pie. Đáng buồn thay, điều này không hoàn toàn được giải quyết - khi hoàn tất, biểu đồ hình tròn sẽ lấp đầy toàn bộ màn hình. Điều này được gây ra bởi một đặc sản của trình kết xuất PIE sử dụng 'lớn hơn' của hai thuộc tính để xác định bán kính PIE.

 var mypie = {
Nhãn: ["Tháng một", "Tháng hai", "March", "Tháng Tư", "May", "Tháng Sáu", "Tháng 7"],
Bộ dữ liệu: [{
Nhãn: "Bộ dữ liệu đầu tiên của tôi",
Dữ liệu: [0, 10, 5, 2, 20, 30, 45],
}]
};
ctx = document.getelementbyId ('workarea2').
getContext ('2d');
Biểu đồ = Biểu đồ mới (CTX, {
Loại: 'Pie',
Tùy chọn: {},
Dữ liệu: MyPie.
}); 

09. Giải quyết vấn đề

Mở tệp 'index.js' được tạo ở bước 1. Bắt đầu bằng cách chỉ định loại biểu đồ dưới dạng dòng và thêm dữ liệu để được biểu diễn trực quan như hiển thị bên dưới.

 & lt; body & gt;
& lt; Div Style = "Vị trí: Tuyệt đối; Top: 0%;
còn lại: 0%; Chiều rộng: 49%; Chiều cao: 49%; "& gt;
& lt; canvas id = "workarea" & gt; & lt; /
Canvas & GT; & LT; / Canvas & GT;
& lt; / div & gt;
& lt; Div Style = "Vị trí: Tuyệt đối; Top: 0%;
còn lại: 51%; Chiều rộng: 29%; Chiều cao: 49%; "& gt;
& lt; canvas id = "workarea2" & gt; & lt; /
Canvas & GT; & LT; / Canvas & GT;
& lt; / div & gt; 

10. Hãy để biểu đồ.js không yêu cầu sơ đồ

Một cách tiếp cận khác để giải quyết vấn đề liên quan đến việc vô hiệu hóa lại Duy trìRatio. đặc tính.Bằng cách này, động cơ sơ đồ được phép giữ lại sơ đồ khi nó thấy phù hợp, đảm bảo rằng toàn bộ vòng tròn hiển thị trên màn hình.

 ctx = document.getelementbyId ('workarea2').
getContext ('2d');
Biểu đồ = Biểu đồ mới (CTX, {
Loại: 'Pie',
Tùy chọn: {Duy trìRatio: Sai
},
Dữ liệu: MyPie.
}); 

Trang tiếp theo: Kết thúc việc tạo biểu đồ tương tác của bạn với biểu đồ.js

  • 1.
  • 2.

Trang hiện tại: Sử dụng biểu đồ.js: các bước 01-10


Cách - Các bài báo phổ biến nhất

Tất cả những gì bạn cần biết về việc chia mã JavaScript

Cách Sep 14, 2025

[số 8] Các trang web hiện đại thường kết hợp tất cả JavaScript của họ thành một lần duy nhất, lớn ..


Cách tạo hiệu ứng văn bản và hình ảnh trục trặc trong CSS

Cách Sep 14, 2025

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách tạo hiệu ứng văn bản trục trặc. Các hiệu ứng đặc biệt và hoạt hình có thể giúp các trang web ..


Cách thiết kế kiểu chữ isometric

Cách Sep 14, 2025

[số 8] Phối cảnh là tất cả mọi thứ trong thiết kế. Nếu một cái gì đó bạn đã vẽ có một viễn c..


Tạo nghệ thuật chân dung trong Corel Painter

Cách Sep 14, 2025

Trang 1/2: trang 1 trang 1 Trang 2 Hội thảo này sẽ giới th..


Cách trộn bảng màu Gouache

Cách Sep 14, 2025

[số 8] Gouache dễ tha thứ hơn sơn màu nước, nhưng các quyết định bạn làm sớm vẫn có thể ảnh hưởn..


Chú rể một sinh vật lông thú không thể cưỡng lại

Cách Sep 14, 2025

[số 8] Trang 1/3: trang 1 trang 1 Trang..


Người mẫu Darth Vader trong Zbrush

Cách Sep 14, 2025

[số 8] Trang 1/2: trang 1 trang 1 Trang..


Cách sử dụng Nhiếp ảnh chứng khoán sáng tạo trong công việc thiết kế của bạn

Cách Sep 14, 2025

[số 8] Thay vì là phương sách cuối cùng, hình ảnh chứng khoán có thể và nên tạo thành một phần thiết..


Thể loại