Website CLBV.VN và các nền tảng trong hệ sinh thái QuanTriBenhVien.Vn được xây dựng bởi các thành viên có kinh nghiệm tại các bệnh viện, công ty. Web không có liên quan tới bất kỳ Vụ, Cục nào của BYT hay SYT --> chi tiết
Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập hoặc tài khoản đã hết hạn. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CLBV Members" các nội dung bạn quan tâm.

Kính gửi Anh/Chị/Em đồng nghiệp,

Trong thời gian qua, CLBV nhận được sự ủng hộ rất lớn từ cộng đồng. Website đã nằm trong nhóm đầu kết quả tìm kiếm với nhiều từ khóa liên quan đến Quản lý chất lượng (QLCL) và An toàn người bệnh (ATNB) trong lĩnh vực y tế.

Tuy nhiên, khi lượng truy cập ngày càng tăng, Công ty M.I.U nhận thấy một số vấn đề cần được điều chỉnh để đảm bảo phù hợp với đặc thù chuyên môn:

1. Nội dung QLCL & ATNB có tính chuyên ngành cao

  • Nhiều nội dung mang tính học tập từ sự cố, cải tiến sau sai sót.
  • Nếu tiếp cận ngoài bối cảnh chuyên môn, có thể bị hiểu chưa đầy đủ hoặc sai lệch.

2. Một số tài liệu quản trị cần được sử dụng đúng đối tượng

  • Dù là văn bản công khai, việc áp dụng hiệu quả đòi hỏi hiểu đúng bối cảnh ngành.
  • Phù hợp hơn khi chia sẻ trong cộng đồng những người trực tiếp làm công tác y tế.

3. Hạn chế nguy cơ nhầm lẫn về nhận diện

  • Tên miền clbv.vn có thể gây hiểu nhầm với các hệ thống chính thức của Bộ Y tế.
  • Việc làm rõ và chuẩn hóa nhận diện là cần thiết.

Công ty M.I.U quyết định nâng cấp hệ thống phục vụ đúng đối tượng chuyên môn

Để đảm bảo chất lượng nội dung và phục vụ tốt hơn cho cộng đồng, chúng tôi thực hiện các điều chỉnh:

  • Giới hạn truy cập nội dung: Website dành cho thành viên đã đăng ký, là các đồng nghiệp đang công tác trong lĩnh vực y tế.
  • Chuyển đổi nhận diện sang tên miền mới: QLCL.NET để đồng bộ thương hiệu với các trang trong hệ sinh thái QuanTriBenhVien.Vn như KHTH.VN; CNTT.IT; KSNK.VN; VTTB.VN; HCQT.VN ... hướng đến chia sẻ kiến thức quản trị hiện đại, liên ngành trong bệnh viện không chỉ giới hạn ở QLCL & ATNB.

Chúng tôi tin rằng đây là bước điều chỉnh cần thiết nhằm:

  • Bảo vệ giá trị chuyên môn của nội dung.
  • Đảm bảo thông tin được sử dụng đúng đối tượng, đúng bối cảnh.
  • Xây dựng cộng đồng chia sẻ chất lượng, hiệu quả.

Rất mong tiếp tục nhận được sự đồng hành của Anh/Chị/Em đồng nghiệp.

Công ty M.I.U

Bài 13: Trực quan hóa dữ liệu

🎯 MỤC TIÊU

Về kiến thức:

  1. Hiểu vai trò của trực quan hóa dữ liệu trong nghiên cứu y khoa.
  2. Phân biệt được biểu đồ dùng cho mô tả, so sánh, tương quan, sống còn, chẩn đoán và meta-analysis.
  3. Chọn được loại biểu đồ phù hợp với loại biến và câu hỏi nghiên cứu.
  4. Mô tả được các nguyên tắc thiết kế hình khoa học: rõ ràng, đơn giản, đúng dữ liệu, dễ đọc, thân thiện với người mù màu.
  5. Hiểu yêu cầu của một hình “publication-ready”: độ phân giải, nhãn trục, đơn vị đo, chú thích, p-value, confidence interval, legend.
  6. Nhận diện được các lỗi thường gặp khi tạo hình: biểu đồ sai loại, quá nhiều màu, thiếu cỡ mẫu, thiếu đơn vị, làm đẹp quá mức, gây hiểu nhầm.

Về kỹ năng:

  1. Tạo được bar chart có error bars và p-value annotation.
  2. Tạo được box plot hoặc violin plot để mô tả phân phối.
  3. Tạo được scatter plot kèm đường hồi quy.
  4. Tạo được ROC curve cho mô hình chẩn đoán hoặc prediction model.
  5. Hiểu cách tạo Kaplan–Meier curve, forest plot và CONSORT flow diagram ở mức cơ bản.
  6. Dùng AI để viết code Python/R tạo biểu đồ.
  7. Dùng công cụ no-code như Flourish hoặc Datawrapper để tạo biểu đồ/dashboard đơn giản.
  8. Xuất hình đúng định dạng cho manuscript, poster hoặc slide.

Về thái độ:

  1. Không dùng biểu đồ để “trang trí” dữ liệu.
  2. Không chọn biểu đồ vì nhìn đẹp nhưng sai thông điệp.
  3. Không để AI tự quyết định hoàn toàn cách biểu diễn kết quả.
  4. Có thói quen kiểm tra lại từng con số trong biểu đồ.
  5. Nhớ rằng biểu đồ đẹp mà sai dữ liệu thì không phải khoa học — đó là nghệ thuật gây tai nạn.

🔄 KẾT NỐI VỚI BÀI 11 VÀ BÀI 12

Ở Bài 11, học viên đã học cách phân tích thống kê cơ bản: mô tả dữ liệu, so sánh nhóm, hồi quy, p-value, confidence interval và effect size.

Ở Bài 12, học viên đã học cách xây dựng mô hình Machine Learning và đánh giá mô hình bằng AUROC, confusion matrix, calibration plot và feature importance.

Bài 13 biến các kết quả đó thành hình ảnh khoa học rõ ràng:

Dữ liệu đã làm sạch
   ↓
Phân tích thống kê / mô hình ML
   ↓
Bảng kết quả
   ↓
Biểu đồ khoa học
   ↓
Manuscript / poster / slide / dashboard

Thông điệp chính:
Một biểu đồ tốt không chỉ “đẹp”. Nó giúp người đọc hiểu kết quả nhanh, đúng và không bị đánh lừa.


PHẦN 1: VÌ SAO TRỰC QUAN HÓA DỮ LIỆU QUAN TRỌNG?

1.1. Dữ liệu dạng bảng thường khó đọc

Ví dụ, bảng kết quả sau:

NhómHbA1c giảm trung bìnhKTC 95%p-value
Treatment A1.2%0.9–1.5 
Treatment B0.6%0.3–0.90.004

Bảng này đúng, nhưng người đọc phải “đọc và tưởng tượng”.

Nếu chuyển thành biểu đồ cột có error bars hoặc dot plot, người đọc sẽ thấy ngay:

  • Nhóm A giảm HbA1c nhiều hơn.
  • Khoảng tin cậy hai nhóm.
  • Mức khác biệt có ý nghĩa.
  • Kết quả chính trong 3 giây.

Trong bài báo, poster hoặc slide, 3 giây là nhiều lắm rồi. Người đọc không phải lúc nào cũng có tâm trạng ngồi giải sudoku bằng bảng số.


1.2. Biểu đồ tốt giúp trả lời câu hỏi nghiên cứu

Một biểu đồ tốt phải trả lời được ít nhất một trong các câu hỏi:

  • Mẫu nghiên cứu có đặc điểm gì?
  • Hai nhóm có khác nhau không?
  • Phân phối dữ liệu ra sao?
  • Biến A có liên quan biến B không?
  • Mô hình dự đoán tốt đến đâu?
  • Hiệu quả điều trị thay đổi theo thời gian không?
  • Kết quả nghiên cứu có nhất quán giữa các phân nhóm không?

Nếu biểu đồ không trả lời được câu hỏi nào, rất có thể nó chỉ đang làm màu. Khoa học không cấm đẹp, nhưng đẹp phải có ích.


1.3. Biểu đồ xấu có thể gây hiểu nhầm

Ví dụ:

  • Trục y không bắt đầu từ 0 trong bar chart, làm khác biệt trông lớn hơn.
  • Dùng biểu đồ 3D khiến tỷ lệ bị bóp méo.
  • Chỉ vẽ mean mà không vẽ độ phân tán.
  • Dùng màu đỏ/xanh lá khiến người mù màu khó phân biệt.
  • Dùng pie chart với 12 lát, nhìn như bánh pizza bị tai nạn.
  • Dùng bar chart cho dữ liệu phân phối lệch nặng.
  • Không ghi cỡ mẫu, khiến người đọc không biết mỗi nhóm có bao nhiêu người.

PHẦN 2: NGUYÊN TẮC DATA VISUALIZATION

Khung chương trình gốc nhấn mạnh các nguyên tắc: Clarity > Complexity, dùng bảng màu thân thiện với người mù màu, chọn loại biểu đồ phù hợp và viết figure legends đầy đủ.


2.1. Clarity > Complexity

Nguyên tắc số 1:

Rõ ràng quan trọng hơn phức tạp.

Biểu đồ không cần chứng minh bạn biết dùng 17 loại layer trong ggplot2. Biểu đồ cần giúp người đọc hiểu đúng kết quả.

Biểu đồ yếu

  • Quá nhiều đường.
  • Quá nhiều màu.
  • Font nhỏ.
  • Legend khó hiểu.
  • Không có đơn vị.
  • Không biết kết quả chính nằm ở đâu.

Biểu đồ tốt

  • Có một thông điệp chính.
  • Trục rõ.
  • Đơn vị rõ.
  • Màu vừa đủ.
  • Cỡ mẫu có ghi.
  • Chú thích đầy đủ.
  • Người đọc hiểu được mà không cần gọi tác giả tới giải cứu.

2.2. Chọn biểu đồ theo câu hỏi, không theo sở thích

Không nên hỏi:

“Biểu đồ nào đẹp?”

Nên hỏi:

“Tôi muốn người đọc hiểu điều gì?”

Ví dụ:

Câu hỏiBiểu đồ phù hợp
Tỷ lệ biến cố giữa hai nhóm khác nhau không?Bar chart, stacked bar
HbA1c phân phối ra sao trong từng nhóm?Box plot, violin plot
BMI có liên quan HbA1c không?Scatter plot
Điều trị A có cải thiện sống còn không?Kaplan–Meier curve
Mô hình chẩn đoán tốt không?ROC curve
Yếu tố nào liên quan outcome?Forest plot
Quy trình tuyển chọn bệnh nhân thế nào?Flow diagram
Dashboard theo dõi chỉ số bệnh viện?Interactive dashboard

2.3. Luôn ghi cỡ mẫu

Một biểu đồ so sánh nhóm mà không ghi cỡ mẫu thường chưa đủ.

Ví dụ:

Treatment A (n=100)
Treatment B (n=98)

Cỡ mẫu giúp người đọc đánh giá độ tin cậy. Chênh lệch 10% ở nhóm 20 người khác rất xa chênh lệch 10% ở nhóm 2.000 người.


2.4. Báo cáo uncertainty

Không chỉ báo cáo point estimate.

Nên thêm:

  • SD.
  • SE.
  • 95% CI.
  • IQR.
  • Min–max nếu phù hợp.
  • Error bars.
  • Confidence band.
  • Prediction interval nếu cần.

Ví dụ:

Không nên:

HbA1c giảm 1.2%.

Tốt hơn:

HbA1c giảm trung bình 1.2% với KTC 95%: 0.9–1.5%.

Biểu đồ không có uncertainty giống một bác sĩ rất tự tin nhưng không cho biết đã khám bao nhiêu bệnh nhân.


2.5. Dùng màu có mục đích

Màu nên dùng để:

  • Phân biệt nhóm.
  • Nhấn mạnh kết quả chính.
  • Làm biểu đồ dễ đọc hơn.

Màu không nên dùng để:

  • Trang trí quá mức.
  • Tạo cầu vồng không cần thiết.
  • Biến biểu đồ thành pháo hoa hội nghị.

Nguyên tắc màu

  • Dùng ít màu.
  • Nhất quán giữa các biểu đồ.
  • Tránh cặp đỏ/xanh lá nếu không cần.
  • Dùng bảng màu colorblind-friendly.
  • In thử đen trắng nếu bài báo có thể in trắng đen.

2.6. Figure legend phải đủ thông tin

Một figure legend tốt nên có:

  1. Biểu đồ thể hiện điều gì.
  2. Dữ liệu gồm bao nhiêu người/nhóm.
  3. Error bars là gì: SD, SE hay 95% CI.
  4. Test thống kê nếu có.
  5. Viết tắt được giải thích.
  6. Ngưỡng p-value nếu có.
  7. Ghi chú nếu có missing data.

Legend yếu

Figure 1. HbA1c reduction.

Legend tốt hơn

Figure 1. Mean HbA1c reduction after 12 weeks by treatment group. Error bars represent 95% confidence intervals. The between-group difference was tested using an independent t-test.

PHẦN 3: CÁC LOẠI BIỂU ĐỒ THƯỜNG GẶP TRONG NGHIÊN CỨU Y KHOA

Khung chương trình gốc liệt kê các loại hình thường dùng trong nghiên cứu y khoa: bar chart, box plot, scatter plot, Kaplan–Meier curve, forest plot và ROC curve.


3.1. Bar chart — So sánh tỷ lệ hoặc trung bình

Khi dùng

Dùng để so sánh:

  • Tỷ lệ biến cố giữa các nhóm.
  • Tỷ lệ đạt mục tiêu HbA1c.
  • Tỷ lệ tái nhập viện.
  • Trung bình outcome nếu có error bars phù hợp.

Ví dụ

So sánh tỷ lệ đạt HbA1c <7% giữa Treatment A và Treatment B.

Lưu ý

Bar chart không phải lúc nào cũng tốt cho biến liên tục. Nếu muốn mô tả phân phối HbA1c, box plot hoặc violin plot thường tốt hơn.

Nên có

  • Cỡ mẫu từng nhóm.
  • Error bars nếu là trung bình/tỷ lệ.
  • p-value nếu mục tiêu là so sánh.
  • Đơn vị rõ ràng.

3.2. Box plot — Mô tả phân phối

Khi dùng

Dùng cho biến định lượng, đặc biệt khi dữ liệu lệch hoặc có outliers:

  • HbA1c.
  • BMI.
  • CRP.
  • D-dimer.
  • Thời gian nằm viện.
  • Chi phí điều trị.
  • Điểm stress.

Box plot cho biết

  • Median.
  • IQR.
  • Outliers.
  • Độ lệch phân phối.
  • Sự khác biệt giữa các nhóm.

Ví dụ

So sánh phân phối thời gian nằm viện giữa nhóm có biến chứng và không biến chứng.

Lưu ý

Nếu cỡ mẫu nhỏ, nên thêm jittered dots để thấy từng điểm dữ liệu.


3.3. Violin plot — Phân phối chi tiết hơn box plot

Violin plot cho thấy hình dạng phân phối rõ hơn box plot.

Phù hợp khi:

  • Cỡ mẫu tương đối lớn.
  • Muốn so sánh phân phối giữa nhóm.
  • Dữ liệu có nhiều dạng phân phối khác nhau.

Không nên dùng nếu người đọc của bạn không quen loại biểu đồ này. Reviewer khó tính có thể nhìn violin plot rồi tưởng đang xem nội soi thanh quản.


3.4. Scatter plot — Tương quan giữa hai biến định lượng

Khi dùng

Dùng khi muốn xem mối quan hệ giữa:

  • BMI và HbA1c.
  • Tuổi và huyết áp.
  • Thời gian mắc bệnh và điểm chất lượng sống.
  • BNP và nguy cơ tái nhập viện.
  • Số giờ làm việc và điểm stress.

Nên có

  • Điểm dữ liệu.
  • Đường hồi quy nếu phù hợp.
  • Confidence band.
  • Hệ số tương quan r hoặc rho.
  • p-value nếu cần.
  • Nhắc rõ tương quan không chứng minh nhân quả.

Ví dụ caption

Figure 2. Association between BMI and HbA1c. The solid line represents the fitted linear regression line, and the shaded area represents the 95% confidence interval.

3.5. ROC curve — Đánh giá chẩn đoán hoặc mô hình dự đoán

Khi dùng

Dùng cho:

  • Test chẩn đoán.
  • Prediction model.
  • Machine learning model.
  • Biomarker dự đoán outcome.
  • So sánh mô hình A và B.

ROC curve cho biết

  • Trade-off giữa sensitivity và 1-specificity.
  • AUROC.
  • Khả năng phân biệt người có outcome và không có outcome.

Cần báo cáo

  • AUROC.
  • 95% CI.
  • Threshold nếu dùng.
  • Sensitivity/specificity tại threshold.
  • Test set hay validation set.

Lưu ý

AUROC cao chưa đủ. Nếu mô hình dùng cho quyết định lâm sàng, cần calibration plot và decision curve nếu phù hợp.


3.6. Kaplan–Meier curve — Phân tích sống còn

Khi dùng

Dùng cho outcome dạng thời gian đến biến cố:

  • Tử vong.
  • Tái nhập viện.
  • Tái phát bệnh.
  • Thời gian đến thất bại điều trị.
  • Thời gian sống không bệnh.

Cần có

  • Trục x: thời gian.
  • Trục y: xác suất sống còn hoặc không biến cố.
  • Number at risk table.
  • Log-rank p-value nếu so sánh nhóm.
  • Hazard ratio nếu có Cox regression.

Không nên dùng Kaplan–Meier nếu

  • Không có thời gian theo dõi.
  • Chỉ có outcome có/không.
  • Không biết thời điểm xảy ra biến cố.

3.7. Forest plot — Hồi quy, subgroup hoặc meta-analysis

Khi dùng

Dùng để trình bày:

  • Odds ratio từ hồi quy logistic.
  • Hazard ratio từ Cox regression.
  • Risk ratio trong trial.
  • Subgroup analysis.
  • Kết quả meta-analysis.

Forest plot tốt cho người đọc vì

  • Thấy effect size.
  • Thấy khoảng tin cậy.
  • Thấy yếu tố nào tăng/giảm nguy cơ.
  • Thấy kết quả chính trong một hình.

Cần có

  • Tên biến/subgroup.
  • Effect size.
  • 95% CI.
  • Đường null: OR/HR/RR = 1.
  • Scale phù hợp, thường log scale.
  • Ghi rõ mô hình đã hiệu chỉnh gì.

3.8. CONSORT flow diagram — Quy trình nghiên cứu thử nghiệm

CONSORT flow diagram dùng cho RCT.

Nó cho thấy:

  • Số người được đánh giá đủ điều kiện.
  • Số người bị loại.
  • Số người được randomize.
  • Số người vào từng nhóm.
  • Số người mất theo dõi.
  • Số người được phân tích.

Khung chương trình gốc đưa CONSORT flow diagram vào phần advanced charts, có thể tạo bằng AI để draft text rồi dựng bằng PowerPoint hoặc Draw.io.


PHẦN 4: CHỌN BIỂU ĐỒ THEO LOẠI DỮ LIỆU

4.1. Biến định tính

Ví dụ:

  • Giới tính.
  • Hút thuốc.
  • Có tăng huyết áp.
  • Đạt HbA1c <7%.
  • Có biến chứng.

Biểu đồ phù hợp:

Mục tiêuBiểu đồ
Tỷ lệ trong một nhómBar chart
Tỷ lệ giữa nhiều nhómGrouped bar chart
Thành phần tổng thểStacked bar chart
Thay đổi tỷ lệ theo thời gianLine chart hoặc stacked bar

Không nên lạm dụng pie chart. Pie chart chỉ ổn khi có ít nhóm và mục tiêu là thành phần tổng thể. Nếu có nhiều hơn 4–5 lát, pie chart bắt đầu giống món bánh không ai muốn chia.


4.2. Biến định lượng

Ví dụ:

  • Tuổi.
  • BMI.
  • HbA1c.
  • Huyết áp.
  • Thời gian nằm viện.
  • Điểm stress.

Biểu đồ phù hợp:

Mục tiêuBiểu đồ
Phân phối một biếnHistogram, density plot
So sánh phân phối giữa nhómBox plot, violin plot
So sánh trung bìnhDot plot, bar chart có CI
Trước–sau cùng bệnh nhânPaired line plot
Tương quan hai biếnScatter plot

4.3. Outcome nhị phân

Ví dụ:

  • Tử vong: có/không.
  • Tái nhập viện: có/không.
  • Đạt mục tiêu điều trị: có/không.

Biểu đồ phù hợp:

Mục tiêuBiểu đồ
So sánh tỷ lệBar chart
Hồi quy logisticForest plot
Prediction modelROC curve, calibration plot
Confusion matrixHeatmap

4.4. Dữ liệu theo thời gian

Ví dụ:

  • Huyết áp theo tuần.
  • HbA1c trước/sau.
  • Số ca nhiễm khuẩn theo tháng.
  • Tỷ lệ tái nhập viện theo quý.

Biểu đồ phù hợp:

Mục tiêuBiểu đồ
Xu hướng theo thời gianLine chart
Trước–sauPaired plot
Nhiều timepointsLine chart with CI
Time-to-eventKaplan–Meier curve

PHẦN 5: PUBLICATION-READY FIGURES

5.1. Một hình publication-ready cần gì?

Một hình sẵn sàng đưa vào manuscript cần:

  • Đúng loại biểu đồ.
  • Dữ liệu chính xác.
  • Nhãn trục rõ.
  • Đơn vị rõ.
  • Font đủ lớn.
  • Màu dễ phân biệt.
  • Không dư chi tiết.
  • Có cỡ mẫu.
  • Có uncertainty.
  • Có figure legend đầy đủ.
  • Xuất đúng định dạng.
  • Độ phân giải đủ cao.

5.2. Định dạng file

Mục đíchĐịnh dạng gợi ý
ManuscriptTIFF, EPS, PDF, SVG tùy tạp chí
Vector figurePDF, SVG, EPS
Poster/slidePNG độ phân giải cao, PDF
Dashboard/webHTML, PNG, SVG

Khung chương trình gốc nhấn mạnh nên dùng vector formats như PDF/SVG cho publication và duy trì sự nhất quán giữa các hình.

5.3. DPI

  • 300 DPI thường dùng cho hình màu/ảnh.
  • 600 DPI hoặc cao hơn có thể cần cho line art.
  • Luôn kiểm tra “Instructions for Authors”.

5.4. Figure legend mẫu

Figure 1. Mean HbA1c reduction after 12 weeks by treatment group. Error bars represent 95% confidence intervals. The p-value was calculated using an independent t-test. HbA1c, glycated hemoglobin.

Bản tiếng Việt để học:

Hình 1. Mức giảm HbA1c trung bình sau 12 tuần theo nhóm điều trị. Thanh sai số thể hiện khoảng tin cậy 95%. Giá trị p được tính bằng kiểm định t độc lập. HbA1c: glycated hemoglobin.

PHẦN 6: AI HỖ TRỢ TRỰC QUAN HÓA NHƯ THẾ NÀO?

6.1. AI có thể giúp gì?

AI có thể:

  • Gợi ý loại biểu đồ phù hợp.
  • Viết code Python/R.
  • Sửa lỗi code.
  • Tạo figure legend.
  • Tạo caption.
  • Gợi ý cách báo cáo p-value/CI.
  • Tối ưu màu sắc.
  • Chuyển bảng kết quả thành forest plot.
  • Tạo dashboard bằng mô tả tự nhiên.
  • Kiểm tra biểu đồ có gây hiểu nhầm không.

6.2. AI không nên làm gì?

AI không nên:

  • Tự bịa dữ liệu để vẽ hình.
  • Tự thêm p-value nếu chưa tính.
  • Tự thay đổi trục để làm kết quả “đẹp hơn”.
  • Tự chọn biểu đồ mà không dựa vào câu hỏi.
  • Tự kết luận lâm sàng.
  • Tạo biểu đồ từ dữ liệu định danh đưa vào công cụ công cộng.
  • Tạo hình ảnh khoa học không kiểm chứng.

6.3. Quy trình an toàn

Xác định câu hỏi hình muốn trả lời
   ↓
Chọn loại biểu đồ phù hợp
   ↓
Dùng AI tạo code nháp
   ↓
Chạy code trên dữ liệu đã ẩn danh
   ↓
Kiểm tra số liệu trong hình với bảng phân tích
   ↓
