Bước tới nội dung

Bản mẫu:Biểu đồ tròn/doc

Bách khoa toàn thư mở Wikipedia


Bản mẫu này vẽ các biểu đồ tròn bằng HTML, CSS và một mô đun Lua. Nó có thể chấp nhận dữ liệu được định dạng theo hai cách:

  • Các giá trị liệt kê: |value1=123 |value2=456 (cách cổ điển) hoặc
  • Một mảng đơn giản: |1=[{"value":123}, {"value":456}] (cách mới, dễ dàng sắp xếp lại)

Cách sử dụng Bản mẫu:Biểu đồ tròn/doc

Bản mẫu này cung cấp một số cách khác nhau để vẽ biểu đồ tròn. Nó có thể chấp nhận dữ liệu dưới dạng các tham số liệt kê (như nhiều bản mẫu vẫn làm). Nó cũng có thể chấp nhận dữ liệu dưới dạng một mảng JSON. Khi đặt biểu đồ tròn, bản mẫu có thể "thả nổi" (float) nó sang một bên của văn bản thân bài (giống như cách định vị hình thu nhỏ). Nó cũng có thể đặt biểu đồ làm nội dung thân bài (giống như cách hầu hết các bảng được định vị).

Tương tác (Hover)

Bản mẫu được thiết kế để hỗ trợ tương tác cơ bản trên máy tính:

  • Trên máy tính: Khi người đọc rê chuột (hover) vào một lát cắt bất kỳ trên biểu đồ, một hộp thông tin nhỏ (tooltip) sẽ hiện ra chứa Tên nhãn và Giá trị phần trăm tương ứng.
  • Trên di động: Do hạn chế của trình duyệt di động với thuộc tính `title`, việc bấm vào lát cắt có thể không hiện thông tin. Vì vậy, biểu đồ luôn đi kèm với phần Chú giải (Legend) rõ ràng để người đọc dễ dàng tra cứu.

Thumb (thả nổi)

Theo mặc định, bản mẫu tạo ra các biểu đồ dưới dạng hình thu nhỏ (thumbnail) thả nổi bên phải.

Các tham số liệt kê (Cổ điển)

Màu mặc định

  #1b7837 (7.7%)
  #7fbf7b (7.7%)
  #d9f0d3 (7.7%)
  #762a83 (7.7%)
  #af8dc3 (7.7%)
  #e7d4e8 (7.7%)
  #d73027 (7.7%)
  #fc8d59 (7.7%)
  #fee090 (7.7%)
  #4575b4 (7.7%)
  #91bfdb (7.7%)
  #e0f3f8 (7.7%)
  Khác (7.6%)

Các nhãn, giá trị và màu sắc của các lát cắt có thể được chỉ định. Tất cả các tham số cho sáu lát cắt được bao gồm trong ví dụ dưới đây. Để thêm nhiều lát cắt hơn, hãy sao chép mã cho một dòng hiện có và thay đổi chữ số ở cuối tên mỗi tham số. Sắp xếp các giá trị theo kích thước, từ lớn nhất đến nhỏ nhất. Điều này sẽ sắp xếp các lát cắt của biểu đồ theo chiều kim đồng hồ, với lát cắt lớn nhất ở vị trí 12 giờ.

{{Pie chart| thumb  = | radius = | caption= | footer = | label1 = | value1 = | color1 = | label2 = | value2 = | color2 = | label3 = | value3 = | color3 = | label4 = | value4 = | color4 = | label5 = | value5 = | color5 = | other  = | other-color = | other-label =}}

Giải thích các tham số

  • |other= (hoặc |khác=): Nếu được khai báo (ví dụ: "yes", "y", "có"), một mục "Khác" sẽ xuất hiện trong chú giải, tương ứng với phần còn thiếu để tổng các giá trị bằng 100%.[1]
  • |other-color= (hoặc |màu khác=): Chỉ định màu cho lát cắt "Khác" (mặc định là màu trắng).[2]
  • |other-label= (hoặc |nhãn khác=): Đổi tên hiển thị mặc định từ "Khác" thành bất kỳ chuỗi nào bạn muốn.
  • |labelN=: Chuỗi văn bản chú thích cho lát cắt thứ N. Nội dung này cũng sẽ hiện ra khi rê chuột vào lát cắt.
  • |valueN=: Giá trị phần trăm của lát cắt thứ N. Chỉ nhập số, không nhập dấu %.
  • |colorN=: Mã màu CSS hoặc tên màu tiếng Anh (ví dụ: `red`, `#00FF00`). Nếu bỏ qua, bản mẫu sẽ tự động chọn màu từ bảng màu mặc định.

Các tham số chung

  • |thumb=: Mặc định là `right` (phải). Để hiện bên trái, dùng |thumb=left. Để không có khung bao quanh (nội dung thân bài), dùng |thumb=none.
  • |radius=: Bán kính của biểu đồ tính bằng pixel (mặc định là 100). Không cần thêm "px".
  • |caption= (hoặc |chú thích=): Dòng chữ tiêu đề nằm ngay phía trên phần chú giải (legend).
  • |footer=: Dòng chữ nằm dưới cùng của khung biểu đồ.
  • |autoscale=true:[3] Tự động quy đổi các giá trị thô thành phần trăm (tổng bằng 100%). Ví dụ: nếu bạn nhập 5 và 15, nó sẽ tự hiểu là 25% và 75%.
  • |legend=true:[3] Hiển thị chú giải. Mặc định là `true` nếu dùng chế độ `thumb`.

Mảng giá trị (JSON)

Đây là cách hiện đại và linh hoạt hơn. Bạn truyền một mảng JSON vào tham số đầu tiên `|1=`.

  • |1=[]: Chứa mảng các đối tượng. Mỗi đối tượng có `value`, `label`, `color`.
    • Chỉ có giá trị: {"value": 1},
    • Giá trị và nhãn: {"label": "đồ uống", "value": 1},
    • Màu tùy chỉnh: {"label": "đồ uống", "value": 1, "color":"#ccf"}

Ví dụ so sánh sắp xếp dữ liệu:

Nhiều đến ítÍt đến nhiều

Lớn đến nhỏ[4]


Nhỏ đến lớn[5]


{{Pie chart|[ {"label": "bánh kẹo", "value": 5, "color":"darkred"}, {"label": "bánh mì kẹp", "value": 3, "color":"wheat"}, {"label": "bánh quy", "value": 2, "color":"goldenrod"}, {"label": "đồ uống", "value": 1, "color":"#ccf"},]| autoscale = true| legend = true| thumb  = left| radius = 100| caption= Lớn đến nhỏ<ref>Tham khảo hoạt động tốt trong chú thích</ref>| footer = }}
{{Pie chart|[ {"label": "đồ uống", "value": 1, "color":"#ccf"}, {"label": "bánh quy", "value": 2, "color":"goldenrod"}, {"label": "bánh mì kẹp", "value": 3, "color":"wheat"}, {"label": "bánh kẹo", "value": 5, "color":"darkred"},]| autoscale = true| legend = true| thumb  = right| radius = 100| caption= Nhỏ đến lớn<ref>Tham khảo hoạt động tốt trong chú thích</ref>| footer = }}

Nội dung thân bài (Inline)

Sử dụng `thumb=none` để đặt biểu đồ vào giữa nội dung bài viết hoặc trong bảng.


{{Pie chart| [  {"value":25, "label": "thị trấn"}, {"label": "thành phố"},]|thumb=none|legend=true}}

Cảnh báo và Lỗi thường gặp

Khi xem trước hoặc lưu trang, bạn có thể thấy các dòng cảnh báo màu đỏ (Script warning) nếu dữ liệu nhập vào có vấn đề. Dưới đây là các lỗi phổ biến và cách khắc phục:

Script warning: pie chart: Σ (value) = 102%...
Nguyên nhân: Tổng các giá trị thành phần lớn hơn 100% (ví dụ: 50 + 55 = 105). Điều này thường do lỗi làm tròn số hoặc nhập liệu sai.
Cách khắc phục:
  1. Kiểm tra lại các con số đầu vào.
  2. Nếu bạn đang nhập số liệu thô (ví dụ: dân số, sản lượng...) thay vì phần trăm, hãy thêm tham số |autoscale=true để bản mẫu tự động quy đổi về 100%.
Script warning: pie chart: Value too small...
Nguyên nhân: Một trong các giá trị quá nhỏ (thường dưới 0.03%) nên không thể vẽ thành một lát cắt trên biểu đồ.
Cách khắc phục: Cân nhắc gộp giá trị này vào mục "Khác" (Other) hoặc nhóm lại dữ liệu.
Script warning: pie chart: Unknown variable...
Nguyên nhân: Bạn đã nhập sai tên biến định dạng trong tham số |labelformat=. Ví dụ: gõ nhầm $valve thay vì $value.
Cách khắc phục: Chỉ sử dụng các biến chuẩn: $label (nhãn), $value (giá trị thô), $percent (phần trăm).
Expression error... hoặc vỡ giao diện
Nguyên nhân:
  1. Nhập ký tự không phải số vào phần giá trị (ví dụ: `value1 = 50%` là sai, chỉ nhập `50`).
  2. Sai cú pháp khi dùng chế độ mảng JSON (thiếu dấu phẩy `,` giữa các mục hoặc thiếu dấu ngoặc kép `"`).
Cách khắc phục: Kiểm tra lại cú pháp hoặc chuyển sang dùng chế độ tham số liệt kê cổ điển (`value1`, `label1`...) để dễ quản lý hơn.

Dữ liệu bản mẫu Bản mẫu:Biểu đồ tròn/doc

Đây là tài liệu Dữ liệu bản mẫu cho bản mẫu này được sử dụng bởi Trình soạn thảo trực quan và các công cụ khác; xem báo cáo sử dụng tham số hàng tháng cho bản mẫu này.

Dữ liệu bản mẫu cho Biểu đồ tròn

Bản mẫu tạo biểu đồ tròn (Pie Chart) sử dụng Module Lua. Hỗ trợ hiển thị trên di động và màn hình độ phân giải cao.

Tham số bản mẫu

Nên dùng bản mẫu này với các tham số đặt thành khối.

Tham sốMiêu tảKiểuTrạng thái
Dữ liệu biểu đồ (Mảng JSON)1

Cách nhập liệu hiện đại. Nhập một mảng JSON chứa các đối tượng. Mỗi đối tượng gồm: value (giá trị), label (nhãn), color (màu). Nếu dùng tham số này, không dùng các tham số value1, label1...

Ví dụ
[ {"label": "Kẹo", "value": 5, "color": "darkred"}, {"label": "Bánh", "value": 10} ]
Chuỗi dàikhuyên dùng
Vị trí khung (Thumb)thumb

Xác định vị trí thả nổi của biểu đồ (giống hình thu nhỏ).

Giá trị đề nghị
right left none center
Mặc định
right
Chuỗi dàikhuyên dùng
Tiêu đề biểu đồcaption chú thích

Dòng chữ tiêu đề nằm ngay phía trên phần chú giải (Legend).

Chuỗi dàitùy chọn
Hiện chú giảilegend

Hiển thị hoặc ẩn bảng chú giải. Mặc định là 'true' nếu dùng chế độ thumb.

Giá trị đề nghị
true false
Mặc định
true
Luận lýkhuyên dùng
Chân trangfooter

Dòng chữ nằm dưới cùng của khung biểu đồ.

Chuỗi dàitùy chọn
Bán kínhradius

Bán kính của hình tròn tính bằng pixel. Không cần nhập 'px'.

Mặc định
100
Sốtùy chọn
Chiều rộng hộpwidth

Chiều rộng của hộp chứa biểu đồ. Thường không cần dùng vì hộp tự co giãn.

Sốtùy chọn
Tự động chia tỷ lệautoscale

Nếu là 'true', các giá trị thô sẽ được tự động quy đổi thành phần trăm (tổng = 100%). Mặc định kích hoạt nếu tổng giá trị > 100.

Giá trị đề nghị
true false
Mặc định
false
Luận lýkhuyên dùng
Hướng bố cụcdirection

Vị trí của chú giải so với biểu đồ hình tròn.

Giá trị đề nghị
column-reverse column row row-reverse
Mặc định
column-reverse
Chuỗi dàitùy chọn
Định dạng nhãn (JSON)labelformat

Cách hiển thị nhãn khi dùng chế độ JSON. Các biến: $label, $value, $percent.

Mặc định
$label: $auto
Chuỗi dàitùy chọn
Hiện mục 'Khác'other khác

Nếu khai báo (ví dụ: yes), sẽ tự động thêm mục 'Khác' vào chú giải cho phần trăm còn thiếu.

Luận lýtùy chọn
Nhãn cho mục 'Khác'other-label nhãn khác

Tên hiển thị thay thế cho chữ 'Khác' mặc định.

Chuỗi dàitùy chọn
Màu cho mục 'Khác'other-color màu khác

Màu sắc của lát cắt 'Khác'.

Chuỗi dàitùy chọn
Giá trị 1value1

Giá trị phần trăm của lát cắt 1.

Sốtùy chọn
Nhãn 1label1

Tên hiển thị của lát cắt 1.

Chuỗi dàitùy chọn
Màu 1color1

Màu sắc của lát cắt 1.

Chuỗi dàitùy chọn
Giá trị 2value2

không có miêu tả

Sốtùy chọn
Nhãn 2label2

không có miêu tả

Chuỗi dàitùy chọn
Màu 2color2

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 3value3

không có miêu tả

Sốtùy chọn
Nhãn 3label3

không có miêu tả

Chuỗi dàitùy chọn
Màu 3color3

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 4value4

không có miêu tả

Sốtùy chọn
Nhãn 4label4

không có miêu tả

Chuỗi dàitùy chọn
Màu 4color4

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 5value5

không có miêu tả

Sốtùy chọn
Nhãn 5label5

không có miêu tả

Chuỗi dàitùy chọn
Màu 5color5

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 6value6

không có miêu tả

Sốtùy chọn
Nhãn 6label6

không có miêu tả

Chuỗi dàitùy chọn
Màu 6color6

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 7value7

không có miêu tả

Sốtùy chọn
Nhãn 7label7

không có miêu tả

Chuỗi dàitùy chọn
Màu 7color7

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 8value8

không có miêu tả

Sốtùy chọn
Nhãn 8label8

không có miêu tả

Chuỗi dàitùy chọn
Màu 8color8

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 9value9

không có miêu tả

Sốtùy chọn
Nhãn 9label9

không có miêu tả

Chuỗi dàitùy chọn
Màu 9color9

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 10value10

không có miêu tả

Sốtùy chọn
Nhãn 10label10

không có miêu tả

Chuỗi dàitùy chọn
Màu 10color10

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 11value11

không có miêu tả

Sốtùy chọn
Nhãn 11label11

không có miêu tả

Chuỗi dàitùy chọn
Màu 11color11

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 12value12

không có miêu tả

Sốtùy chọn
Nhãn 12label12

không có miêu tả

Chuỗi dàitùy chọn
Màu 12color12

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 13value13

không có miêu tả

Sốtùy chọn
Nhãn 13label13

không có miêu tả

Chuỗi dàitùy chọn
Màu 13color13

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 14value14

không có miêu tả

Sốtùy chọn
Nhãn 14label14

không có miêu tả

Chuỗi dàitùy chọn
Màu 14color14

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 15value15

không có miêu tả

Sốtùy chọn
Nhãn 15label15

không có miêu tả

Chuỗi dàitùy chọn
Màu 15color15

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 16value16

không có miêu tả

Sốtùy chọn
Nhãn 16label16

không có miêu tả

Chuỗi dàitùy chọn
Màu 16color16

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 17value17

không có miêu tả

Sốtùy chọn
Nhãn 17label17

không có miêu tả

Chuỗi dàitùy chọn
Màu 17color17

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 18value18

không có miêu tả

Sốtùy chọn
Nhãn 18label18

không có miêu tả

Chuỗi dàitùy chọn
Màu 18color18

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 19value19

không có miêu tả

Sốtùy chọn
Nhãn 19label19

không có miêu tả

Chuỗi dàitùy chọn
Màu 19color19

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 20value20

không có miêu tả

Sốtùy chọn
Nhãn 20label20

không có miêu tả

Chuỗi dàitùy chọn
Màu 20color20

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 21value21

không có miêu tả

Sốtùy chọn
Nhãn 21label21

không có miêu tả

Chuỗi dàitùy chọn
Màu 21color21

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 22value22

không có miêu tả

Sốtùy chọn
Nhãn 22label22

không có miêu tả

Chuỗi dàitùy chọn
Màu 22color22

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 23value23

không có miêu tả

Sốtùy chọn
Nhãn 23label23

không có miêu tả

Chuỗi dàitùy chọn
Màu 23color23

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 24value24

không có miêu tả

Sốtùy chọn
Nhãn 24label24

không có miêu tả

Chuỗi dàitùy chọn
Màu 24color24

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 25value25

không có miêu tả

Sốtùy chọn
Nhãn 25label25

không có miêu tả

Chuỗi dàitùy chọn
Màu 25color25

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 26value26

không có miêu tả

Sốtùy chọn
Nhãn 26label26

không có miêu tả

Chuỗi dàitùy chọn
Màu 26color26

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 27value27

không có miêu tả

Sốtùy chọn
Nhãn 27label27

không có miêu tả

Chuỗi dàitùy chọn
Màu 27color27

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 28value28

không có miêu tả

Sốtùy chọn
Nhãn 28label28

không có miêu tả

Chuỗi dàitùy chọn
Màu 28color28

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 29value29

không có miêu tả

Sốtùy chọn
Nhãn 29label29

không có miêu tả

Chuỗi dàitùy chọn
Màu 29color29

không có miêu tả

Chuỗi dàitùy chọn
Giá trị 30value30

không có miêu tả

Sốtùy chọn
Nhãn 30label30

không có miêu tả

Chuỗi dàitùy chọn
Màu 30color30

không có miêu tả

Chuỗi dàitùy chọn

Xem thêm Bản mẫu:Biểu đồ tròn/doc

  1. Nếu tổng của tất cả các giá trị lớn hơn 100%, sẽ không có lát cắt cuối cùng nào được thêm vào và mục "Khác" sẽ không hiện ra.
  2. Màu web có thể được chỉ định bằng tên hoặc giá trị hex.
  3. 1 2 Thay vì true, bạn có thể dùng yes, on, hoặc 1.
  4. Tham khảo hoạt động tốt trong chú thích
  5. Tham khảo hoạt động tốt trong chú thích