plotly / plotly/plotly.py

Feature Request: Implement Bagplot (Bivariate Boxplot) for 2D and 3D Data Visualization

Đang mở
#5,382 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Ngôn ngữ chính
Python
Star
18.8k
Fork
2.8k
Merge trung bình
16 giờ 26 phút
Pull request đã merge (30 ngày)
21

Mô tả

This proposal suggests adding support for Bagplots (also known as bivariate boxplots) as a new visualization type in Plotly.
Bagplots are a powerful extension of the traditional boxplot to two or more dimensions, providing a powerful vizualisation which shows statistical properties of 2-3 different variables.

While Plotly currently provides strong support for univariate distribution plots (box, violin, histogram), there is no direct tool to visualize bivariate distribution summaries in a similar “statistical boxplot” style.

The Bagplot, introduced by Rousseeuw, Ruts, and Tukey (1999), fills this gap by visualizing the data depth and outliers in 2D (and potentially 3D) space.
It provides an intuitive, robust alternative to kernel density estimates or convex hulls when exploring multivariate data.

Reference:
Rousseeuw, P. J., Ruts, I., & Tukey, J. W. (1999). The Bagplot: A Bivariate Boxplot. The American Statistician, 53(4), 382–387.
ResearchGate link

Image

Figure 1: Example of a 2D Bagplot showing data depth and outliers (adapted from Rousseeuw et al., 1999).

Proposed Functionality

Using the plotly api:

Express:

import plotly.express as px

# 2D Bagplot
fig2d = px.bagplot(df, x="feature1", y="feature2", depth_method="tukey", show_outliers=True)
fig2d.show()

# 3D Bagplot
fig3d = px.bagplot_3d(df, x="feature1", y="feature2", z="feature3",
                      depth_method="tukey", show_outliers=True)
fig3d.show()

Graph Objects:

import plotly.graph_objects as go

fig = go.Figure(data=go.Bagplot(
    x=df["feature1"],
    y=df["feature2"],
    show_outliers=True,
    depth_method="tukey"
))
fig.show()

fig = go.Figure(data=go.Bagplot3D(
    x=df["x"], y=df["y"], z=df["z"],
    show_outliers=True,
    depth_method="tukey"
))
fig.show()

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Không có tệp triển khai hoặc bài kiểm thử nào được nêu tên. Trước tiên, hãy xem xét các API Python Express và graph_objects của Plotly cùng với bài báo Bagplot được tham chiếu, sau đó làm rõ phạm vi có bao gồm 2D, 3D hay cả hai; được coi là hoàn tất khi đã thống nhất API và hành vi trực quan hóa tương ứng cho các tính năng data-depth và phát hiện ngoại lệ được yêu cầu.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
plotly, python
Lĩnh vực
data-visualization
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
30/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.