window transform: strict median/deviation/variance/pXX check missing values at the wrong rows when there are several series

Đang mở Phù hợp với người mới
#2,471 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

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

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
85/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
javascript, node.js
Lĩnh vực
data-visualization

Hướng nghiên cứu

Bắt đầu với src/transforms/window.js và kiểm tra reduceAccessor để tìm số lượng giá trị thiếu nghiêm ngặt; issue xác định sự không khớp giữa chỉ số hàng và chỉ số chuỗi. Tái hiện bằng ví dụ Plot.windowY được cung cấp, sau đó kiểm tra các bài kiểm thử của phép biến đổi window cho các reducer nghiêm ngặt. Hoàn tất khi median, deviation, variance và pXX đặt các kết quả thiếu ở cùng hàng với mean cho nhiều chuỗi.

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

Mô tả

With strict: true, the median, deviation, variance and pXX window reducers look for missing values at the within-series position instead of the row index, so any series that does not occupy rows 0..n-1 (a second z series, a later facet) gets gaps in the wrong places.

import * as Plot from "@observablehq/plot";

const data = [
  {i: 0, v: 1, g: "a"}, {i: 1, v: 10,   g: "b"},
  {i: 2, v: 2, g: "a"}, {i: 3, v: null, g: "b"},
  {i: 4, v: 3, g: "a"}, {i: 5, v: 30,   g: "b"},
  {i: 6, v: 4, g: "a"}, {i: 7, v: 40,   g: "b"}
];

const o = Plot.windowY({k: 2, reduce: "median", strict: true, anchor: "end"}, {x: "i", y: "v", z: "g"});
o.transform(data, [Uint32Array.from(data, (_, i) => i)]);
console.log(Array.from(o.y.transform()));

node t.mjs

Actual:

[ undefined, undefined, 1.5, 10, 2.5, 30, NaN, NaN ]

Expected (what reduce: "mean" gives on the same data):

[ undefined, undefined, 1.5, NaN, 2.5, NaN, 3.5, 35 ]

Series "a" has no missing values but loses its last window, and series "b" gets values for the two windows that contain null.

Tested with @observablehq/plot 0.6.19 and main 2245188, Node.js v26.13.0.

In reduceAccessor in src/transforms/window.js, v takes a row index but the strict NaN counting calls v(i) and v(i + k - 1); it should be v(I[i]) and v(I[i + k - 1]).

Credit: https://ucsbplse.github.io/

Ngôn ngữ chính
HTML
Star
5.4k
Fork
251
Merge trung bình
2 ngày 1 giờ
Pull request đã merge (30 ngày)
2

Chuẩn bị môi trường

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.

Issue khác của observablehq/plot

Tất cả issue của observablehq/plot

Issue tương tự

Thêm issue về Data Visualization

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.