Hướng dẫn python plot large data set - python vẽ tập dữ liệu lớn

Một cuộc khảo sát về phần mềm âm mưu tương tác nguồn mở với điểm chuẩn biểu đồ phân tán 10 triệu điểm trên Ubuntu

Lấy cảm hứng từ trường hợp sử dụng được mô tả tại: https://stats.stackexchange.com/questions/376361/how-to-find-the-samples-point-that-have-statistical-meaningful-large-outlier-r Tôi đã chuẩn bị Một vài chương trình âm mưu với các tệp đầu vào chính xác giống nhau.

Về cơ bản, tôi muốn:

  • Làm một biểu đồ phân tán XY của dữ liệu đa chiều, hy vọng với Z là màu điểm
  • Tương tác chọn một số điểm trông thú vị từ cốt truyện với chuột của tôi
  • Xem tất cả các kích thước của các điểm đã chọn (bao gồm ít nhất X, Y và Z) để thử và hiểu lý do tại sao chúng là ngoại lệ trong phân tán XY

Vấn đề đó có thể được biểu thị bằng dữ liệu kiểm tra đơn giản sau:

i=0;
while [ "$i" -lt 10000000 ]; do
  echo "$i,$((2 * i)),$((4 * i))"; i=$((i + 1));
done > 10m1.csv
echo 5000000,20000000,-1 >> 10m1.csv

Một vài dòng đầu tiên của

Y

^
|
|
|       +       +
|
|             +
|
|           +
|
|         +
|
|       +
|
|     +
|
|   +
|
| +
|
+-------------------> X
1 trông như thế này:

10m1.csv

0,0,0
1,2,4
2,4,8
3,6,12
4,8,16

Và cái cuối cùng, 10 triệu đầu tiên, là ngoại lệ và có vẻ như:

5000000,20000000,-1

Vì vậy, về cơ bản chúng tôi có:

  • một dòng có độ nghiêng 2 và 10 triệu điểm trên đó
  • cộng với một điểm ngoại lệ duy nhất bên ngoài dòng, trên trung tâm trên cùng của cốt truyện

cái gì đó như:

Y

^
|
|
|       +       +
|
|             +
|
|           +
|
|         +
|
|       +
|
|     +
|
|   +
|
| +
|
+-------------------> X

Và mục tiêu của điểm chuẩn này để tìm điểm (5000000.20000000) trên biểu đồ đồ họa, sau đó xác định giá trị của cột thứ ba từ nó, đó là ____32 trong thử nghiệm của chúng tôi.

Khi tôi lần đầu tiên viết câu trả lời này, tôi đã sử dụng 10.CSV được tạo bằng:

i=0;
while [ "$i" -lt 10000000 ]; do
  echo "$i,$((2 * i)),$((4 * i))"; i=$((i + 1));
done > 10m.csv

không có ngoại lệ. Mặc dù kiểm tra hiệu suất này, nhưng nó không kiểm tra khả năng lựa chọn, vì vậy mục tiêu là di chuyển mỗi bài kiểm tra lên 10m1.csv khi tôi tìm thấy động lực để thực hiện nó.

Tôi cũng đã đưa ra một ví dụ ngoại lệ 10 điểm + trong trường hợp tôi muốn đánh giá khả năng sử dụng cho một số công cụ không thể xử lý số điểm 10M:

i=0;
while [ "$i" -lt 10 ]; do
  echo "$i,$((2 * i)),$((4 * i))"; i=$((i + 1));
done > 11.csv
echo 5,20,-1 >> 11.csv

Để có thêm niềm vui, tôi cũng đã chuẩn bị một bộ dữ liệu 1 tỷ điểm thậm chí còn lớn hơn trong trường hợp bất kỳ chương trình nào có thể xử lý 10 triệu điểm! Các tệp CSV đã trở nên hơi khó khăn, vì vậy tôi đã chuyển sang HDF5:

#!/usr/bin/env python3

import h5py
import numpy

size = 1000000000

with h5py.File('1b.hdf5', 'w') as f:
    x = numpy.arange(size + 1)
    x[size] =  size / 2
    f.create_dataset('x', data=x, dtype='int64')
    y = numpy.arange(size + 1) * 2
    y[size] =  3 * size / 2
    f.create_dataset('y', data=y, dtype='int64')
    z = numpy.arange(size + 1) * 4
    z[size] = -1
    f.create_dataset('z', data=z, dtype='int64')

Điều này tạo ra một ~ 23gib tương tự như

Y

^
|
|
|       +       +
|
|             +
|
|           +
|
|         +
|
|       +
|
|     +
|
|   +
|
| +
|
+-------------------> X
1 có chứa:

  • 1 tỷ điểm theo một đường thẳng giống như
    Y
    
    ^
    |
    |
    |       +       +
    |
    |             +
    |
    |           +
    |
    |         +
    |
    |       +
    |
    |     +
    |
    |   +
    |
    | +
    |
    +-------------------> X
    
    4
  • một điểm ngoại lệ ở đỉnh trung tâm của biểu đồ

Các thử nghiệm được thực hiện trong Ubuntu 18.10 trừ khi được đề cập khác trong tiểu mục A, trong máy tính xách tay ThinkPad p51 với CPU Intel Core i7-7820HQ (4 lõi / 8 Chủ đề), 2x Samsung M471A2K43BB GPU 4GB GDDR5.

Tóm tắt kết quả

Đây là những gì tôi quan sát được, xem xét trường hợp sử dụng thử nghiệm rất cụ thể của tôi và tôi là người sử dụng lần đầu tiên của nhiều phần mềm được đánh giá:

Nó có xử lý 10 triệu điểm không:

Vaex        Yes, tested up to 1 Billion!
VisIt       Yes, but not 100m
Paraview    No
Mayavi      Yes
gnuplot     Barely on non-interactive mode.
matplotlib  No
Bokeh       No, up to 1m
PyViz       ?
seaborn     ?

Nó có rất nhiều tính năng:

Vaex        Yes.
VisIt       Yes, 2D and 3D, focus on interactive.
Paraview    Same as above, a bit less 2D features maybe.
Mayavi      3D only, good interactive and scripting support, but more limited features.
gnuplot     Lots of features, but limited in interactive mode.
matplotlib  Same as above.
Bokeh       Yes, easy to script.
PyViz       ?
seaborn     ?

GUI có cảm thấy tốt không (không xem xét hiệu suất tốt):

Vaex        Yes, Jupyter widget
VisIt       No
Paraview    Very
Mayavi      OK
gnuplot     OK
matplotlib  OK
Bokeh       Very, Jupyter widget
PyViz       ?
seaborn     ?

Vaex 2.0.2

https://github.com/vaexio/vaex

Cài đặt và nhận Hello World hoạt động như được hiển thị tại: Cách thực hiện lựa chọn thu phóng / điểm phân tán 2D tương tác trong Vaex?

Tôi đã thử nghiệm Vaex với tối đa 1 tỷ điểm và nó đã hoạt động, nó thật tuyệt vời!

Đó là "Python-scripted-First" rất phù hợp cho khả năng tái tạo và cho phép tôi dễ dàng giao tiếp với những thứ Python khác.

Thiết lập Jupyter có một vài phần chuyển động, nhưng một khi tôi đã chạy với VirtualEnv, thật tuyệt vời.

Để tải CSV của chúng tôi chạy trong Jupyter:

0,0,0
1,2,4
2,4,8
3,6,12
4,8,16
0

Và chúng ta có thể thấy ngay lập tức:

Hướng dẫn python plot large data set - python vẽ tập dữ liệu lớn

Bây giờ, chúng ta có thể phóng to, chảo và chọn điểm với chuột và các bản cập nhật thực sự nhanh, tất cả trong vòng dưới 10 giây. Ở đây tôi đã phóng to để xem một số điểm riêng lẻ và đã chọn một vài trong số chúng (hình chữ nhật nhẹ hơn trên hình ảnh):

Hướng dẫn python plot large data set - python vẽ tập dữ liệu lớn

Sau khi lựa chọn được thực hiện với chuột, điều này có hiệu ứng chính xác như sử dụng phương pháp

Y

^
|
|
|       +       +
|
|             +
|
|           +
|
|         +
|
|       +
|
|     +
|
|   +
|
| +
|
+-------------------> X
5. Vì vậy, chúng tôi có thể trích xuất các điểm đã chọn bằng cách chạy trong Jupyter:

0,0,0
1,2,4
2,4,8
3,6,12
4,8,16
1

Đài phát hành dữ liệu nào có định dạng:

0,0,0
1,2,4
2,4,8
3,6,12
4,8,16
2

Vì 10 triệu điểm hoạt động tốt, tôi quyết định thử 1B điểm ... và nó cũng hoạt động tốt!

0,0,0
1,2,4
2,4,8
3,6,12
4,8,16
3

Để quan sát ngoại lệ, vốn vô hình trên cốt truyện ban đầu, chúng ta có thể theo cách thay đổi kiểu điểm trong một Jupyter BQPLOT tương tác COPLOT_WIDGET để làm cho các điểm riêng lẻ lớn hơn và hiển thị? Và sử dụng:

0,0,0
1,2,4
2,4,8
3,6,12
4,8,16
4

sản xuất:

Hướng dẫn python plot large data set - python vẽ tập dữ liệu lớn

và sau khi chọn điểm:

Hướng dẫn python plot large data set - python vẽ tập dữ liệu lớn

Chúng tôi có được dữ liệu đầy đủ của ngoại lệ:

0,0,0
1,2,4
2,4,8
3,6,12
4,8,16
5

Dưới đây là bản demo của những người sáng tạo với bộ dữ liệu thú vị hơn và nhiều tính năng hơn: https://www.youtube.com/watch?v=2TT0I823-ec&t=770

Được thử nghiệm trong Ubuntu 19.04.

Truy cập 2.13.3

Trang web: https://wci.llnl.gov/simulation/computer-codes/visit

Giấy phép: BSD

Được phát triển bởi Phòng thí nghiệm quốc gia Lawrence Livermore, một phòng thí nghiệm của Cơ quan An ninh Hạt nhân Quốc gia, vì vậy bạn có thể tưởng tượng rằng 10 triệu điểm sẽ không có gì cho nó nếu tôi có thể làm cho nó hoạt động. . Will với Nukes, và ngay cả khi bạn làm vậy, bạn không thể thực sự đo lường những gì bạn muốn vì nó nổ tung quá nhanh và quá nóng: một mô hình máy tính là điều bắt buộc. Và họ đã quyết định rằng một nhóm người vợ của nhà vật lý với máy tính không phải là ' T sẽ cắt nó như đối với quả bom phân hạch Los Alamos trước đó. Khi Israel mua một trong những máy tính của họ, mọi người ngay lập tức cho rằng đó là để chế tạo hạt nhân.)

Cài đặt: Không có gói Debian, chỉ cần tải xuống các nhị phân Linux từ trang web. Chạy mà không cần cài đặt. Xem thêm: https://askubuntu.com/questions/966901/installing-visit

Dựa trên VTK là thư viện phụ trợ mà nhiều phần mềm đồ thị hoàn hảo cao sử dụng. Được viết bằng C.

Sau 3 giờ chơi với giao diện người dùng, tôi đã làm cho nó hoạt động và nó đã giải quyết trường hợp sử dụng của tôi như chi tiết tại: https://stats.stackexchange.com/questions/376361/how-to-find-the-sample- Điểm-đó-có ý nghĩa-có nghĩa là-to-to-outlier-r

Đây là cách nó trông giống như trên dữ liệu kiểm tra của bài đăng này:

Hướng dẫn python plot large data set - python vẽ tập dữ liệu lớn

Và một zoom với một số lựa chọn:

Hướng dẫn python plot large data set - python vẽ tập dữ liệu lớn

Và đây là cửa sổ chọn:

Hướng dẫn python plot large data set - python vẽ tập dữ liệu lớn

Hiệu suất khôn ngoan, ghé thăm là rất tốt: mọi hoạt động đồ họa chỉ mất một lượng nhỏ thời gian hoặc ngay lập tức. Khi tôi phải đợi, nó hiển thị một thông báo "xử lý" với tỷ lệ phần trăm công việc còn lại và GUI không bị đóng băng.

Vì 10 triệu điểm hoạt động rất tốt, tôi cũng đã thử 100m điểm (một tệp CSV 2,7g) nhưng nó đã bị sập / đi vào trạng thái kỳ lạ, tôi đã xem nó trong

Y

^
|
|
|       +       +
|
|             +
|
|           +
|
|         +
|
|       +
|
|     +
|
|   +
|
| +
|
+-------------------> X
6 khi 4 chủ đề truy cập đã chiếm tất cả các ram 16gib của tôi và có khả năng chết do một malloc thất bại.

Việc bắt đầu ban đầu là một chút đau đớn:

  • Nhiều mặc định cảm thấy tàn bạo nếu bạn không phải là kỹ sư bom hạt nhân? Ví dụ.:
    • Kích thước điểm mặc định 1px (bị nhầm lẫn với bụi trên màn hình của tôi)
    • Tỷ lệ trục từ 0,0 đến 1,0: Làm thế nào để hiển thị các giá trị số trục thực tế trên chương trình âm mưu truy cập thay vì phân số từ 0,0 đến 1,0?
    • Thiết lập nhiều cửa sổ, nhiều cửa sổ bật lên khó chịu khi bạn chọn điểm dữ liệu
    • Hiển thị tên người dùng và ngày âm mưu của bạn (xóa với "điều khiển"> "chú thích"> "thông tin người dùng")
    • Mặc định định vị tự động là xấu: mâu thuẫn huyền thoại với các trục, không thể tìm thấy tự động hóa tiêu đề nên phải thêm nhãn và định vị lại mọi thứ bằng tay
  • Chỉ có rất nhiều tính năng, vì vậy thật khó để tìm thấy những gì bạn muốn
  • Hướng dẫn rất hữu ích, nhưng nó là 386 trang PDF Mammoth đáng ngại "Tháng 10 năm 2005 phiên bản 1.5". Tôi tự hỏi nếu họ sử dụng điều này để phát triển Trinity! Và nó là một HTML nhân sư tốt đẹp được tạo ra ngay sau khi ban đầu tôi trả lời câu hỏi này
  • Không có gói Ubuntu. Nhưng các nhị phân được xây dựng sẵn đã làm việc chỉ.

Tôi gán những vấn đề này là:

  • Nó đã tồn tại trong một thời gian dài như vậy và sử dụng một số ý tưởng GUI lỗi thời
  • Bạn không thể nhấp vào các phần tử cốt truyện để thay đổi chúng (ví dụ: trục, tiêu đề, v.v.) và có rất nhiều tính năng, vì vậy có một chút khó để tìm thấy một trong những

Tôi cũng thích nó làm thế nào một chút cơ sở hạ tầng LLNL rò rỉ vào repo đó. Xem ví dụ Docs/OfficeHours.txt và các tệp khác trong thư mục đó! Tôi xin lỗi vì Brad là "anh chàng sáng thứ hai"! Ồ, và mật khẩu cho máy trả lời là "giết ed", đừng quên điều đó.

Paraview 5.9.0

Trang web: https://www.paraview.org/

Giấy phép: BSD

Được thử nghiệm trên: Ubuntu 20.10.

Installation:

0,0,0
1,2,4
2,4,8
3,6,12
4,8,16
6

Hoặc nhận được mới nhất bằng cách tải xuống các phòng khách từ trang web. Đây là những gì tôi đã làm cho đánh giá này, vì APT chỉ ở mức 5.7.0. Tôi đã tải xuống

Y

^
|
|
|       +       +
|
|             +
|
|           +
|
|         +
|
|       +
|
|     +
|
|   +
|
| +
|
+-------------------> X
7.

Được phát triển bởi Phòng thí nghiệm quốc gia Kitware và Los Alamos, và các phòng thí nghiệm quốc gia Sandia (vì vậy hai phòng thí nghiệm NNSA khác), vì vậy một lần nữa chúng tôi hy vọng rằng nó sẽ dễ dàng xử lý dữ liệu. Ngoài ra dựa trên VTK và được viết bằng C ++, điều này còn hứa hẹn hơn nữa.

Tuy nhiên, tôi đã thất vọng: vì một số lý do, 10 triệu điểm khiến GUI rất chậm và không phản hồi, khiến nó không thể sử dụng được. Bất cứ khi nào tôi nhấp vào một cái gì đó, như để ẩn các dòng, phải mất vài chục giây. Tôi nghĩ rằng tại một số điểm, nó chỉ bị trục trặc và ngừng trả lời.

Tôi ổn với một khoảnh khắc được quảng cáo tốt "Tôi đang làm việc, đợi một chút", nhưng GUI đóng băng trong khi điều đó xảy ra? Không thể chấp nhận.

HTOP cho thấy Paraview đã sử dụng 8 luồng và RAM 3GB, vì vậy cả CPU và bộ nhớ đều không được tối đa hóa.

Gui-Wise, Paraview rất đẹp và hiện đại, tốt hơn so với ghé thăm khi nó không nói lắp.

Kể từ khi

Y

^
|
|
|       +       +
|
|             +
|
|           +
|
|         +
|
|       +
|
|     +
|
|   +
|
| +
|
+-------------------> X
1 giết nó, tôi đã thử nghiệm với
Y

^
|
|
|       +       +
|
|             +
|
|           +
|
|         +
|
|       +
|
|     +
|
|   +
|
| +
|
+-------------------> X
9 để xem liệu tôi có thể giải quyết vấn đề của mình ngoại trừ hiệu suất không và câu trả lời là có:

  • i=0;
    while [ "$i" -lt 10000000 ]; do
      echo "$i,$((2 * i)),$((4 * i))"; i=$((i + 1));
    done > 10m.csv
    
    0
  • Chọn đầu đọc CSV từ cửa sổ bật lên
  • thuộc tính thuộc tính áp dụng ở bên trái
  • Nhấp chuột phải vào CSV trên trình duyệt đường ống
  • Thêm bộ lọc> Bảng chữ cái> Dữ liệu sơ đồ. Tại sao vẽ đồ thị là một bộ lọc? Không trực quan lắm đối với người dùng lần đầu, liên quan: Paraview: Lô dữ liệu từ tệp CSV Tôi chắc chắn rằng đó là một trong những điều có ý nghĩa một khi bạn hiểu những khái quát hơn nữa về những gì bộ lọc có thể làm, nhưng vẫn vậy.
  • Thuộc tính> Áp dụng
  • Không chọn "Sử dụng chỉ mục cho trục X"
  • X Tên mảng: trường 0
  • Tham số loạt loại bỏ trường 0 và trường 2
  • Chọn Trường 1 và:
    • Phong cách dòng: Không
    • Phong cách đánh dấu: Cross
    • Kích thước đánh dấu: tăng hoặc giảm khi cần thiết
  • Biểu tượng "Lựa chọn hình chữ nhật" trên biểu đồ
  • Chọn ngoại lệ (điểm được tô sáng)
  • Thêm một bộ lọc khác vào bộ lọc cốt truyện: "Giải nén lựa chọn"
  • Ứng dụng

Và cuối cùng!!! Tôi nhận được một bảng chỉ chứa ngoại lệ đã chọn và hiển thị giá trị của "Trường 2" là -1:

Hướng dẫn python plot large data set - python vẽ tập dữ liệu lớn

Vì vậy, có, không chính xác là một cuộc đi bộ trong công viên, nhưng cuối cùng tôi đã quản lý.

Một nhược điểm khác là Paraview cảm thấy thiếu các tính năng so với lượt truy cập, ví dụ:

  • Tôi không thể tìm thấy cách đặt màu của phân tán dựa trên cột thứ ba: Cách tô màu các điểm biểu đồ phân tán theo giá trị của cột thứ ba trong paraview như bảng màu gnuplot?

Mayavi 4.6.2

Trang web: https://github.com/enthed/mayavi

Được phát triển bởi:

Install:

0,0,0
1,2,4
2,4,8
3,6,12
4,8,16
7

VTK Python một.

Mayavi dường như rất tập trung vào 3D, tôi không thể tìm thấy cách thực hiện các lô 2D trong đó, vì vậy nó không cắt nó cho trường hợp sử dụng của tôi thật không may.

