1. Giới thiệu
Trong bài hướng dẫn này, chúng ta sẽ tìm hiểu cách tùy chỉnh đồ họa và tạo bảng điều khiển trong Python sử dụng các thư viện Matplotlib, Seaborn và Plotly.
2. Cài đặt các thư viện
Đầu tiên, chúng ta cần cài đặt các thư viện cần thiết. Chạy các lệnh sau trong môi trường Python của bạn:
!pip install matplotlib
!pip install seaborn
!pip install plotly
3. Sử dụng thư viện Matplotlib để vẽ biểu đồ
Matplotlib là một thư viện đồ họa phổ biến trong Python. Bắt đầu bằng cách nhập khẩu thư viện và tạo một biểu đồ đơn giản:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title("Biểu đồ hàm sin")
plt.xlabel("Trục x")
plt.ylabel("Trục y")
plt.show()
3.1 Tùy chỉnh biểu đồ với Matplotlib
Để tùy chỉnh biểu đồ, bạn có thể sử dụng các hàm như title, xlabel, ylabel và legend. Hãy thêm một hàm cosin và tùy chỉnh biểu đồ:
y2 = np.cos(x)
plt.plot(x, y, label="sin(x)")
plt.plot(x, y2, label="cos(x)")
plt.title("Biểu đồ hàm sin và cos")
plt.xlabel("Trục x")
plt.ylabel("Trục y")
plt.legend()
plt.show()
4. Sử dụng thư viện Seaborn để vẽ biểu đồ
Seaborn là một thư viện đồ họa được xây dựng dựa trên Matplotlib, giúp tạo ra các biểu đồ đẹp mắt và phức tạp hơn. Bắt đầu bằng cách nhập khẩu thư viện và tạo một biểu đồ phân tán:
import seaborn as sns
# Tạo dữ liệu giả
tips = sns.load_dataset("tips")
# Tạo biểu đồ phân tán
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="time")
plt.title("Biểu đồ phân tán giữa tổng hóa đơn và tiền tip")
plt.xlabel("Tổng hóa đơn")
plt.ylabel("Tiền tip")
plt.show()
5. Sử dụng thư viện Plotly để vẽ biểu đồ tương tác
Plotly là một thư viện đồ họa tương tác trong Python. Để tạo biểu đồ với Plotly, bạn cần nhập thư viện và tạo dữ liệu cho biểu đồ:
import plotly.express as px
# Tạo biểu đồ cột
fig = px.bar(tips, x="day", y="total_bill", color="sex", barmode="group")
fig.show()
5.1 Tùy chỉnh biểu đồ với Plotly
Bạn có thể tùy chỉnh biểu đồ Plotly bằng cách thay đổi các thuộc tính của đối tượng fig:
fig.update_layout(
title="Tổng hóa đơn theo giới tính và ngày",
xaxis_title="Ngày",
yaxis_title="Tổng hóa đơn",
legend_title="Giới tính"
)
fig.show()
6. Tạo bảng điều khiển đơn giản sử dụng ipywidgets
Bảng điều khiển cho phép bạn kết hợp nhiều biểu đồ vào một giao diện duy nhất. Để tạo một bảng điều khiển đơn giản, bạn có thể sử dụng thư viện ipywidgets:
!pip install ipywidgets
Sau đó, nhập thư viện và tạo một bảng điều khiển đơn giản:
import ipywidgets as widgets
from IPython.display import display
# Tạo các biểu đồ
fig1 = px.bar(tips, x="day", y="total_bill", color="sex", barmode="group")
fig2 = px.scatter(tips, x="total_bill", y="tip", color="time", symbol="time")
# Tạo bảng điều khiển
tab1 = widgets.Output()
tab2 = widgets.Output()
with tab1:
display(fig1)
with tab2:
display(fig2)
tab = widgets.Tab(children=[tab1, tab2])
tab.set_title(0, "Biểu đồ cột")
tab.set_title(1, "Biểu đồ phân tán")
display(tab)
Với đoạn mã trên, chúng ta đã tạo một bảng điều khiển với hai tab chứa hai biểu đồ khác nhau: biểu đồ cột và biểu đồ phân tán. Bạn có thể thêm nhiều biểu đồ khác vào bảng điều khiển bằng cách tạo thêm các tab và đưa biểu đồ vào các tab đó.
7. Tạo bảng điều khiển với thư viện Dash
Dash là một thư viện mạnh mẽ giúp bạn tạo các ứng dụng trực quan và tương tác dễ dàng trong Python. Trong phần này, chúng ta sẽ tìm hiểu cách tạo một bảng điều khiển đơn giản với Dash.
Đầu tiên, cài đặt thư viện Dash và các thành phần bổ sung bằng các lệnh sau:
!pip install dash
!pip install dash-bootstrap-components
Ví dụ dưới đây sẽ hướng dẫn bạn tạo một bảng điều khiển Dash với khả năng tìm kiếm và lọc dữ liệu. Chúng ta sẽ sử dụng tập dữ liệu tips từ Seaborn và tạo một bảng điều khiển để lọc dữ liệu theo giới tính và ngày.
Bước 1: Tạo ứng dụng Dash và nhập dữ liệu
import dash
import dash_core_components as dcc
import dash_html_components as html
import dash_bootstrap_components as dbc
import plotly.express as px
import pandas as pd
import seaborn as sns
# Tạo ứng dụng Dash
app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
# Tải dữ liệu
tips = sns.load_dataset("tips")
Bước 2: Tạo biểu đồ ban đầu
# Tạo biểu đồ ban đầu
fig = px.scatter(tips, x="total_bill", y="tip", color="sex", symbol="day", title="Biểu đồ phân tán giữa tổng hóa đơn và tiền tip")
Bước 3: Tạo giao diện
Chúng ta sẽ tạo một giao diện với hai thanh trượt (Dropdown) để lọc dữ liệu theo giới tính và ngày.
app.layout = dbc.Container([
dbc.Row([
dbc.Col([
html.Label("Chọn giới tính:"),
dcc.Dropdown(
id="gender_filter",
options=[{"label": gender, "value": gender} for gender in tips["sex"].unique()],
value=tips["sex"].unique().tolist(),
multi=True
)
], width=4),
dbc.Col([
html.Label("Chọn ngày:"),
dcc.Dropdown(
id="day_filter",
options=[{"label": day, "value": day} for day in tips["day"].unique()],
value=tips["day"].unique().tolist(),
multi=True
)
], width=4)
]),
dbc.Row([
dbc.Col([
dcc.Graph(id="scatter_plot", figure=fig)
])
])
], fluid=True)
Bước 4: Thêm tính năng tìm kiếm và lọc dữ liệu
@app.callback(
dash.dependencies.Output("scatter_plot", "figure"),
[
dash.dependencies.Input("gender_filter", "value"),
dash.dependencies.Input("day_filter", "value")
]
)
def update_scatter_plot(selected_genders, selected_days):
# Lọc dữ liệu
filtered_data = tips[(tips["sex"].isin(selected_genders)) & (tips["day"].isin(selected_days))]
# Tạo biểu đồ mới
filtered_fig = px.scatter(filtered_data, x="total_bill", y="tip", color="sex", symbol="day", title="Biểu đồ phân tán giữa tổng hóa đơn và tiền tip")
return filtered_fig
Bước 5: Chạy ứng dụng
Cuối cùng, chúng ta chạy ứng dụng Dash bằng cách thêm đoạn mã sau vào cuối tệp:
if __name__ == '__main__':
app.run_server(debug=True)
Khi bạn chạy ứng dụng, một cửa sổ trình duyệt sẽ mở và hiển thị ứng dụng của bạn. Bạn cũng có thể truy cập ứng dụng thông qua địa chỉ http://127.0.0.1:8050/ trong trình duyệt của mình.
Kết luận
Trong bài hướng dẫn ngắn này, chúng ta đã tìm hiểu cách tùy chỉnh đồ họa và tạo bảng điều khiển trong Python sử dụng các thư viện Matplotlib, Seaborn và Plotly. Bạn có thể áp dụng những kiến thức này vào các dự án thực tế của mình để tạo ra các biểu đồ trực quan hấp dẫn và bảng điều khiển tiện lợi.
Để tìm hiểu sâu hơn về từng thư viện và các chức năng của chúng, bạn có thể tham khảo tài liệu chính thức của Matplotlib, Seaborn và Plotly:
– Matplotlib: https://matplotlib.org/stable/contents.html
– Seaborn: https://seaborn.pydata.org/introduction.html
– Plotly: https://plotly.com/python/plotly-express/
– Để tìm hiểu thêm về các tính năng của Dash, bạn có thể tham khảo tài liệu chính thức tại đây: https://dash.plotly.com/
Ngoài ra, hãy thử kết hợp các thư viện này với các công cụ khác như Pandas để xử lý dữ liệu và Jupyter Notebook để tạo ra các báo cáo động và trực quan. Chúc bạn thành công trong việc tìm hiểu và áp dụng các kỹ năng này!
Xem các phần tiếp theo của cũng hoá học này tại Trực quan hóa dữ liệu với Python
Tiếp Tục
Python Pandas là một công cụ mạnh mẽ giúp bạn thao tác và phân tích dữ liệu một cách hiệu quả. Khóa học này sẽ giúp bạn nắm vững kiến thức cơ bản về Pandas để phát triển sự nghiệp trong lĩnh vực khoa học dữ liệu.
Tiếp tục hành trình với phân tích dữ liệu trong khoa học dữ liệu với Python Pandas: Python Pandas – Khoá học thao tác và phân tích dữ liệu

