# Giới thiệu
> `vnstock_ezchart` ra đời với một sứ mệnh đơn giản nhưng đầy ý nghĩa: Làm cho việc phân tích dữ liệu trở nên dễ dàng và tiện lợi hơn bao giờ hết đặc biệt là lĩnh vực tài chính/chứng khoán. `vnstock_ezchart` được phát triển như một công cụ bổ trợ cho gói dữ liệu vnstock, nhằm mục đích cung cấp cho cộng đồng một giải pháp toàn diện để biểu diễn và phân tích dữ liệu tài chính một cách dễ dàng, mà không yêu cầu người dùng phải am hiểu sâu về lập trình. Dữ liệu đầu vào của các hàm trong `vnstock_ezchart` nhận kiểu dữ liệu Python phổ biến như List, DataFrame, Series, Numpy array.
Chúng tôi hiểu rằng, để đưa ra những quyết định đầu tư hay nghiên cứu học thuật, việc trực quan hóa dữ liệu là không thể thiếu. Với `vnstock_ezchart` bạn có thể đáp ứng 80% nhu cầu biểu diễn dữ liệu hàng ngày của mình chỉ bằng cách thay đổi các tham số đầu vào của hàm để tùy biến hay đơn giản chỉ cần nạp dữ liệu để xem trước, sau đó quyết định tinh chỉnh để tạo ra biểu đồ đẹp mắt và chia sẻ.
`vnstock_ezchart` sử dụng các thư viện nền bao gồm (nhưng không giới hạn): matplotlib, seaborn, squarify, wordcloud và cung cấp tùy biến thông dụng và tiêu chuẩn hóa chúng để bạn có thể sử dụng dễ dàng thay vì phải học nhiều công sức chỉ để tạo ra các biểu đồ đơn giản trong python.
Khám phá vnstock_ezchart hôm nay, và bắt đầu hành trình đầu tư thông minh của bạn với sự tự tin và hiệu quả tối đa.
# Cài đặt
`pip install vnstock-ezchart`
# Sử dụng
Sử dụng demo notebook có trong thư mục docs hoặc link Google Colab dưới đây:
<a target="_blank" href="https://colab.research.google.com/github/vnstock-hq/vnstock_ezchart/blob/main/docs/vnstock_ezchart_demo.ipynb">
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
</a>
- Khởi tạo client: `ezchart = MPlot()`
- Gọi hàm và biểu diễn dữ liệu:
```
ezchart.combo_chart(candle_df['volume'] / 1000_000, candle_df['close']/1000,
left_ylabel='Volume (M)', right_ylabel='Price (K)',
color_palette='vnstock', palette_shuffle=True,
show_legend=False,
figsize=(10, 6),
title='Khối lượng giao dịch và giá đóng cửa theo thời gian',
title_fontsize=14
)
```
![Combo chart](https://github.com/vnstock-hq/vnstock_ezchart/blob/main/docs/assets/images/combo_chart.png?raw=true)
# Các dạng biểu đồ hỗ trợ
- Bar
- Line / Time series
- Combo (Bar + Line)
- Histogram
- Boxplot
- Pie
- Scatter
- Treemap
- Word cloud
- Table
- Pairplot
# Tiện ích
## Xem hướng dẫn tích hợp:
```
ezchart = MPlot()
MPlot.help('bar)`
```
Kết quả trả về:
```
Vẽ biểu đồ cột với các tùy chỉnh chi tiết.
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 đồ.
```
## Xem bảng màu tích hợp sẵn
```
Utils.create_cmap('vnstock')
```
![color_map](https://github.com/vnstock-hq/vnstock_ezchart/blob/main/docs/assets/images/color_map.png?raw=true)
## Tải font chữ
```
Utils.download_font('Roboto')
```
Raw data
{
"_id": null,
"home_page": "https://github.com/vnstock-hq/vnstock_ezchart",
"name": "vnstock-ezchart",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": null,
"author": "Thinh Vu",
"author_email": "mrthinh@live.com",
"download_url": "https://files.pythonhosted.org/packages/58/b7/edfaef1c5086f3620ce8f9ba5a54fa01fcc6397bfa750416fba45ee98631/vnstock_ezchart-0.0.2.tar.gz",
"platform": null,
"description": "# Gi\u1edbi thi\u1ec7u\n\n> `vnstock_ezchart` ra \u0111\u1eddi v\u1edbi m\u1ed9t s\u1ee9 m\u1ec7nh \u0111\u01a1n gi\u1ea3n nh\u01b0ng \u0111\u1ea7y \u00fd ngh\u0129a: L\u00e0m cho vi\u1ec7c ph\u00e2n t\u00edch d\u1eef li\u1ec7u tr\u1edf n\u00ean d\u1ec5 d\u00e0ng v\u00e0 ti\u1ec7n l\u1ee3i h\u01a1n bao gi\u1edd h\u1ebft \u0111\u1eb7c bi\u1ec7t l\u00e0 l\u0129nh v\u1ef1c t\u00e0i ch\u00ednh/ch\u1ee9ng kho\u00e1n. `vnstock_ezchart` \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n nh\u01b0 m\u1ed9t c\u00f4ng c\u1ee5 b\u1ed5 tr\u1ee3 cho g\u00f3i d\u1eef li\u1ec7u vnstock, nh\u1eb1m m\u1ee5c \u0111\u00edch cung c\u1ea5p cho c\u1ed9ng \u0111\u1ed3ng m\u1ed9t gi\u1ea3i ph\u00e1p to\u00e0n di\u1ec7n \u0111\u1ec3 bi\u1ec3u di\u1ec5n v\u00e0 ph\u00e2n t\u00edch d\u1eef li\u1ec7u t\u00e0i ch\u00ednh m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng, m\u00e0 kh\u00f4ng y\u00eau c\u1ea7u ng\u01b0\u1eddi d\u00f9ng ph\u1ea3i am hi\u1ec3u s\u00e2u v\u1ec1 l\u1eadp tr\u00ecnh. D\u1eef li\u1ec7u \u0111\u1ea7u v\u00e0o c\u1ee7a c\u00e1c h\u00e0m trong `vnstock_ezchart` nh\u1eadn ki\u1ec3u d\u1eef li\u1ec7u Python ph\u1ed5 bi\u1ebfn nh\u01b0 List, DataFrame, Series, Numpy array.\n\nCh\u00fang t\u00f4i hi\u1ec3u r\u1eb1ng, \u0111\u1ec3 \u0111\u01b0a ra nh\u1eefng quy\u1ebft \u0111\u1ecbnh \u0111\u1ea7u t\u01b0 hay nghi\u00ean c\u1ee9u h\u1ecdc thu\u1eadt, vi\u1ec7c tr\u1ef1c quan h\u00f3a d\u1eef li\u1ec7u l\u00e0 kh\u00f4ng th\u1ec3 thi\u1ebfu. V\u1edbi `vnstock_ezchart` b\u1ea1n c\u00f3 th\u1ec3 \u0111\u00e1p \u1ee9ng 80% nhu c\u1ea7u bi\u1ec3u di\u1ec5n d\u1eef li\u1ec7u h\u00e0ng ng\u00e0y c\u1ee7a m\u00ecnh ch\u1ec9 b\u1eb1ng c\u00e1ch thay \u0111\u1ed5i c\u00e1c tham s\u1ed1 \u0111\u1ea7u v\u00e0o c\u1ee7a h\u00e0m \u0111\u1ec3 t\u00f9y bi\u1ebfn hay \u0111\u01a1n gi\u1ea3n ch\u1ec9 c\u1ea7n n\u1ea1p d\u1eef li\u1ec7u \u0111\u1ec3 xem tr\u01b0\u1edbc, sau \u0111\u00f3 quy\u1ebft \u0111\u1ecbnh tinh ch\u1ec9nh \u0111\u1ec3 t\u1ea1o ra bi\u1ec3u \u0111\u1ed3 \u0111\u1eb9p m\u1eaft v\u00e0 chia s\u1ebb.\n\n`vnstock_ezchart` s\u1eed d\u1ee5ng c\u00e1c th\u01b0 vi\u1ec7n n\u1ec1n bao g\u1ed3m (nh\u01b0ng kh\u00f4ng gi\u1edbi h\u1ea1n): matplotlib, seaborn, squarify, wordcloud v\u00e0 cung c\u1ea5p t\u00f9y bi\u1ebfn th\u00f4ng d\u1ee5ng v\u00e0 ti\u00eau chu\u1ea9n h\u00f3a ch\u00fang \u0111\u1ec3 b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng d\u1ec5 d\u00e0ng thay v\u00ec ph\u1ea3i h\u1ecdc nhi\u1ec1u c\u00f4ng s\u1ee9c ch\u1ec9 \u0111\u1ec3 t\u1ea1o ra c\u00e1c bi\u1ec3u \u0111\u1ed3 \u0111\u01a1n gi\u1ea3n trong python.\n\nKh\u00e1m ph\u00e1 vnstock_ezchart h\u00f4m nay, v\u00e0 b\u1eaft \u0111\u1ea7u h\u00e0nh tr\u00ecnh \u0111\u1ea7u t\u01b0 th\u00f4ng minh c\u1ee7a b\u1ea1n v\u1edbi s\u1ef1 t\u1ef1 tin v\u00e0 hi\u1ec7u qu\u1ea3 t\u1ed1i \u0111a.\n\n# C\u00e0i \u0111\u1eb7t\n\n`pip install vnstock-ezchart`\n\n# S\u1eed d\u1ee5ng\n\nS\u1eed d\u1ee5ng demo notebook c\u00f3 trong th\u01b0 m\u1ee5c docs ho\u1eb7c link Google Colab d\u01b0\u1edbi \u0111\u00e2y: \n\n<a target=\"_blank\" href=\"https://colab.research.google.com/github/vnstock-hq/vnstock_ezchart/blob/main/docs/vnstock_ezchart_demo.ipynb\">\n <img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/>\n</a>\n\n- Kh\u1edfi t\u1ea1o client: `ezchart = MPlot()`\n- G\u1ecdi h\u00e0m v\u00e0 bi\u1ec3u di\u1ec5n d\u1eef li\u1ec7u: \n\n```\nezchart.combo_chart(candle_df['volume'] / 1000_000, candle_df['close']/1000,\n left_ylabel='Volume (M)', right_ylabel='Price (K)',\n color_palette='vnstock', palette_shuffle=True,\n show_legend=False,\n figsize=(10, 6),\n title='Kh\u1ed1i l\u01b0\u1ee3ng giao d\u1ecbch v\u00e0 gi\u00e1 \u0111\u00f3ng c\u1eeda theo th\u1eddi gian',\n title_fontsize=14\n )\n```\n![Combo chart](https://github.com/vnstock-hq/vnstock_ezchart/blob/main/docs/assets/images/combo_chart.png?raw=true)\n\n# C\u00e1c d\u1ea1ng bi\u1ec3u \u0111\u1ed3 h\u1ed7 tr\u1ee3\n- Bar\n- Line / Time series\n- Combo (Bar + Line)\n- Histogram\n- Boxplot\n- Pie\n- Scatter\n- Treemap\n- Word cloud\n- Table\n- Pairplot\n\n# Ti\u1ec7n \u00edch\n\n## Xem h\u01b0\u1edbng d\u1eabn t\u00edch h\u1ee3p: \n```\nezchart = MPlot()\nMPlot.help('bar)`\n```\n\nK\u1ebft qu\u1ea3 tr\u1ea3 v\u1ec1:\n\n```\nV\u1ebd bi\u1ec3u \u0111\u1ed3 c\u1ed9t v\u1edbi c\u00e1c t\u00f9y ch\u1ec9nh chi ti\u1ebft.\n\nTham s\u1ed1:\n - data (pd.DataFrame ho\u1eb7c pd.Series): D\u1eef li\u1ec7u \u0111\u1ea7u v\u00e0o d\u1ea1ng DataFrame ho\u1eb7c Series.\n - title (str): Ti\u00eau \u0111\u1ec1 c\u1ee7a bi\u1ec3u \u0111\u1ed3.\n - title_fontsize (int): C\u1ee1 ch\u1eef cho ti\u00eau \u0111\u1ec1.\n - xlabel (str): Nh\u00e3n cho tr\u1ee5c X.\n - ylabel (str): Nh\u00e3n cho tr\u1ee5c Y.\n - color_palette (str): T\u00ean c\u1ee7a b\u1ea3ng m\u00e0u \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u1ecbnh tr\u01b0\u1edbc ho\u1eb7c danh s\u00e1ch c\u00e1c m\u00e0u t\u00f9y ch\u1ec9nh. M\u1eb7c \u0111\u1ecbnh l\u00e0 'vnstock'. C\u00e1c b\u1ea3ng m\u00e0u c\u00f3 s\u1eb5n: 'percentage', 'amount', 'category', 'trend', 'flatui', 'vnstock', 'learn_anything'. C\u00f3 th\u1ec3 li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 b\u1ea3ng m\u00e0u v\u1edbi Utils.brand_palettes.keys().\n - palette_shuffle (bool): X\u00e1o tr\u1ed9n th\u1ee9 t\u1ef1 m\u00e0u s\u1eafc trong b\u1ea3ng m\u00e0u, cho ph\u00e9p ch\u1ecdn m\u00e0u ng\u1eabu nhi\u00ean trong b\u1ea3ng m\u00e0u \u0111\u1ec3 bi\u1ec3u di\u1ec5n cho \u0111\u1ebfn khi b\u1ea1n \u01b0ng \u00fd. M\u1eb7c \u0111\u1ecbnh l\u00e0 False.\n - grid (bool): Hi\u1ec3n th\u1ecb l\u01b0\u1edbi. Nh\u1eadn True \u0111\u1ec3 hi\u1ec7n th\u1ecb ho\u1eb7c False \u0111\u1ec3 \u1ea9n l\u01b0\u1edbi.\n - data_labels (bool): Hi\u1ec3n th\u1ecb nh\u00e3n d\u1eef li\u1ec7u tr\u00ean bi\u1ec3u \u0111\u1ed3.\n - data_label_format (str): \u0110\u1ecbnh d\u1ea1ng cho nh\u00e3n d\u1eef li\u1ec7u. Nh\u1eadn c\u00e1c gi\u00e1 tr\u1ecb r\u00fat g\u1ecdn nh\u01b0 1K, 1M, 1B, 1T t\u01b0\u01a1ng \u1ee9ng v\u1edbi 1 ng\u00e0n, 1 tri\u1ec7u, 1 t\u1ef7, 1 ngh\u00ecn t\u1ef7.\n - label_fontsize (int): C\u1ee1 ch\u1eef cho nh\u00e3n tr\u1ee5c X v\u00e0 Y.\n - legend_title (str): Ti\u00eau \u0111\u1ec1 cho ch\u00fa gi\u1ea3i.\n - show_legend (bool): Hi\u1ec3n th\u1ecb ch\u00fa gi\u1ea3i. Nh\u1eadn True \u0111\u1ec3 hi\u1ec3n th\u1ecb ho\u1eb7c False \u0111\u1ec3 \u1ea9n ch\u00fa gi\u1ea3i.\n - series_names (list): Danh s\u00e1ch t\u00ean cho c\u00e1c d\u1ea3i (series) d\u1eef li\u1ec7u trong bi\u1ec3u \u0111\u1ed3. Nh\u1eadn gi\u00e1 tr\u1ecb l\u00e0 1 danh s\u00e1ch (list).\n - font_name (str): T\u00ean c\u1ee7a font ch\u1eef mu\u1ed1n \u00e1p d\u1ee5ng.\n - figsize (tuple): K\u00edch th\u01b0\u1edbc c\u1ee7a bi\u1ec3u \u0111\u1ed3, v\u00ed d\u1ee5 (10, 6).\n - show_xaxis (bool): Hi\u1ec3n th\u1ecb tr\u1ee5c X. Nh\u1eadn True \u0111\u1ec3 hi\u1ec3n th\u1ecb ho\u1eb7c False \u0111\u1ec3 \u1ea9n tr\u1ee5c X.\n - show_yaxis (bool): Hi\u1ec3n th\u1ecb tr\u1ee5c Y. Nh\u1eadn True \u0111\u1ec3 hi\u1ec3n th\u1ecb ho\u1eb7c False \u0111\u1ec3 \u1ea9n tr\u1ee5c Y.\n - tick_labelsize (int): C\u1ee1 ch\u1eef cho c\u00e1c nh\u00e3n tr\u1ee5c.\n - xtick_format (str): \u0110\u1ecbnh d\u1ea1ng cho nh\u00e3n tr\u1ee5c X. V\u00ed d\u1ee5 \u0111\u1ecbnh d\u1ea1ng s\u1ed1 th\u1eadp ph\u00e2n '{:.0f}'.\n - ytick_format (str): \u0110\u1ecbnh d\u1ea1ng cho nh\u00e3n tr\u1ee5c Y. V\u00ed d\u1ee5 \u0111\u1ecbnh d\u1ea1ng ph\u1ea7n tr\u0103m '{:.0%}'.\n - tick_rotation (int): G\u00f3c quay cho c\u00e1c nh\u00e3n tr\u1ee5c.\n - xlim (tuple): Gi\u1edbi h\u1ea1n cho tr\u1ee5c X, v\u00ed d\u1ee5 (0, 100).\n - ylim (tuple): Gi\u1edbi h\u1ea1n cho tr\u1ee5c Y, v\u00ed d\u1ee5 (0, 100).\n - background_color (str): M\u00e0u n\u1ec1n cho bi\u1ec3u \u0111\u1ed3.\n - bar_edge_color (str): M\u00e0u vi\u1ec1n cho c\u00e1c c\u1ed9t (bar) trong bi\u1ec3u \u0111\u1ed3.\n```\n\n## Xem b\u1ea3ng m\u00e0u t\u00edch h\u1ee3p s\u1eb5n\n\n```\nUtils.create_cmap('vnstock')\n```\n\n![color_map](https://github.com/vnstock-hq/vnstock_ezchart/blob/main/docs/assets/images/color_map.png?raw=true)\n\n\n## T\u1ea3i font ch\u1eef\n\n```\nUtils.download_font('Roboto')\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "A comprehensive wrapper for Matplotlib, Seaborn which designed to provide a fast, simple, and efficient user experience for routine data visualization tasks",
"version": "0.0.2",
"project_urls": {
"Homepage": "https://github.com/vnstock-hq/vnstock_ezchart"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c010aa8ced9a95fd7610cf8540026709a42c389e75e98c5ad1d6cde820e02176",
"md5": "74a6045d054342eb40b71d9d99b0039e",
"sha256": "03fe19eea72e95cb407d65b60449303548b21ac362ec646f400511b4c6128415"
},
"downloads": -1,
"filename": "vnstock_ezchart-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "74a6045d054342eb40b71d9d99b0039e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 14120,
"upload_time": "2024-03-23T14:58:23",
"upload_time_iso_8601": "2024-03-23T14:58:23.145470Z",
"url": "https://files.pythonhosted.org/packages/c0/10/aa8ced9a95fd7610cf8540026709a42c389e75e98c5ad1d6cde820e02176/vnstock_ezchart-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "58b7edfaef1c5086f3620ce8f9ba5a54fa01fcc6397bfa750416fba45ee98631",
"md5": "58d4a03590c2201ad42083fc84c10051",
"sha256": "0feee496ad295d16ad69af71f587d79c6ca0523711948cc3486136562b6f78e2"
},
"downloads": -1,
"filename": "vnstock_ezchart-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "58d4a03590c2201ad42083fc84c10051",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 14317,
"upload_time": "2024-03-23T14:58:24",
"upload_time_iso_8601": "2024-03-23T14:58:24.947898Z",
"url": "https://files.pythonhosted.org/packages/58/b7/edfaef1c5086f3620ce8f9ba5a54fa01fcc6397bfa750416fba45ee98631/vnstock_ezchart-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-23 14:58:24",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "vnstock-hq",
"github_project": "vnstock_ezchart",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "squarify",
"specs": []
},
{
"name": "wordcloud",
"specs": []
},
{
"name": "requests",
"specs": []
},
{
"name": "vnstock",
"specs": []
},
{
"name": "matplotlib",
"specs": []
},
{
"name": "seaborn",
"specs": []
},
{
"name": "pandas",
"specs": []
},
{
"name": "openpyxl",
"specs": []
}
],
"lcname": "vnstock-ezchart"
}