- vừa được xem lúc

Tips vẽ biểu đồ đẹp bằng Python: Tạo Hiệu Ứng Vizual Hấp Dẫn

0 0 4

Người đăng: Pham Thi Hong Anh

Theo Viblo Asia

Việc sử dụng Python để vẽ biểu đồ không chỉ là hiệu quả mà còn là một cách thú vị để trình bày dữ liệu. Với python chúng ta có thể custom chart theo như mình mong muốn. Trong bài viết này, chúng ta sẽ khám phá một số tips hữu ích để tạo ra những biểu đồ đẹp và ấn tượng bằng Python.

Chọn thư viện phù hợp

Python cung cấp nhiều thư viện hữu ích cho việc vẽ biểu đồ, như Matplotlib, Seaborn, Plotly. Tùy thuộc vào nhu cầu và kiểu dữ liệu, bạn có thể chọn thư viện phù hợp để tối ưu hóa quá trình vẽ biểu đồ. Mình thường hay dùng Seaborn và matplotlib để vẽ, nếu bạn muốn vẽ biểu đồ động thì dùng thêm Plotly nè.

import thư viện trước khi vẽ

import matplotlib.pyplot as plt
import seaborn as sns

Lựa chọn kiểu chart

Có nhiều loại đồ thị khác nhau như line chart, bar chart, pie chart. Chọn loại đồ thị phù hợp với dữ liệu và thông điệp bạn muốn truyền đạt. Việc lựa chọn đồ thị cũng giúp cho bạn có biểu đồ đẹp và người xem có thể dễ dàng hiểu ý của bạn hơn.

# Ví dụ: Line chart
plt.plot(x, y, label='Dữ liệu 1', marker='o')
plt.xlabel('Trục X')
plt.ylabel('Trục Y')
plt.title('Biểu Đồ Line Chart')
plt.legend()
plt.show()

đoạn code này làm cho việc vẽ và hiển thị biểu đồ đường trở nên dễ dàng và tự nhiên trong Python, giúp hiểu rõ hơn về xu hướng hoặc mối quan hệ giữa các điểm dữ liệu trên trục x và trục y.

Sử dụng chú thích và nhãn để giải thích ý nghĩa của các thành phần trong biểu đồ. Điều này giúp người đọc hiểu rõ thông điệp mà bạn muốn truyền đạt.

# Ví dụ: Chú thích
plt.annotate('Điểm đặc biệt', xy=(x_special, y_special), xytext=(x_text, y_text), arrowprops=dict(facecolor='black', shrink=0.05))

Dòng mã này sử dụng hàm annotate từ thư viện Matplotlib thường được sử dụng để nhấn mạnh hoặc giải thích điểm đặc biệt trên biểu đồ, làm cho biểu đồ trở nên dễ hiểu hơn đối với người đọc. Mũi tên được thêm vào giúp chỉ ra vị trí của điểm đặc biệt.

Lựa chọn bảng màu

Seaborn cung cấp nhiều bảng màu mặc định, như "deep", "muted", "pastel",... bạn có thể sử dụng. Chọn bảng màu phù hợp với nội dung để tạo điểm nhấn và làm cho biểu đồ trở nên sinh động hơn.

# Chọn bảng màu "pastel"
sns.set_palette("pastel")

Tùy Chỉnh Style

Lựa chọn style của biểu đồ cũng đóng vai trò quan trọng. Bạn có thể chọn giữa "whitegrid", "darkgrid", "white", "dark", và "ticks" để tạo ra không gian trắng, ô lưới, hoặc các biểu đồ với đường tick đậm.

sns.set_style("whitegrid") 

Sử Dụng FacetGrid Cho Biểu Đồ Phức Tạp

FacetGrid giúp bạn tạo biểu đồ với nhiều ô (facet), rất hữu ích khi dùng để so sánh các phân khúc dữ liệu khác nhau.

g = sns.FacetGrid(data, col="category", hue="category", col_wrap=4)
g.map(plt.scatter, "x", "y") 

Sử Dụng Palettes Màu Động

Palettes màu động như sns.light_palette() hoặc sns.dark_palette() có thể làm cho biểu đồ của mình trở nên sinh động hơn.

colors = sns.light_palette("blue", as_cmap=True)
sns.scatterplot(x="x", y="y", hue="category", data=data, palette=colors)

Sử Dụng subplot Để Hiển Thị Nhiều Biểu Đồ

Chuẩn bi dữ liệu

import matplotlib.pyplot as plt
import numpy as np # Dữ liệu mẫu
categories = ['A', 'B', 'C', 'D']
data1 = np.array([30, 20, 25, 15])
data2 = np.array([10, 25, 15, 30]) 

Sử dụng subplot để chia cửa sổ vẽ thành nhiều khu vực và hiển thị từng biểu đồ một cách rõ ràng.

# Biểu đồ 1
plt.subplot(1, 2, 1)
plt.bar(categories, data1, color='skyblue')
plt.title('Biểu Đồ 1') # Biểu đồ 2
plt.subplot(1, 2, 2)
plt.bar(categories, data2, color='salmon')
plt.title('Biểu Đồ 2') plt.tight_layout() # Đảm bảo không bị trùng lắp
plt.show()

Code này giúp so sánh giữa hai tập dữ liệu (data1 và data2) một cách trực quan và dễ nhìn. Cách này thường được sử dụng khi muốn so sánh hai trường dữ liệu cùng một lúc, giúp nhìn ra sự khác biệt và xu hướng.

Sử Dụng Explode Trong Pie Chart

Sử dụng explode trong Python là một cách sáng tạo để làm nổi bật những thông tin quan trọng trong biểu đồ của bạn.

Chuẩn bị dữ liệu

labels = ['Điện Thoại', 'Laptop', 'Tablet', 'Đồ Gia Dụng']
sizes = [40, 30, 15, 15]
explode = (0.1, 0, 0, 0) # chỉ nổi bật phần Điện Thoại plt.pie(sizes, labels=labels, autopct='%1.1f%%', explode=explode, shadow=True, startangle=140)
plt.title('Phân Phối Thị Trường Các Sản Phẩm')
plt.axis('equal') # Đảm bảo biểu đồ hình tròn
plt.show() 

Mã nguồn trên sử dụng thư viện Matplotlib để vẽ biểu đồ tròn (pie chart) để thể hiện phân phối thị trường của các sản phẩm khác nhau. Biểu đồ tròn thường được sử dụng để thể hiện phần trăm phân phối hoặc tỷ lệ giữa các phần trong một tập dữ liệu. Trong trường hợp này, nó giúp hiểu rõ hơn về phân phối thị trường của các sản phẩm khác nhau.

Như bạn thấy ở hình trên mình đã làm nổi bật phần Điện thoại lên, nhìn trông bắt mắt hơn đúng không nào 😄

Sử Dụng twins

Sử dụng twins trong Python là một cách tuyệt vời để hiển thị nhiều biểu đồ trên cùng một hình và tận dụng sức mạnh của thư viện Matplotlib

Dữ liệu mẫu

categories = ['A', 'B', 'C', 'D']
data1 = np.array([30, 20, 25, 15])
data2 = np.array([10, 25, 15, 30])
# Tạo figure và trục kép
fig, ax1 = plt.subplots() # Biểu đồ 1
ax1.bar(categories, data1, color='skyblue')
ax1.set_ylabel('Biểu Đồ 1', color='skyblue') # Tạo trục thứ hai
ax2 = ax1.twinx() # Biểu đồ 2
ax2.plot(categories, data2, marker='o', color='salmon')
ax2.set_ylabel('Biểu Đồ 2', color='salmon') # Tùy chỉnh hiệu ứng và kiểu đường
ax1.grid(False)
ax2.grid(False)
ax1.set_facecolor('#f0f0f0')
ax2.set_facecolor('#f0f0f0')
ax1.yaxis.label.set_color('gray')
ax2.yaxis.label.set_color('gray') # Thiết lập các thuộc tính chung
ax1.set_xlabel('Thể Loại')
plt.title('Biểu Đồ Sử Dụng Twins') plt.show()

Mã nguồn trên sử dụng thư viện Matplotlib để vẽ hai biểu đồ trên cùng một hình sử dụng tính năng twins để có hai trục y riêng biệt. Cách sử dụng twins giúp hiển thị hai biểu đồ trên cùng một hình mà không làm mất thông tin và giúp so sánh giữa chúng một cách hiệu quả.

Ở đây mình kết hợp để vẽ 2 biểu đồ Cột và Line mục đích giúp báo cáo dễ nhìn hơn

Kết Luận

Python cung cấp cho chúng ta những công cụ mạnh mẽ để tạo ra những biểu đồ đẹp và dễ hiểu. Bằng cách sử dụng các thư viện và áp dụng những tips trên, bạn có thể biến dữ liệu thành báo cáo dễ hiểu và bắt mắt

Reference

https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.pie.html

https://seaborn.pydata.org/tutorial/introduction.html

Bình luận

Bài viết tương tự

- vừa được xem lúc

Thao tác với File trong Python

Python cung cấp các chức năng cơ bản và phương thức cần thiết để thao tác các file. Bài viết này tôi xin giới thiệu những thao tác cơ bản nhất với file trong Python.

0 0 49

- vừa được xem lúc

Tập tành crawl dữ liệu với Scrapy Framework

Lời mở đầu. Chào mọi người, mấy hôm nay mình có tìm hiểu được 1 chút về Scrapy nên muốn viết vài dòng để xem mình đã học được những gì và làm 1 demo nho nhỏ.

0 0 150

- vừa được xem lúc

Sử dụng Misoca API (oauth2) với Python

Với bài viết này giúp chúng ta có thể nắm được. ・Tìm hiểu cách xử lý API misoca bằng Python.

0 0 36

- vừa được xem lúc

[Series Pandas DataFrame] Phân tích dữ liệu cùng Pandas (Phần 3)

Tiếp tục phần 2 của series Pandas DataFrame nào. Let's go!!. Ở phần trước, các bạn đã biết được cách lấy dữ liệu một row hoặc column trong Pandas DataFame rồi phải không nào. 6 Hoc.

0 0 46

- vừa được xem lúc

Lập trình socket bằng Python

Socket là gì. Một chức năng khác của socket là giúp các tầng TCP hoặc TCP Layer định danh ứng dụng mà dữ liệu sẽ được gửi tới thông qua sự ràng buộc với một cổng port (thể hiện là một con số cụ thể), từ đó tiến hành kết nối giữa client và server.

0 0 57

- vừa được xem lúc

[Series Pandas DataFrame] Phân tích dữ liệu cùng Pandas (Phần 2)

Nào, chúng ta cùng đến với phần 2 của series Pandas DataFrame. Truy xuất Labels và Data. Bạn đã biết cách khởi tạo 1 DataFrame của mình, và giờ bạn có thể truy xuất thông tin từ đó. Với Pandas, bạn có thể thực hiện các thao tác sau:.

0 0 77