Chỉnh nhãn, màu, legend
   ↓
Xuất hình đúng định dạng
   ↓
Lưu code để tái lập

PHẦN 7: CÔNG CỤ TRONG BÀI

7.1. Python: Matplotlib và Seaborn

Khung chương trình gốc đề xuất Python với MatplotlibSeaborn cho trực quan hóa dữ liệu.

Matplotlib

Mạnh ở:

  • Kiểm soát chi tiết.
  • Xuất hình chất lượng cao.
  • Phù hợp publication.
  • Tạo hầu hết biểu đồ cơ bản.

Seaborn

Mạnh ở:

  • Cú pháp ngắn hơn.
  • Đẹp hơn mặc định.
  • Tốt cho box plot, violin plot, scatter plot, regression plot.
  • Dễ dùng với DataFrame.

Lưu ý

Seaborn đẹp nhanh, nhưng vẫn phải kiểm tra:

  • Màu.
  • Trục.
  • Legend.
  • Font.
  • Cỡ mẫu.
  • Dữ liệu có bị tự động xử lý không.

7.2. R: ggplot2

ggplot2 rất mạnh để tạo hình publication-ready.

Ưu điểm:

  • Cấu trúc rõ.
  • Dễ tạo nhiều layer.
  • Cộng đồng lớn.
  • Rất phù hợp nghiên cứu y sinh.

Ví dụ tư duy ggplot:

Data + Aesthetics + Geometry + Theme + Labels

Nếu học viên đã dùng R, ggplot2 là lựa chọn rất đáng học. Nếu chưa dùng R, Python hoặc no-code tools vẫn ổn. Không cần biến Bài 13 thành trận chiến Python vs R. Cả hai đều vẽ được, miễn là người dùng biết mình đang vẽ cái gì.


7.3. ChatGPT/Claude

Dùng để:

  • Viết code.
  • Giải thích code.
  • Sửa lỗi.
  • Viết caption.
  • Chọn biểu đồ.
  • Gợi ý cải thiện hình.

Ví dụ prompt:

Tôi có dữ liệu gồm Group, HbA1c_baseline, HbA1c_12w.
Tôi muốn vẽ mức giảm HbA1c giữa hai nhóm.
Hãy gợi ý loại biểu đồ phù hợp và viết code Python.

7.4. Flourish và Datawrapper

Khung chương trình gốc gợi ý FlourishDatawrapper như lựa chọn no-code cho biểu đồ tương tác và dashboard.

Phù hợp khi

  • Muốn tạo biểu đồ nhanh.
  • Không quen code.
  • Cần dashboard đơn giản.
  • Trình bày dữ liệu cho quản lý bệnh viện.
  • Làm báo cáo nội bộ.

Cẩn thận

Không upload dữ liệu định danh bệnh nhân lên nền tảng cloud nếu chưa được phép.


PHẦN 8: THỰC HÀNH TRÊN LỚP

Tổng thời lượng thực hành: 55–60 phút

Dataset thực hành: diabetes dataset đã làm sạch từ Bài 10–11, gồm các biến như Group, Age, BMI, HbA1c_baseline, HbA1c_12w, HbA1c_reduction, Gender, Hypertension, Smoking, HbA1c_target.


Thực hành 1: Basic Charts — 25 phút

Khung chương trình gốc yêu cầu học viên trực quan hóa diabetes dataset, gồm bar chart với error bars, 95% CI, p-value annotation, màu thân thiện với người mù màu và chất lượng publication 300 DPI.

A. Bar chart với error bars

Câu hỏi:

Mức giảm HbA1c trung bình có khác giữa Treatment A và Treatment B không?

Dữ liệu cần có

BiếnÝ nghĩa
GroupTreatment A/B
HbA1c_reductionHbA1c_baseline − HbA1c_12w

Prompt AI mẫu

Create Python code for a publication-quality bar chart:

Dataset columns:
- Group: Treatment A or Treatment B
- HbA1c_reduction: reduction in HbA1c after 12 weeks

Requirements:
1. Calculate mean HbA1c reduction by group
2. Calculate 95% confidence intervals
3. Create a bar chart with error bars
4. Add individual data points as jittered dots
5. Add p-value annotation from an independent t-test
6. Use a colorblind-friendly palette
7. Add clear axis labels and units
8. Export as PNG 300 DPI and PDF
9. Include comments in Vietnamese

Sản phẩm cần có

  • Một biểu đồ cột có 95% CI.
  • Có p-value.
  • Có individual data points.
  • Có nhãn trục.
  • Có caption ngắn.

Caption mẫu

Figure 1. Mean HbA1c reduction after 12 weeks by treatment group. Error bars represent 95% confidence intervals; dots represent individual participants.

B. Box plot cho phân phối HbA1c reduction

Câu hỏi:

Phân phối mức giảm HbA1c ở hai nhóm có giống nhau không?

Prompt AI mẫu

Write Python code using seaborn to create a box plot comparing HbA1c_reduction between Treatment A and Treatment B.

Requirements:
1. Show median and IQR
2. Overlay individual data points
3. Add group sample sizes to x-axis labels
4. Add p-value from Mann-Whitney U test
5. Use a clean publication theme
6. Export as 300 DPI PNG and PDF
7. Write a figure legend

Khi nào box plot tốt hơn bar chart?

  • Dữ liệu lệch.
  • Có outliers.
  • Muốn thấy phân phối.
  • Cỡ mẫu không quá nhỏ.
  • Không muốn chỉ trình bày mean.

C. Scatter plot BMI và HbA1c

Câu hỏi:

BMI có liên quan đến HbA1c nền không?

Prompt AI mẫu

Create a scatter plot to show the association between BMI and baseline HbA1c.

Dataset columns:
- BMI
- HbA1c_baseline

Requirements:
1. Plot individual points
2. Add linear regression line with 95% CI
3. Calculate Pearson and Spearman correlation
4. Annotate correlation coefficient and p-value
5. Label axes clearly
6. Use publication-quality formatting
7. Export as PNG 300 DPI and PDF

Diễn giải mẫu

BMI showed a weak positive correlation with baseline HbA1c. However, this association does not imply causality.

Bản tiếng Việt:

BMI có tương quan dương yếu với HbA1c nền. Tuy nhiên, mối liên quan này không chứng minh quan hệ nhân quả.

Thực hành 2: Advanced Charts — 20 phút

Khung chương trình gốc đưa các advanced charts gồm CONSORT flow diagram, Kaplan–Meier survival curve và forest plot.


A. CONSORT Flow Diagram

Tình huống:

Một nghiên cứu RCT có dữ liệu:

Giai đoạnSố lượng
Assessed for eligibility350
Excluded80
Randomized270
Allocated to Treatment A135
Allocated to Treatment B135
Lost to follow-up A10
Lost to follow-up B12
Analyzed A125
Analyzed B123

Prompt AI mẫu

Create the text content for a CONSORT flow diagram using the following numbers:

- Assessed for eligibility: 350
- Excluded: 80
- Randomized: 270
- Allocated to Treatment A: 135
- Allocated to Treatment B: 135
- Lost to follow-up in Treatment A: 10
- Lost to follow-up in Treatment B: 12
- Analyzed in Treatment A: 125
- Analyzed in Treatment B: 123

Please:
1. Organize into CONSORT flow structure
2. Provide box text for each step
3. Suggest layout for PowerPoint or Draw.io
4. Write a short figure legend

Công cụ dựng

  • PowerPoint.
  • Draw.io.
  • Canva.
  • CONSORT diagram template.

B. Kaplan–Meier Curve

Khi dùng:

  • Có thời gian theo dõi.
  • Có biến cố.
  • Có censoring.

Ví dụ:

So sánh thời gian tái nhập viện giữa hai nhóm sau xuất viện.

Biến cần có

BiếnÝ nghĩa
timeThời gian theo dõi
event1 = có biến cố, 0 = censored
groupTreatment A/B

Prompt AI mẫu

Write Python code to create a Kaplan-Meier survival curve.

Dataset columns:
- time: follow-up time in days
- event: 1 if readmission occurred, 0 if censored
- group: Treatment A or Treatment B

Requirements:
1. Plot Kaplan-Meier curves by group
2. Add number at risk table if possible
3. Add log-rank test p-value
4. Label axes clearly
5. Use publication-ready formatting
6. Export as PNG 300 DPI and PDF
7. Write a figure legend

C. Forest Plot cho hồi quy logistic

Tình huống:

Outcome: đạt HbA1c <7% sau 12 tuần.

Predictors:

  • Treatment A vs B.
  • Age.
  • BMI.
  • Duration_DM.
  • Baseline_HbA1c.

Prompt AI mẫu

I have logistic regression results with adjusted odds ratios:

Variable, OR, lower_CI, upper_CI, p_value:
Treatment A vs B, 1.80, 1.10, 2.95, 0.02
Age, 0.98, 0.95, 1.01, 0.18
BMI, 0.92, 0.86, 0.99, 0.03
Duration_DM, 0.90, 0.84, 0.97, 0.005
Baseline_HbA1c, 0.70, 0.58, 0.84, <0.001

Create Python code for a forest plot:
1. Use log scale for OR
2. Add vertical reference line at OR=1
3. Show OR and 95% CI
4. Mark statistically significant variables
5. Use publication-ready formatting
6. Export PNG 300 DPI and PDF
7. Write a figure legend

Thực hành 3: Interactive Dashboard — 15 phút

Khung chương trình gốc yêu cầu học viên tạo dashboard tương tác bằng Flourish hoặc Google Data Studio, gồm demographics, outcomes by group và subgroup analyses.

Mục tiêu

Tạo dashboard đơn giản cho báo cáo nội bộ bệnh viện.

Nội dung dashboard

  1. Tổng số bệnh nhân.
  2. Tuổi trung bình.
  3. Tỷ lệ nữ.
  4. HbA1c nền.
  5. HbA1c reduction theo nhóm.
  6. Tỷ lệ đạt HbA1c <7%.
  7. Kết quả theo subgroup: giới, nhóm tuổi, BMI.

Công cụ

  • Flourish.
  • Datawrapper.
  • Google Looker Studio.
  • Excel dashboard nếu không có internet tốt.

Lưu ý bảo mật

Không upload dữ liệu có:

  • Tên bệnh nhân.
  • Mã hồ sơ.
  • Ngày sinh đầy đủ.
  • Số điện thoại.
  • Địa chỉ.
  • Thông tin có thể định danh.

Nếu dùng dashboard cloud, hãy dùng dữ liệu giả lập hoặc đã ẩn danh kỹ. Đừng để dashboard đẹp quá rồi vô tình thành “phòng trưng bày dữ liệu bệnh nhân”.


PHẦN 9: VIẾT FIGURE LEGEND VÀ RESULTS TEXT

9.1. Figure legend cho bar chart

Figure 1. Mean HbA1c reduction after 12 weeks in Treatment A and Treatment B groups. Error bars represent 95% confidence intervals. Individual points represent participants. The p-value was calculated using an independent t-test.

9.2. Figure legend cho box plot

Figure 2. Distribution of HbA1c reduction after 12 weeks by treatment group. Boxes represent the interquartile range, horizontal lines indicate medians, whiskers indicate 1.5 times the interquartile range, and dots represent individual participants.

9.3. Figure legend cho scatter plot

Figure 3. Association between BMI and baseline HbA1c. The solid line represents the fitted linear regression line, and the shaded area represents the 95% confidence interval.

9.4. Results text mẫu

The mean HbA1c reduction was greater in the Treatment A group than in the Treatment B group (1.2% vs. 0.6%; mean difference, 0.6%; 95% CI, 0.2–1.0; p = 0.004; Figure 1).

Bản tiếng Việt:

Mức giảm HbA1c trung bình ở nhóm Treatment A cao hơn nhóm Treatment B (1,2% so với 0,6%; khác biệt trung bình 0,6%; KTC 95%: 0,2–1,0; p = 0,004; Hình 1).

PHẦN 10: KIỂM TRA BIỂU ĐỒ TRƯỚC KHI ĐƯA VÀO BÀI BÁO

10.1. Checklist nội dung

  • Biểu đồ trả lời đúng câu hỏi nghiên cứu.
  • Loại biểu đồ phù hợp với loại dữ liệu.
  • Không có dữ liệu định danh.
  • Số liệu trong biểu đồ khớp bảng phân tích.
  • Có cỡ mẫu.
  • Có đơn vị đo.
  • Có uncertainty: SD, IQR hoặc 95% CI.
  • Có p-value chính xác nếu cần.
  • Không kết luận quá mức.
  • Có figure legend đầy đủ.

10.2. Checklist thiết kế

  • Font đủ lớn.
  • Trục x/y rõ.
  • Màu thân thiện với người mù màu.
  • Không dùng 3D chart.
  • Không dùng quá nhiều màu.
  • Không có gridlines dư thừa.
  • Legend không che dữ liệu.
  • Hình vẫn đọc được khi in đen trắng.
  • Xuất file đúng định dạng.
  • Có bản code để tái lập.

PHẦN 11: CASE STUDY THẢO LUẬN

Case 1: Biểu đồ cột che giấu phân phối

Một nhóm báo cáo HbA1c reduction bằng bar chart mean ± SD. Tuy nhiên, dữ liệu có nhiều outliers và phân phối lệch mạnh.

Câu hỏi

  1. Bar chart có phù hợp không?
  2. Biểu đồ nào tốt hơn?
  3. Cần báo cáo thêm gì?

Gợi ý trả lời

Box plot hoặc violin plot kèm individual data points sẽ phù hợp hơn. Cần báo cáo median, IQR nếu dữ liệu lệch nhiều. Có thể giữ bar chart nếu mục tiêu là mean difference, nhưng nên kiểm tra giả định và không che giấu outliers.


Case 2: Pie chart có 12 nhóm

Một biểu đồ thể hiện 12 loại biến chứng bằng pie chart. Người xem không phân biệt được lát nào với lát nào.

Câu hỏi

  1. Vấn đề là gì?
  2. Biểu đồ nào thay thế tốt hơn?
  3. Có nên gộp nhóm không?

Gợi ý trả lời

Bar chart sắp xếp giảm dần sẽ dễ đọc hơn. Các nhóm hiếm có thể gộp thành “Other” nếu hợp lý và được chú thích rõ.


Case 3: ROC curve đẹp nhưng không có calibration

Một mô hình dự đoán tái nhập viện có AUROC 0.86. Nhóm nghiên cứu chỉ báo cáo ROC curve và kết luận mô hình sẵn sàng triển khai.

Câu hỏi

  1. Thiếu gì?
  2. Có thể kết luận triển khai chưa?
  3. Cần thêm biểu đồ nào?

Gợi ý trả lời

Thiếu calibration plot, decision curve, external validation và phân tích subgroup. AUROC tốt không đủ để triển khai lâm sàng.


Case 4: Forest plot không ghi mô hình hiệu chỉnh

Một forest plot trình bày adjusted OR nhưng không nói đã hiệu chỉnh biến nào.

Câu hỏi

  1. Vì sao nguy hiểm?
  2. Cần bổ sung gì trong legend?
  3. Có cần ghi rõ reference category không?

Gợi ý trả lời

Người đọc không biết OR là crude hay adjusted. Cần ghi mô hình đã hiệu chỉnh các biến nào, reference category, outcome và ý nghĩa OR >1.


PHẦN 12: PROMPT THƯ VIỆN CHO BÀI 13

Prompt 1: Chọn loại biểu đồ

Tôi có kết quả nghiên cứu sau:

Câu hỏi nghiên cứu:
[Dán câu hỏi]

Loại biến:
- Outcome:
- Predictor/group:
- Số nhóm:
- Có thời gian theo dõi không:
- Có phân phối lệch không:
- Mục tiêu: mô tả / so sánh / tương quan / dự đoán / sống còn

Hãy gợi ý:
1. Loại biểu đồ phù hợp nhất
2. Vì sao chọn biểu đồ đó
3. Biểu đồ thay thế nếu dữ liệu không đạt giả định
4. Những thông tin bắt buộc cần ghi trên hình
5. Figure legend mẫu

Prompt 2: Tạo publication-ready figure bằng Python

Tôi muốn tạo biểu đồ publication-ready từ dataset CSV.

Thông tin:
- File:
- Biến x:
- Biến y:
- Biến nhóm:
- Test thống kê đã dùng:
- Effect size:
- p-value:
- 95% CI:

Hãy viết code Python dùng matplotlib/seaborn để:
1. Load dữ liệu
2. Kiểm tra missing values trong các biến cần vẽ
3. Tạo biểu đồ phù hợp
4. Thêm cỡ mẫu mỗi nhóm
5. Thêm 95% CI/error bars nếu phù hợp
6. Thêm p-value annotation
7. Dùng bảng màu thân thiện với người mù màu
8. Xuất PNG 300 DPI và PDF
9. Viết figure legend
10. Comment code bằng tiếng Việt

Prompt 3: Tạo figure bằng R ggplot2

Tôi muốn tạo biểu đồ bằng R ggplot2.

Dataset:
[Dán mô tả dataset]

Mục tiêu biểu đồ:
[Mô tả]

Biến:
- x:
- y:
- group:
- facet nếu có:

Yêu cầu:
1. ggplot2 code đầy đủ
2. Theme sạch, phù hợp publication
3. Colorblind-friendly palette
4. Axis labels có đơn vị
5. Export bằng ggsave ở 300 DPI
6. Figure legend bằng tiếng Anh

Prompt 4: Kiểm tra biểu đồ có gây hiểu nhầm không

Dưới đây là mô tả biểu đồ của tôi:

Loại biểu đồ:
Dữ liệu:
Trục x:
Trục y:
Màu sắc:
Error bars:
p-value:
Caption:

Hãy đóng vai reviewer khó tính và đánh giá:
1. Biểu đồ có phù hợp với dữ liệu không?
2. Có thiếu cỡ mẫu, đơn vị hoặc uncertainty không?
3. Có nguy cơ gây hiểu nhầm không?
4. Caption đã đủ chưa?
5. Nên sửa gì trước khi đưa vào manuscript?

Prompt 5: Viết Results text từ biểu đồ

Dưới đây là thông tin biểu đồ:

Figure type:
Key result:
Group values:
Effect size:
95% CI:
p-value:
Statistical test:

Hãy viết đoạn Results 2–4 câu cho manuscript.

Yêu cầu:
- Khách quan, không bàn luận nguyên nhân
- Có nhắc Figure number
- Báo cáo effect size và 95% CI
- Không phóng đại
- Có bản tiếng Việt và tiếng Anh

PHẦN 13: LỖI THƯỜNG GẶP VÀ CÁCH SỬA

LỗiVí dụCách sửa
Chọn sai biểu đồPie chart cho 12 nhómDùng bar chart
Không ghi đơn vịHbA1c reduction không ghi %Thêm đơn vị vào trục
Không ghi cỡ mẫuHai nhóm không biết nGhi n trên label hoặc caption
Error bars không rõKhông biết SD hay CIGhi rõ trong legend
Dùng 3D chartCột 3D bóp méo dữ liệuDùng 2D
Màu khó đọcĐỏ/xanh láDùng colorblind-friendly palette
Font quá nhỏKhông đọc được trên slideTăng font, giảm chi tiết
Chỉ báo p-valueKhông có effect sizeThêm mean difference/OR/CI
Biểu đồ không khớp bảngSố liệu lệchKiểm tra code và dữ liệu
AI tự thêm dữ liệuCode tạo sample data rồi vẽChỉ dùng dữ liệu thật hoặc ghi rõ dữ liệu giả lập

PHẦN 14: BÀI TẬP VỀ NHÀ

Bài tập chính: Figure Package cho manuscript

Mỗi học viên dùng dataset của mình hoặc dataset mẫu để tạo một bộ hình khoa học.

Yêu cầu nộp

  1. Figure 1: Biểu đồ mô tả hoặc so sánh
    • Ví dụ: bar chart, box plot, histogram.
    • Có cỡ mẫu, đơn vị, caption.
  2. Figure 2: Biểu đồ phân tích chính
    • Ví dụ: outcome chính giữa hai nhóm, scatter plot, forest plot.
    • Có effect size/CI/p-value nếu phù hợp.
  3. Figure 3: Biểu đồ nâng cao
    • ROC curve, Kaplan–Meier curve, forest plot, CONSORT diagram hoặc dashboard screenshot.
  4. Figure legends
    • Mỗi hình có legend tiếng Anh hoặc tiếng Việt học thuật.
  5. Code hoặc mô tả workflow
    • Python/R code, hoặc screenshot workflow nếu dùng no-code tool.
  6. Reflection 150–200 từ
    • AI giúp gì?
    • AI gợi ý sai gì?
    • Bạn kiểm tra số liệu trong hình thế nào?
    • Biểu đồ nào bạn đã bỏ vì không phù hợp?

Mẫu bài nộp

Tên đề tài:
Hiệu quả của Treatment A so với Treatment B trong cải thiện HbA1c ở bệnh nhân đái tháo đường type 2.

Figure 1:
Box plot mô tả phân phối HbA1c_reduction theo nhóm điều trị.

Figure 2:
Bar chart với mean difference và 95% CI cho HbA1c_reduction.

Figure 3:
Forest plot trình bày adjusted OR cho khả năng đạt HbA1c <7%.

AI use:
ChatGPT được dùng để tạo code Python ban đầu và viết figure legend. Toàn bộ số liệu trong hình được đối chiếu với bảng phân tích từ SPSS.

PHẦN 15: RUBRIC CHẤM ĐIỂM

Tiêu chíĐiểm
Chọn biểu đồ phù hợp với dữ liệu và câu hỏi2
Hình rõ, dễ đọc, có nhãn trục và đơn vị1.5
Có cỡ mẫu, uncertainty, p-value/effect size khi phù hợp1.5
Figure legend đầy đủ1
Hình đạt chuẩn publication hoặc gần publication-ready1
Code/workflow có thể tái lập1
Biểu đồ nâng cao hoặc dashboard hợp lý1
Reflection về sử dụng AI có trách nhiệm1
Tổng10

PHẦN 16: CHECKLIST SAU BÀI HỌC

Checklist kiến thức

  • Biết chọn biểu đồ theo loại dữ liệu.
  • Biết khi nào dùng bar chart.
  • Biết khi nào dùng box plot.
  • Biết khi nào dùng scatter plot.
  • Biết ý nghĩa ROC curve.
  • Biết Kaplan–Meier dùng cho dữ liệu sống còn.
  • Biết forest plot dùng cho OR/HR/RR hoặc meta-analysis.
  • Biết figure legend cần những gì.

Checklist kỹ năng

  • Tạo được ít nhất 1 biểu đồ bằng Python/R.
  • Tạo được biểu đồ có error bars.
  • Thêm được p-value annotation.
  • Xuất được hình 300 DPI.
  • Tạo được caption/legend.
  • Biết dùng AI để sửa code.
  • Biết kiểm tra số liệu trong biểu đồ.
  • Biết dùng no-code tool nếu cần.

Checklist đạo đức và bảo mật

  • Không đưa dữ liệu định danh lên AI/no-code cloud.
  • Không để AI tạo dữ liệu giả cho nghiên cứu thật.
  • Không dùng hình gây hiểu nhầm.
  • Không chỉnh trục để phóng đại kết quả.
  • Không che giấu outliers nếu chúng quan trọng.
  • Có lưu code hoặc workflow.
  • Có khai báo AI nếu AI hỗ trợ đáng kể trong phân tích/hình ảnh.

PHẦN 17: THÔNG ĐIỆP KẾT THÚC

Bài 13 giúp học viên biến kết quả phân tích thành hình ảnh khoa học rõ ràng, chính xác và thuyết phục.

Hãy nhớ 8 câu:

1. Biểu đồ tốt bắt đầu từ câu hỏi tốt.

2. Đừng hỏi “biểu đồ nào đẹp”, hãy hỏi “biểu đồ nào giúp hiểu đúng kết quả”.

3. Clarity > complexity. Hình càng rối, reviewer càng cau mày.

4. Luôn ghi cỡ mẫu, đơn vị và uncertainty.

5. p-value không đủ; effect size và confidence interval mới làm biểu đồ có chiều sâu.

6. AI viết code rất nhanh, nhưng bạn phải kiểm tra từng con số.

7. Biểu đồ đẹp mà sai dữ liệu là tai nạn học thuật mặc áo thiết kế.

8. Một hình tốt có thể giúp người đọc hiểu trong 5 giây điều mà một bảng số cần 5 phút mới giải thích được.


Soạn giả: Jack Doan
Phiên bản: 1.0

Từ khoá