Biểu đồ Matplotlib sẽ đẹp hơn khi sử dụng thêm 4 thư viện trực quan hóa dữ liệu của Python
ngày 20-04-2023
Nâng cấp kỹ năng trực quan hóa dữ liệu với các thư viện bổ trợ thêm cho Matplotlib
Biểu đồ Line có tô màu chuyển sắc được tạo bởi CyberPunk theme trên nền Matplotlib.
Matplotlib
Matplotlib là một thư viện trực quan hóa dữ liệu Python được sử dụng rộng rãi trong khoa học dữ liệu. Matplotlib cung cấp nhiều loại biểu đồ khác nhau, đáp ứng hầu hết các nhu cầu trực quan hóa dữ liệu. Người dùng có thể tùy chỉnh các thành phần của biểu đồ như tiêu đề, trục biểu đồ, màu sắc, ghi chú, chú thích và hình dạng các yếu tố trong biểu đồ.
Tuy nhiên, hạn chế của Matplotlib là tạo ra những biểu đồ đôi khi đơn giản quá lại khó đẹp mắt và sử dụng rộng rãi.
Ví dụ về biểu đồ được vẽ bằng Matplotlib.
Do đó, trong bài viết này, chúng ta sẽ tìm hiểu 4 thư viện theme (giao diện) trên nền Matplotlib có thể dễ dàng biến các biểu đồ Matplotlib của bạn từ nhàm chán trở thành thú vị, hấp dẫn.
Việc sử dụng thư viện nào tùy thuộc vào mục đích sử dụng và đối tượng mục tiêu. Bạn nên cân nhắc để chọn thư viện phù hợp cho tình huống thực tế của mình.
Xây dựng dữ liệu mẫu
Các ví dụ trong bài viết này đều sử dụng tập dữ liệu dưới đây.
Bạn có thể xây dựng tập dữ liệu như sau:
mplcyberpunk
Cyberpunk Style là một trong những phong cách thiết kế đặc trưng của thập niên 1980 và 1990, được lấy cảm hứng từ khoa học viễn tưởng, thể hiện sự kết hợp giữa công nghệ, tương lai và thế giới tội phạm. Trong Cyberpunk Style, màu sắc tươi sáng, sắc nét, màu neon thường được sử dụng để tạo ra các hiệu ứng ánh sáng rực rỡ.
Một con đường nhộn nhịp của thành phố tương lai theo chủ đề khoa học viễn tưởng, có những địa điểm có rất nhiều người bán hàng rong. Các cửa hàng và khu vực được bao quanh bởi ánh đèn neon rực rỡ. Trời mưa và tối (Hình ảnh được tạo bởi Andy McDonald sử dụng Midjourney)
Khi tạo các biểu đồ cho poster hoặc infographic, bạn có thể thêm Colormap để thu hút người đọc. CyberPunk theme sẽ giúp cho biểu đồ của bạn độc đáo hơn rất nhiều.
Biểu đồ Matplotlib theo CyberPunk theme.
Cài đặt:
Import thư viện:
Để sử dụng CyberPunk theme, bạn gọi lệnh plt.style.use() và truyền tham số cyberpunk.
Bạn gọi hàm make_scatter_glow() để tạo các điểm phát sáng. Bạn phải gọi lệnh này cho mỗi biểu đồ scatter mà bạn muốn tạo các điểm phát sáng.
Khi chạy đoạn code trên, chúng ta nhận được biểu đồ sau:
Biểu đồ scatter sử dụng CyberPunk theme.
Bạn cũng có thể sử dụng CyberPunk theme cho các biểu đồ Line. Để tạo các line phát sáng, bạn dùng lệnh mplcyberpunk.make_lines_glow()
Kết quả bạn nhận được biểu đồ với các lines giống như đèn neon.
Biểu đồ Matplotlib sử dụng CyberPunk theme.
Bạn có thể thực hiện biểu đồ trên bao gồm một dải màu giữa các line và đường y = 0 như sau:
Điều này tạo ra một hiệu ứng rất thú vị như sau:
Biểu đồ Matplotlib sử dụng glowing gradient filled bằng CyberPunk theme.
Bạn có thể khám phá thêm một số tùy chọn khác cho thư viện CypberPunk tại đây.
Matplotx
Thư viện matplotx giúp bạn dễ dàng để cách điệu các matplotlib figures. Thư viện chứa một số theme có thể truy cập và sử dụng cho bất kỳ biểu đồ matplotlib nào.
Khi làm việc với các biểu đồ trên Jupyter Notebooks hoặc VSCode với dark-themed, các figures với giao diện sáng có thể gây chói mắt.
Để giảm tác động này, chúng ta có thể tạo các figures có giao diện tối. Matplotx làm cho quá trình này dễ dàng hơn nhiều. Với nhiều giao diện khác nhau được tích hợp sẵn, bạn có thể lựa chọn và sử dụng giao diện phù hợp với giao diện của Jupyter Notebooks hoặc VSCode của mình.
Matplotx được cài đặt bằng lệnh sau:
Bạn sử dụng câu lệnh with để gọi plt.style.context và truyền vào matplotx.styles. Tại đây, chúng ta có thể chọn một trong nhiều giao diện có sẵn.
Trong ví dụ này sử dụng giao diện Dracula rất phổ biến
Khi chạy ta nhận kết quả như sau:
Biểu đồ scatter sử dụng giao diện dracula.
Có nhiều styles khác nhau trong matplotx:
Một số styles có sẵn từ matplotx. (Hình ảnh từ matplotx GitHub repository)
Hãy xem biểu đồ line với giao diện Pitaya Smoothie.
Vì có nhiều giao diện phụ cho Pitaya Smoothie nên chúng ta cần truy xuất chúng bằng cách sử dụng cặp dấu ngoặc vuông. Trong ví dụ này, chúng ta sử dụng giao diện “dark”.
Khi chạy đoạn code trên, chúng tôi sẽ nhận được biểu đồ line như sau:
Biểu đồ line sử dụng giao diện Pitaya Smoothie dark từ matplotx
Ngoài ra còn có nhiều giao diện “light”. Ví dụ: Pitaya Smoothie light được truy xuất như sau:
QuantumBlack Labs là một công ty cung cấp dịch vụ phân tích dữ liệu và tư vấn cho các doanh nghiệp. Họ sử dụng máy học và trí tuệ nhân tạo để phân tích các tập dữ liệu phức tạp trong nhiều ngành như chăm sóc sức khỏe, tài chính và vận tải.
Thư viện Quantum Black Styles được viết bởi QuantumBlack Labs.
Thư viện này cung cấp nhiều tùy chọn cho theme style, bao gồm màu sắc, font chữ và cấu trúc của các figures. Nó cũng có thể tùy chỉnh để phù hợp với nhu cầu cụ thể của dự án, giúp người dùng trực quan hóa dữ liệu và tạo ra các báo cáo phân tích dữ liệu chất lượng cao.
Ví dụ về việc sử dụng thư viện Quantum Black Labs style cho các matplotlib figures. (Hình ảnh được tạo bởi Quantum Black Labs)
Để sử dụng, bạn có thể cài đặt như sau:
Import thư viện:
Nếu muốn sử dụng dark theme, bạn gọi lệnh sau:
Hoặc, nếu bạn muốn sử dụng light theme:
Sau đó, bạn có thể tạo biểu đồ scatter như sau:
Bạn sẽ nhận được 1 trong 2 biểu đồ sau, tùy thuộc vào việc bạn đã chọn light theme hay dark theme.
Biểu đồ scatter sử dụng Quantum Black Labs
Dark theme trên biểu đồ line:
Kết quả nhận được:
Biểu đồ Line với Quantum Labs Dark theme. Hình ảnh của Andy McDonald.
Khi viết các bài báo khoa học hoặc hội nghị, việc tạo ra các figures rõ ràng, đơn giản và dễ hiểu, tránh các biểu đồ cách điệu là điều cần thiết.
Thư viện SciencePlots giúp bạn tạo biểu đồ sử dụng các styles khoa học phổ biến.
Một điều tuyệt vời với thư viện này là nó làm cho các figures phù hợp để in ra trắng đen — đây vẫn là một thông lệ phổ biến của các nhà nghiên cứu. Với thư viện này, các line có thể dễ dàng phân biệt với nhau bằng cách thay đổi line style hoặc các điểm có hình dạng khác nhau trên biểu đồ scatter cho dữ liệu phân loại.
Để sử dụng thư viện SciencePlots, bạn phải cài đặt LaTeX trên máy tính. Tham khảo thêm cách cài đặt LaTex tại đây.
Cài đặt SciencePlots:
Nếu chạy trên Google Colab, bạn có thể cài đặt LaTeX bằng đoạn code sau:
Bạn có thể tạo biểu đồ khoa học đầu tiên của mình bằng lệnh sau:
Chúng ta nhận được biểu đồ sau, các line được phân biệt với nhau thật đơn giản và dễ dàng.
SciencePlots theme được sử dụng cho biểu đồ line, mang lại khả năng hiển thị cao và phù hợp để đưa vào các tạp chí khoa học.
Chúng ta có thể tạo biểu đồ với IEEE style như sau:
Nó hơi khác so với biểu đồ ở trên và màu sắc đã thay đổi, nhưng vẫn là một biểu đồ tạp chí khoa học rất đẹp mắt.
Biểu đồ line được tạo bởi SciencePlots theme với IEEE style.
Với những kiến thức lập trình Python đã được trang bị trong khóa học Data Manipulation and Visualization with Python trên Matplotlib, các bạn hoàn toàn có khả năng sử dụng thêm các thư viện trên đây để tạo được các biểu đồ đẹp hơn, thú vị hơn.
Chúc các bạn vẽ được nhiều biểu đồ hay - đẹp mắt cho các tình huống thực tế của mình.
(Bài viết mở rộng dựa trên chia sẻ của Andy McDonald trên towardsdatascience.)