Tuy nhiên, chỉ để kiểm tra hiệu suất, tôi đã điều chỉnh ví dụ từ: https://docs.enthing.com/mayavi/mayavi/auto/example_scatter_plot.html cho 10 triệu điểm và nó chạy tốt mà không bị trễ:

0,0,0
1,2,4
2,4,8
3,6,12
4,8,16
8

Output:

Hướng dẫn python plot large data set - python vẽ tập dữ liệu lớn

Tuy nhiên, tôi không thể phóng to đủ để nhìn thấy các điểm không liên quan, mặt phẳng 3D gần quá xa. Có lẽ có một cách?

Một điều thú vị về Mayavi là các nhà phát triển đã nỗ lực rất nhiều để cho phép bạn bắn và thiết lập GUI từ một kịch bản Python một cách độc đáo, giống như matplotlib và gnuplot. Có vẻ như điều này cũng có thể xảy ra ở Paraview, nhưng các tài liệu không tốt ít nhất.

Nói chung, nó không phải là một tính năng đầy đủ như visit / paraview. Ví dụ: tôi không thể tải trực tiếp CSV từ GUI: Làm thế nào để tải tệp CSV từ GUI Mayavi?

Gnuplot 5.2.2

Trang web: http://www.gnuplot.info/

Gnuplot thực sự thuận tiện khi tôi cần đi nhanh và bẩn, và đó luôn là điều đầu tiên tôi thử.

Installation:

0,0,0
1,2,4
2,4,8
3,6,12
4,8,16
9

Đối với việc sử dụng không tương tác, nó có thể xử lý tốt 10m điểm hợp lý:

5000000,20000000,-1
0

kết thúc trong 7 giây:

Hướng dẫn python plot large data set - python vẽ tập dữ liệu lớn

Nhưng nếu tôi cố gắng tương tác với

5000000,20000000,-1
1

and:

5000000,20000000,-1
2

Sau đó, kết xuất ban đầu và thu phóng cảm thấy quá chậm chạp. Tôi thậm chí không thể nhìn thấy dòng lựa chọn hình chữ nhật!

Cũng lưu ý rằng đối với trường hợp sử dụng của tôi, tôi cần sử dụng các nhãn siêu văn bản như trong:

5000000,20000000,-1
3

Nhưng có một lỗi hiệu suất với tính năng nhãn bao gồm cho kết xuất không tương tác. Nhưng tôi đã báo cáo và Ethan đã giải quyết nó trong một ngày: https://groups.google.com/forum/#!topic/comp.graphics.apps.gnuplot/qpl8ajii9ze

Tuy nhiên, tôi phải nói rằng có một cách giải quyết hợp lý cho lựa chọn ngoại lệ: chỉ cần thêm nhãn với ID hàng vào tất cả các điểm! Nếu có nhiều điểm gần đó, bạn sẽ không thể đọc nhãn. Nhưng đối với các ngoại lệ mà bạn quan tâm, bạn chỉ có thể! Ví dụ: nếu tôi thêm một ngoại lệ vào dữ liệu gốc của chúng tôi:

5000000,20000000,-1
4

và sửa đổi lệnh cốt truyện thành:

5000000,20000000,-1
5

Điều này làm chậm âm mưu đáng kể (40 phút sau khi sửa chữa được đề cập ở trên !!!), nhưng tạo ra một đầu ra hợp lý:

Hướng dẫn python plot large data set - python vẽ tập dữ liệu lớn

Vì vậy, với một số lọc dữ liệu, cuối cùng chúng tôi sẽ đến đó.

Matplotlib 1.5.1, Numpy 1.11.1, Python 3.6.7

Trang web: https://matplotlib.org/

Matplotlib là những gì tôi thường thử khi tập lệnh gnuplot của tôi bắt đầu trở nên quá điên rồ.

i=0;
while [ "$i" -lt 10000000 ]; do
  echo "$i,$((2 * i)),$((4 * i))"; i=$((i + 1));
done > 10m.csv
1 một mình mất khoảng 10 giây, vì vậy tôi biết điều này sẽ không diễn ra tốt đẹp:

5000000,20000000,-1
6

Đầu tiên, nỗ lực không tương tác đã cho đầu ra tốt, nhưng mất 3 phút và 55 giây ...

Sau đó, một tương tác mất một thời gian dài trên kết xuất ban đầu và trên zoom. Không thể sử dụng được:

Hướng dẫn python plot large data set - python vẽ tập dữ liệu lớn

Lưu ý trên ảnh chụp màn hình này cách lựa chọn zoom, ngay lập tức thu phóng và biến mất trên màn hình trong một thời gian dài trong khi nó chờ tính toán Zoom!

Tôi đã phải bình luận

i=0;
while [ "$i" -lt 10000000 ]; do
  echo "$i,$((2 * i)),$((4 * i))"; i=$((i + 1));
done > 10m.csv
2 để phiên bản tương tác hoạt động vì một số lý do, nếu không nó sẽ nổ tung với:

5000000,20000000,-1
7

Bokeh 1.3.1

https://github.com/bokeh/bokeh

Cài đặt Ubuntu 19.04:

5000000,20000000,-1
8

Sau đó khởi chạy Jupyter:

5000000,20000000,-1
9

Bây giờ nếu tôi vẽ các điểm 1M, mọi thứ hoạt động hoàn hảo, giao diện rất tuyệt vời và nhanh chóng, bao gồm cả zoom và trên thông tin di chuột:

Y

^
|
|
|       +       +
|
|             +
|
|           +
|
|         +
|
|       +
|
|     +
|
|   +
|
| +
|
+-------------------> X
0

Quan điểm ban đầu:

Hướng dẫn python plot large data set - python vẽ tập dữ liệu lớn

Sau khi phóng to:

Hướng dẫn python plot large data set - python vẽ tập dữ liệu lớn

Nếu tôi lên tới 10m mặc dù nó nghẹt thở,

Y

^
|
|
|       +       +
|
|             +
|
|           +
|
|         +
|
|       +
|
|     +
|
|   +
|
| +
|
+-------------------> X
6 cho thấy crom có ​​8 luồng chiếm tất cả bộ nhớ của tôi ở trạng thái IO không tham nhũng.

Điều này hỏi về việc tham khảo các điểm: Cách tham chiếu các điểm dữ liệu Bokeh đã chọn

Pyviz

https://pyviz.org/

TODO đánh giá.

Tích hợp Bokeh + Datashader + các công cụ khác.

Video Demoing 1B DataPoints: https://www.youtube.com/watch?v=K27MJJLJNT4 "Pyviz: Bảng điều khiển để trực quan hóa 1 tỷ datapoints trong 30 dòng Python" bởi "Anaconda, Inc." Xuất bản vào năm 2018-04-17.

SeaBall

https://seaborn.pydata.org/

TODO đánh giá.

Tích hợp Bokeh + Datashader + các công cụ khác.

Biểu đồ nào là tốt nhất cho các bộ dữ liệu lớn?

Các sơ đồ phân tán là tốt nhất để hiển thị phân phối trong các bộ dữ liệu lớn. are best for showing distribution in large data sets.

Gói âm mưu tốt nhất trong Python là gì?

Bài viết này cho thấy 10 thư viện Python hàng đầu để trực quan hóa dữ liệu thường được sử dụng trong những ngày này ...
Matplotlib.....
Âm mưu.....
SeaBall.....
GGPLOT.....
Altair.....
Bokeh.....
Pygal..

Có thể xử lý bao nhiêu điểm matplotlib?

Thú vị.Như câu trả lời của Jonathan Dursi đề cập, 20 triệu điểm có thể đạt được với matplotlib, nhưng với một số ràng buộc (đầu ra raster, Hồi).20 million points is achievable with Matplotlib, but with some constraints (raster output,…).

Matplotlib sử dụng ('agg') là gì?

Cuối cùng, AGG, là một phụ trợ không tương tác chỉ có thể ghi vào các tệp.Nó được sử dụng trên Linux, nếu matplotlib không thể kết nối với màn hình X hoặc màn hình Wayland.a non-interactive backend that can only write to files. It is used on Linux, if Matplotlib cannot connect to either an X display or a Wayland display.