Biểu diễn dữ liệu trực quan
Cập nhật lần cuối:
Thảo luậnGiới thiệu
Sử dụng đơn giản
Notebook minh hoạ
Bạn có thể truy cập ngay Notebook minh hoạ tính năng tại đây.
Truy cập tính năng
Từ DataFrame, Series trả về bởi Vnstock3, bạn có thể truy cập lớp (class) hàm biểu diễn dữ liệu dưới dạng thuộc tính .viz.gọi_tên_hàm()
. Ví dụ, cú pháp vẽ đồ thị timeseries
cho cột close
trong DataFrame có tên df
như sau:
df.viz.timeseries()
Kết quả trả về như hình bên dưới. Bạn có thể tinh chỉnh biểu đồ với các tham số được cung cấp để nhanh chóng tạo ra biểu đồ vừa đơn giản nhưng cũng đầy chuyên nghiệp để có thể chia sẻ dễ dàng.:
Xem trợ giúp nhanh chóng
Gợi ý
Hướng dẫn hàm timeseries
```shell
Biểu diễn dữ liệu theo thời gian (timeseries). Dữ liệu cần có cột index là kiểu dữ liệu datetime.
Tham số:
- data (pd.DataFrame hoặc pd.Series): Dữ liệu đầu vào dạng DataFrame hoặc Series.
- title (str): Tiêu đề của biểu đồ.
- title_fontsize (int): Cỡ chữ cho tiêu đề.
- xlabel (str): Nhãn cho trục X.
- ylabel (str): Nhãn cho trục Y.
- color_palette (str): Tên của bảng màu đã được định trước hoặc danh sách các màu tùy chỉnh. Mặc định là 'vnstock'. Các bảng màu có sẵn: 'percentage', 'amount', 'category', 'trend', 'flatui', 'vnstock', 'learn_anything'. Có thể liệt kê tất cả bảng màu với Utils.brand_palettes.keys().
- palette_shuffle (bool): Xáo trộn thứ tự màu sắc trong bảng màu, cho phép chọn màu ngẫu nhiên trong bảng màu để biểu diễn cho đến khi bạn ưng ý. Mặc định là False.
- grid (bool): Hiển thị lưới. Nhận True để hiện thị hoặc False để ẩn lưới.
- data_labels (bool): Hiển thị nhãn dữ liệu trên biểu đồ.
- data_label_format (str): Định dạng cho nhãn dữ liệu. Nhận các giá trị rút gọn như 1K, 1M, 1B, 1T tương ứng với 1 ngàn, 1 triệu, 1 tỷ, 1 nghìn tỷ.
- label_fontsize (int): Cỡ chữ cho nhãn trục X và Y.
- legend_title (str): Tiêu đề cho chú giải.
- show_legend (bool): Hiển thị chú giải. Nhận True để hiển thị hoặc False để ẩn chú giải.
- series_names (list): Danh sách tên cho các dải (series) dữ liệu trong biểu đồ. Nhận giá trị là 1 danh sách (list).
- font_name (str): Tên của font chữ muốn áp dụng.
- figsize (tuple): Kích thước của biểu đồ, ví dụ (10, 6).
- show_xaxis (bool): Hiển thị trục X. Nhận True để hiển thị hoặc False để ẩn trục X.
- show_yaxis (bool): Hiển thị trục Y. Nhận True để hiển thị hoặc False để ẩn trục Y.
- tick_labelsize (int): Cỡ chữ cho các nhãn trục.
- xtick_format (str): Định dạng cho nhãn trục X. Ví dụ định dạng số thập phân '{:.0f}'.
- ytick_format (str): Định dạng cho nhãn trục Y. Ví dụ định dạng phần trăm '{:.0%}'.
- tick_rotation (int): Góc quay cho các nhãn trục.
- xlim (tuple): Giới hạn cho trục X, ví dụ (0, 100).
- ylim (tuple): Giới hạn cho trục Y, ví dụ (0, 100).
- background_color (str): Màu nền cho biểu đồ.
- bar_edge_color (str): Màu viền cho các cột (bar) trong biểu đồ.
```
Biểu diễn xu hướng
Timeseries
df['close'].viz.timeseries(figsize=(10, 6), title='Giá đóng cửa - Hợp đồng tương lai VN30F1M', ylabel='Giá', xlabel='Thời gian', color_palette='vnstock', palette_shuffle=True)
Trong đó là df
là DataFrame dữ liệu mẫu giá cổ phiếu được gọi từ mục Thống kê giá lịch sử.
Combo chart
df.viz.combo(bar_data='volume', line_data='close', title='Giá đóng cửa và khối lượng giao dịch - Hợp đồng tương lai VN30F1M', left_ylabel='Volume (M)', right_ylabel='Price (K)', figsize=(10, 6), color_palette='stock', palette_shuffle=True)
Biểu diễn số lượng
Barplot
income_df[['LN trước thuế', 'Lợi nhuận thuần']].div(1000_000_000)\ .viz.bar(figsize=(10, 6), title='VCI - Lợi nhuận trước thuế & lợi nhuận thuần (tỷ đồng)', ylabel='Lợi nhuận (tỷ đồng)', xlabel='Năm', color_palette='stock', data_labels=True, # Hiển thị giá trị trên cột show_legend=True, rot=45) # Xoay nhãn trục x 45 độ
Heatmap
import pandas as pd return_pivot = pd.pivot_table(df, index=df.index.year, columns=df.index.month, values='returns', aggfunc='mean') cmap = df.viz.create_cmap('percentage') # Tạo colormap bằng 1 bảng màu có trong vnstock_ezchart return_pivot.viz.heatmap(figsize=(10, 6), title='VN30F1M - Thống kê lợi nhuận trung bình theo ngày qua các tháng trong năm (%)', annot=True, cmap=cmap)
Table
Trong nhiều trường hợp, bạn cần trình bày dữ liệu chi tiết dứoi dạng bảng bằng để có thể tiện copy và chia sẻ hoặc chèn hình ảnh thương hiệu cá nhân, loại biểu diễn dữ liệu này dành cho bạn.
df.reset_index().iloc[:10, :5]\ .viz.table(figsize=(10, 10), title='10 dòng đầu tiên của dữ liệu', title_loc='center')
Biểu diễn phân phối
Histogram
df['returns'].viz.hist(bins=20, figsize=(10, 6), title='VN30F1M - Phân phối lợi nhuận ngày (%)', xlabel='Lợi nhuận (%)', ylabel='Tần suất', color_palette='stock')
Boxplot
# Mở help cho biểu đồ boxplot để xem tất cả các tuỳ chọn df.volume.div(1000_000)\ .viz.boxplot( title='Phân phối khối lượng giao dịch của VN30F1M', xlabel='', ylabel='KLGD (Triệu CP)', color_palette='stock', palette_shuffle=True, figsize=(10, 6))
Word Cloud
profile_df.viz.wordcloud(figsize=(10, 6), title='VCB - Mô tả công ty', max_words=50, color_palette='stock')
Biểu diễn tỉ lệ
Pie
shareholders_df.viz.pie(title='Cổ đông lớn VNM', labels='share_holder', values='share_own_percent', figsize=(10, 6), ylabel='', color_palette='stock')
Treemap
shareholders_df.viz.treemap(title='Cổ đông lớn VNM', labels='share_holder', values='share_own_percent', figsize=(10, 6), color_palette='stock')
Biểu diễn tương quan
Scatter plot
df.viz.scatter(x='close', y='volume', title='VN30F1M - Tương quan giá đóng cửa và khối lượng giao dịch', xlabel='Giá đóng cửa', ylabel='Khối lượng giao dịch', figsize=(10, 6), color_palette='stock')
Pairplot
df.viz.pairplot()
Thảo luận