plotly / plotly/plotly.js

add level-of-detail for scatter plots (and geo/sf plots)

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

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

feature P2
Ngôn ngữ chính
JavaScript
Star
18.3k
Fork
2k
Merge trung bình
2 ngày 12 giờ
Pull request đã merge (30 ngày)
28

Mô tả

Re-opening issue #4190 (copied below) as it is still something that is often an issue in our projects. Further expanding to include sf/geo plots as it would also be useful there as well.


I've been working on some data that has a LOT of lat/long scatter points in a dense area which causes a lot of lag. about 1500-2000 points per viewport seems to work quite fluidly, but above that the click and drag/zoom tools really start to lag (click and drag is by far the worst).

There is already a "max displayed" markers parameter (which I'm putting to use), however it causes "holes" to appear until the user has zoomed in significantly and due to the way the points are organised (equal steps in lat/long) there are weird striations and patterns that occur.

It would look a lot better if I were able to have a Level-of-detail (LOD) parameter. I have a number of thoughts on how this could be achieved.

  • The simplest of which would be a parameter that takes an array of sizes at zoom levels and combined with "max displayed" could be used to grow/shrink the markers at different zooms.
  • Simplest for the user might be a parameter which when active clusters the points (much like the google marker clustering).
  • More complex could be that the user supplies an array of their own data points to display at various zoom levels and the marker size for each step.
  • Finally, the user could add a trace for each of the different zoom levels and specify at which level the trace should be visible.

Obviously some of these could be done 3rd party by tapping onto the events, however it would be more suitable to add to the core library I think.

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

Issue không nêu tên tệp, các bài kiểm thử hay một điểm vào cụ thể. Trước tiên, hãy xem xét hành vi của marker "max displayed" và cách xử lý tương tác zoom, sau đó xác định những phương pháp LOD được đề xuất nào mà dự án nên hỗ trợ cho các biểu đồ scatter và geo/sf. Công việc được xem là hoàn tất khi có thiết kế đã được thống nhất, phạm vi triển khai và việc kiểm định hiệu năng cho các chế độ xem điểm dày đặc.

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

Đánh giá

Công nghệ
javascript
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
Cần làm rõ
Mức phù hợp với người mới
25/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.