Biểu đồ OHLC, Biểu đồ thác nước và Biểu đồ kênh
Chương này tập trung vào ba loại biểu đồ khác bao gồm OHLC, Waterfall và Funnel Chart có thể được tạo với sự trợ giúp của Plotly.
Biểu đồ OHLC
An open-high-low-close biểu đồ (cũng OHLC) là một loại bar chartthường được sử dụng để minh họa các chuyển động trong giá của một công cụ tài chính như cổ phiếu. Biểu đồ OHLC rất hữu ích vì chúng hiển thị bốn điểm dữ liệu chính trong một khoảng thời gian. Loại biểu đồ rất hữu ích vì nó có thể hiển thị động lượng tăng hoặc giảm. Các điểm dữ liệu cao và thấp rất hữu ích trong việc đánh giá sự biến động.
Mỗi đường thẳng đứng trên biểu đồ hiển thị phạm vi giá (giá cao nhất và thấp nhất) trong một đơn vị thời gian, chẳng hạn như ngày hoặc giờ. Đánh dấu dự án từ mỗi bên của đường biểu thị giá mở cửa (ví dụ: đối với biểu đồ thanh hàng ngày, đây sẽ là giá khởi điểm cho ngày đó) ở bên trái và giá đóng cửa trong khoảng thời gian đó ở bên phải.
Dữ liệu mẫu để trình diễn biểu đồ OHLC được hiển thị bên dưới. Nó có các đối tượng danh sách tương ứng với các giá trị cao, thấp, mở và đóng như trên chuỗi ngày tương ứng. Biểu diễn ngày tháng của chuỗi được chuyển đổi thành đối tượng ngày tháng bằng cách sử dụngstrtp() chức năng từ mô-đun datetime.
open_data = [33.0, 33.3, 33.5, 33.0, 34.1]
high_data = [33.1, 33.3, 33.6, 33.2, 34.8]
low_data = [32.7, 32.7, 32.8, 32.6, 32.8]
close_data = [33.0, 32.9, 33.3, 33.1, 33.1]
date_data = ['10-10-2013', '11-10-2013', '12-10-2013','01-10-2014','02-10-2014']
import datetime
dates = [
datetime.datetime.strptime(date_str, '%m-%d-%Y').date()
for date_str in date_data
]
Chúng ta phải sử dụng đối tượng date ở trên làm tham số x và các đối tượng khác cho các tham số mở, cao, thấp và đóng được yêu cầu cho go.Ohlc() hàm trả về dấu vết OHLC.
trace = go.Ohlc(
x = dates,
open = open_data,
high = high_data,
low = low_data,
close = close_data
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)
Đầu ra của mã được đưa ra dưới đây:
Biểu đồ hình nến
Các candlestick charttương tự như biểu đồ OHLC. Nó giống như sự kết hợp củaline-chart và một bar-chart. Các hộp biểu thị mức chênh lệch giữa các giá trị mở và đóng và các đường biểu thị mức chênh lệch giữa các giá trị thấp và cao. Các điểm mẫu mà giá trị đóng cao hơn (thấp hơn) thì giá trị mở được gọi là tăng (giảm).
Dấu vết Candlestrick được trả lại bởi go.Candlestick() function. Chúng tôi sử dụng dữ liệu tương tự (như đối với biểu đồ OHLC) để hiển thị biểu đồ hình nến như dưới đây:
trace = go.Candlestick(
x = dates,
open = open_data,
high = high_data,
low = low_data,
close = close_data
)
Đầu ra của mã đã cho ở trên được đề cập dưới đây:
Biểu đồ thác nước
Biểu đồ thác nước (còn được gọi là flying bricks chart or Mario chart) giúp hiểu được tác động tích lũy của các giá trị âm hoặc dương được giới thiệu liên tiếp, có thể dựa trên thời gian hoặc dựa trên danh mục.
Giá trị ban đầu và cuối cùng được hiển thị dưới dạng cột với các điều chỉnh âm và dương riêng lẻ được mô tả dưới dạng các bước nổi. Một số biểu đồ thác nước kết nối các đường giữa các cột để làm cho biểu đồ trông giống như một cây cầu.
go.Waterfall()hàm trả về một dấu vết Thác nước. Đối tượng này có thể được tùy chỉnh bằng các đối số hoặc thuộc tính được đặt tên khác nhau. Ở đây, các thuộc tính x và y thiết lập dữ liệu cho các tọa độ x và y của biểu đồ. Cả hai đều có thể là một danh sách Python, mảng numpy hoặc chuỗi Pandas hoặc chuỗi hoặc các đối tượng thời gian ngày tháng.
Một thuộc tính khác là measurelà một mảng chứa các kiểu giá trị. Theo mặc định, các giá trị được coi làrelative. Đặt nó thành 'tổng' để tính tổng. Nếu nó bằngabsolutenó đặt lại tổng được tính toán hoặc để khai báo một giá trị ban đầu nếu cần. Thuộc tính 'cơ sở' thiết lập nơi cơ sở thanh được vẽ (theo đơn vị trục vị trí).
Đoạn mã sau hiển thị biểu đồ thác nước -
s1=[
"Sales",
"Consulting",
"Net revenue",
"Purchases",
"Other expenses",
"Profit before tax"
]
s2 = [60, 80, 0, -40, -20, 0]
trace = go.Waterfall(
x = s1,
y = s2,
base = 200,
measure = [
"relative",
"relative",
"total",
"relative",
"relative",
"total"
]
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)
Đầu ra được đề cập dưới đây là kết quả của mã được đưa ra ở trên.
Biểu đồ kênh
Biểu đồ kênh thể hiện dữ liệu trong các giai đoạn khác nhau của quy trình kinh doanh. Đây là một cơ chế quan trọng trong Business Intelligence để xác định các khu vực có vấn đề tiềm ẩn của một quy trình. Biểu đồ kênh được sử dụng để hình dung cách dữ liệu giảm dần khi chuyển từ giai đoạn này sang giai đoạn khác. Dữ liệu trong mỗi giai đoạn này được biểu thị dưới dạng các phần khác nhau của 100% (toàn bộ).
Giống như biểu đồ Hình tròn, biểu đồ Phễu cũng không sử dụng bất kỳ trục nào. Nó cũng có thể được coi là tương tự nhưstacked percent bar chart. Bất kỳ phễu nào cũng bao gồm phần cao hơn được gọi là đầu (hoặc đế) và phần dưới được gọi là cổ. Việc sử dụng phổ biến nhất của biểu đồ Kênh là trực quan hóa dữ liệu chuyển đổi bán hàng.
Plotly's go.Funnel()chức năng tạo ra dấu vết kênh. Các thuộc tính cần thiết được cung cấp cho chức năng này là x vày. Mỗi người trong số họ được gán một danh sách Python gồm các mục hoặc một mảng.
from plotly import graph_objects as go
fig = go.Figure(
go.Funnel(
y = [
"Website visit",
"Downloads",
"Potential customers",
"Requested price",
"invoice sent"
],
x = [39, 27.4, 20.6, 11, 2]
)
)
fig.show()
Đầu ra như dưới đây: