Plotly - Box Plot Violin Plot and Contour Plot
Chương này tập trung vào việc tìm hiểu chi tiết về các âm mưu khác nhau bao gồm âm mưu hình hộp, âm mưu cây vĩ cầm, âm mưu đường viền và âm mưu rung chuyển. Ban đầu, chúng ta sẽ bắt đầu với phần sau Box Plot.
Ô hộp
Biểu đồ hộp hiển thị bản tóm tắt của một tập hợp dữ liệu chứa tối thiểu, first quartile, median, third quartilevà maximum. Trong một biểu đồ hình hộp, chúng tôi vẽ một hộp từ phần tư đầu tiên đến phần tư thứ ba. Một đường thẳng đứng đi qua hộp ở trung tuyến. Các đường kéo dài theo chiều dọc từ các hộp biểu thị sự thay đổi bên ngoài phần tư trên và dưới được gọi là râu. Do đó, ô hộp còn được gọi là ô vàwhisker plot. Râu đi từ mỗi phần tư đến mức tối thiểu hoặc tối đa.
Để vẽ biểu đồ Hộp, chúng ta phải sử dụng go.Box()chức năng. Chuỗi dữ liệu có thể được gán cho tham số x hoặc y. Theo đó, ô hình hộp sẽ được vẽ theo chiều ngang hoặc chiều dọc. Trong ví dụ sau, số liệu bán hàng của một công ty nhất định trong các chi nhánh khác nhau của nó được chuyển đổi trong biểu đồ hình hộp ngang. Nó cho thấy giá trị trung bình của giá trị nhỏ nhất và lớn nhất.
trace1 = go.Box(y = [1140,1460,489,594,502,508,370,200])
data = [trace1]
fig = go.Figure(data)
iplot(fig)
Đầu ra của cùng một sẽ như sau:
Các go.Box()chức năng có thể được cung cấp các tham số khác nhau để kiểm soát sự xuất hiện và hành vi của biểu đồ hộp. Một trong số đó là tham số boxmean.
Các boxmeantham số được đặt thành true theo mặc định. Do đó, giá trị trung bình của phân phối cơ bản của các hộp được vẽ dưới dạng một đường đứt nét bên trong các hộp. Nếu nó được đặt thành sd, độ lệch chuẩn của phân phối cũng được vẽ.
Các boxpoints tham số theo mặc định bằng "outliers". Chỉ các điểm mẫu nằm bên ngoài râu được hiển thị. Nếu" điểm đáng ngờ ", điểm ngoại lệ được hiển thị và các điểm nhỏ hơn 4" Q1-3 "Q3 hoặc lớn hơn 4" Q3-3 "Q1 được đánh dấu. Nếu" Sai ", chỉ (các) hộp được hiển thị không có điểm mẫu.
Trong ví dụ sau, box trace được vẽ với độ lệch chuẩn và điểm ngoại lệ.
trc = go.Box(
y = [
0.75, 5.25, 5.5, 6, 6.2, 6.6, 6.80, 7.0, 7.2, 7.5, 7.5, 7.75, 8.15,
8.15, 8.65, 8.93, 9.2, 9.5, 10, 10.25, 11.5, 12, 16, 20.90, 22.3, 23.25
],
boxpoints = 'suspectedoutliers', boxmean = 'sd'
)
data = [trc]
fig = go.Figure(data)
iplot(fig)
Đầu ra của cùng một được nêu dưới đây:
Lô đàn vĩ cầm
Các ô violin tương tự như các ô hộp, ngoại trừ việc chúng cũng hiển thị mật độ xác suất của dữ liệu ở các giá trị khác nhau. Các ô violin sẽ bao gồm một điểm đánh dấu cho trung vị của dữ liệu và một hộp cho biết phạm vi giữa các phần, như trong các ô hộp tiêu chuẩn. Phủ trên ô hộp này là ước tính mật độ nhân. Giống như các ô hình hộp, ô vĩ cầm được sử dụng để biểu thị sự so sánh của một phân phối biến đổi (hoặc phân phối mẫu) trên các "danh mục" khác nhau.
Một âm mưu vĩ cầm có nhiều thông tin hơn một âm mưu hộp đơn thuần. Trên thực tế, trong khi biểu đồ hình hộp chỉ hiển thị thống kê tóm tắt như phạm vi trung bình / trung vị và giữa các phần, thì biểu đồ vĩ cầm hiển thịfull distribution of the data.
Đối tượng dấu vết vĩ cầm được trả lại bởi go.Violin() chức năng trong graph_objectsmô-đun. Để hiển thị biểu đồ hộp bên dưới,boxplot_visiblethuộc tính được đặt thành True. Tương tự, bằng cách thiết lậpmeanline_visible thuộc tính true, một dòng tương ứng với giá trị trung bình của mẫu được hiển thị bên trong vĩ cầm.
Ví dụ sau minh họa cách hiển thị cốt truyện Violin bằng chức năng của cốt truyện.
import numpy as np
np.random.seed(10)
c1 = np.random.normal(100, 10, 200)
c2 = np.random.normal(80, 30, 200)
trace1 = go.Violin(y = c1, meanline_visible = True)
trace2 = go.Violin(y = c2, box_visible = True)
data = [trace1, trace2]
fig = go.Figure(data = data)
iplot(fig)
Kết quả như sau:
Đường viền cốt truyện
Biểu đồ đường bao 2D hiển thị các đường đồng mức của một mảng số 2D z, tức là các đường nội suy của isovaluescủa z. Đường đồng mức của một hàm hai biến là một đường cong mà hàm có giá trị không đổi, sao cho đường cong nối các điểm có giá trị bằng nhau.
Biểu đồ đường bao là thích hợp nếu bạn muốn xem một số giá trị Z thay đổi như thế nào dưới dạng hàm của hai đầu vào, X và Y như vậy mà Z = f(X,Y). Đường đồng mức hoặc đường cô lập của một hàm hai biến là một đường cong mà hàm có giá trị không đổi.
Các biến độc lập x và y thường được giới hạn trong một lưới thông thường được gọi là meshgrid. Numpy.meshgrid tạo ra một lưới hình chữ nhật từ một mảng các giá trị x và một mảng các giá trị y.
Đầu tiên chúng ta hãy tạo các giá trị dữ liệu cho x, y và z bằng cách sử dụng linspace()chức năng từ thư viện Numpy. Chúng tôi tạo ra mộtmeshgrid từ các giá trị x và y và thu được mảng z bao gồm căn bậc hai của x2+y2
Chúng ta có go.Contour() chức năng trong graph_objects mô-đun lấy x,y và zthuộc tính. Đoạn mã sau hiển thị biểu đồ đường bao của x,y và z giá trị được tính như trên.
import numpy as np
xlist = np.linspace(-3.0, 3.0, 100)
ylist = np.linspace(-3.0, 3.0, 100)
X, Y = np.meshgrid(xlist, ylist)
Z = np.sqrt(X**2 + Y**2)
trace = go.Contour(x = xlist, y = ylist, z = Z)
data = [trace]
fig = go.Figure(data)
iplot(fig)
Kết quả như sau:
Biểu đồ đường bao có thể được tùy chỉnh bằng một hoặc nhiều tham số sau:
Transpose (boolean) - Chuyển đổi dữ liệu z.
Nếu xtype (hoặc là ytype) bằng "mảng", tọa độ x / y được cho bởi "x" / "y". Nếu "được chia tỷ lệ", tọa độ x được cho bởi "x0" và "dx".
Các connectgaps tham số xác định xem các khoảng trống trong dữ liệu z có được điền vào hay không.
Giá trị mặc định của ncontourstham số là 15. Số lượng đường viền thực tế sẽ được chọn tự động nhỏ hơn hoặc bằng giá trị của `ncontours`. Chỉ có tác dụng khi `autocontour` là" True ".
Loại đường bao theo mặc định: "levels"để dữ liệu được biểu diễn dưới dạng biểu đồ đường bao với nhiều cấp độ được hiển thị. Nếu constrain, dữ liệu được biểu thị dưới dạng ràng buộc với vùng không hợp lệ được tô bóng như được chỉ định bởi operation và value thông số.
showlines - Xác định xem có vẽ các đường đồng mức hay không.
zauto Là True theo mặc định và xác định xem miền màu có được tính theo dữ liệu đầu vào hay không (ở đây là `z`) hoặc giới hạn được đặt trong`zmin`và 'zmax`Mặc định là`False`khi` zmin` và `zmax` được người dùng đặt.
Âm mưu im lặng
Âm mưu im lặng còn được gọi là velocity plot. Nó hiển thị vectơ vận tốc dưới dạng mũi tên với các thành phần (u,v) tại các điểm (x, y). Để vẽ âm mưu Quiver, chúng tôi sẽ sử dụngcreate_quiver() chức năng được xác định trong figure_factory mô-đun trong Plotly.
API Python của Plotly chứa một mô-đun nhà máy hình bao gồm nhiều hàm trình bao bọc tạo ra các loại biểu đồ duy nhất chưa được bao gồm trong plotly.js, Thư viện vẽ đồ thị mã nguồn mở của Plotly.
Hàm create_quiver () chấp nhận các tham số sau:
x - x tọa độ của các vị trí mũi tên
y - tọa độ y của các vị trí mũi tên
u - x thành phần của vectơ mũi tên
v - thành phần y của vectơ mũi tên
scale - kích thước tỷ lệ của các mũi tên
arrow_scale - chiều dài của đầu mũi tên.
angle - góc của đầu mũi tên.
Đoạn mã sau hiển thị một âm mưu dao động đơn giản trong sổ ghi chép Jupyter -
import plotly.figure_factory as ff
import numpy as np
x,y = np.meshgrid(np.arange(-2, 2, .2), np.arange(-2, 2, .25))
z = x*np.exp(-x**2 - y**2)
v, u = np.gradient(z, .2, .2)
# Create quiver figure
fig = ff.create_quiver(x, y, u, v,
scale = .25, arrow_scale = .4,
name = 'quiver', line = dict(width = 1))
iplot(fig)
Đầu ra của mã như sau: