Phần mềm và quy trình làm việc nào được khuyến nghị để xuất bản dữ liệu khoa học và đồ thị?


40

Phần mềm nào cung cấp một quy trình làm việc tốt từ âm mưu đơn giản của một vài biểu dữ liệu cho đến việc tạo ra đồ họa cấp xuất bản với các kiểu chi tiết, sắp chữ toán học và "chất lượng chuyên nghiệp"?

Điều này có một chút liên quan đến câu hỏi của David ( Thuộc tính nào tạo nên chất lượng chuyên nghiệp? ) Nhưng trọng tâm không nằm ở các thuộc tính mà là phần mềm hoặc nói chung quy trình làm việc để đạt được điều đó. Tôi có kinh nghiệm hời hợt với một số chương trình, Gnuplot, Origin, Matplotlib, TikZ / PGFplot, Qtiplot nhưng thực hiện phân tích dữ liệu và số liệu đẹp đồng thời có vẻ khó thực hiện.

Có một số phần mềm cho phép điều này hay tôi chỉ nên đào sâu hơn trong một trong các gói?

Chỉnh sửa: Quy trình làm việc hiện tại của tôi là sự kết hợp của các thành phần khác nhau, ít nhiều hoạt động cùng nhau nhưng tổng cộng nó không thực sự hiệu quả và tôi nghĩ rằng đây là điển hình cho một số nhà khoa học tại phòng thí nghiệm của trường đại học. Thông thường, nó là một chuỗi bắt đầu từ thử nghiệm đến xuất bản như thế này:

  1. Nhận dữ liệu thử nghiệm (thường ở dạng ASCII, nhưng với bố cục khác nhau, ví dụ: tiêu đề, nhận xét, số lượng cột)
  2. Vẽ nhanh dữ liệu để kiểm tra xem có gì sai trong chương trình cốt truyện Origin, Gnuplot hay arcane được viết cách đây 20 năm.
  3. Phân tích chi tiết hơn về dữ liệu: trừ các đóng góp nền, phân tích các phụ thuộc và tương quan, phù hợp với các mô hình lý thuyết. Nhiều nhà khoa học sử dụng Origin cho nhiệm vụ này, một số sử dụng Matlab và Python / Scipy / Numpy đang gia tăng.
  4. Tạo các số liệu chuyên nghiệp, điều này liên quan đến việc điều chỉnh các hướng dẫn tạp chí, sắp chữ toán học và chỉnh sửa chung. Hiện tại tôi sử dụng Origin cho việc này nhưng nó có một số nhược điểm (chỉ cần cố gắng để có được một băng thông chính xác là 0,5pt, điều đó là không thể). Để kết hợp / đánh bóng số liệu, tôi chủ yếu sử dụng Adobe Illustrator, vì nó có thể xử lý nhập / xuất tài liệu PDF một cách độc đáo nhưng tôi không muốn phải trải qua hai bước cho mỗi sơ đồ.

Tôi đã thêm một ví dụ về việc cuối cùng nó trông như thế nào (vì điều này được tạo ra chủ yếu bằng cách thay đổi bằng tay bất cứ điều gì đều gây đau đớn và bất cứ điều gì cung cấp giao diện chẳng hạn để đặt băng thông cho tất cả các yếu tố sẽ tốt đẹp):nhập mô tả hình ảnh ở đây


2
Có lẽ bạn nên làm rõ yêu cầu của bạn. Ở dạng hiện tại, câu hỏi chỉ là thu hút một danh sách lớn các phần mềm. Không ai mô tả rất chi tiết những lợi thế và bất lợi của các hệ thống là gì. Nhìn vào nó, nó sẽ không giúp tôi chọn một. Tất nhiên tất cả các phần mềm máy tính kỹ thuật, MATLAB, Mathematiac, Maple, tất cả các giải pháp dựa trên Python, R, v.v. đều có nhiều công cụ để tạo các ô. Sau đó, có các công cụ GUI như Origin và xmgrace. Cái nào là sự lựa chọn tốt nhất phụ thuộc vào nhu cầu của bạn.
Szabolcs

@Szabolcs: Tôi đồng ý rằng câu hỏi của tôi hơi rộng. Quy trình làm việc của tôi không phải lúc nào cũng giống nhau, vì tôi đang phân tích dữ liệu từ các thử nghiệm khác nhau, do đó tôi đã cố gắng giữ câu hỏi chung chung hơn một chút.
Alexander

Câu trả lời:


31

Nếu bạn có một số kinh nghiệm với Python (hoặc thậm chí là không), tôi khuyên bạn nên sử dụng phần mềm khoa học Python có sẵn ( SciPy , Pandas ), ...) cùng với Matplotlib . Là một môi trường lập trình, bạn có toàn quyền kiểm soát các luồng dữ liệu, thao tác dữ liệu và âm mưu của mình. Bạn cũng có thể sử dụng "ứng dụng đầy đủ" Mayavi2 hoặc Veusz .


14
+1 cho Matplotlib. Ngoài các điểm được đề cập, khả năng sử dụng LaTeX trong các trường văn bản cung cấp cho bạn "sắp chữ toán học" được yêu cầu.
Barron

Bất kỳ đề nghị cho chaco của enth think?
pcr

1
Chaso là siêu tuyệt vời cho cốt truyện tương tác. Một IMHO động vật hoàn toàn khác nhau.
meawoppl

2
Và để biết thêm về Matplotlib, hãy kiểm tra seaborn .
Christian Clason


15

Dựa trên những gì bạn đang nói, một ngôn ngữ kịch bản có mục đích chung có lẽ là lựa chọn tốt nhất của bạn, miễn là nó có khả năng vẽ đồ thị nào đó mà bạn có thể truy cập (dù là tích hợp hay nhập khẩu).

Theo đó, MATLAB sẽ hoạt động, mặc dù bạn sẽ phải chơi đồ chơi với độ rộng đường, ký hiệu và trục cho các ô chất lượng trình bày. Đưa ra các tiêu chí của bạn, tôi muốn nói rằng điểm yếu lớn của MATLAB là sắp chữ toán học chi tiết; MATLAB có thể sử dụng một số nhãn TeX, nhưng có một số lệnh LaTeX không thể xử lý, vì vậy tôi nhớ phải quay lại và cắt và dán một số nhãn LaTeX từ PDF trong Adobe Illustrator.

Python + NumPy sẽ hoạt động để nhập dữ liệu, vì numpy.loadtxtlàm cho việc nhập dữ liệu văn bản không gây đau đớn. Tại thời điểm đó, bạn có thể chọn giữa matplotlib và Gnuplot (có giao diện Python thông qua Gnuplot.py ; không có sự phát triển tích cực nào trên giao diện kể từ năm 2008, nhưng một lần nữa, Gnuplot có thay đổi tất cả nữa không, mặc dù nó vẫn tiếp tục phát hành? ). Trình bao bọc PyAsy của MatthewEmmett cũng có thể hoạt động, tùy thuộc vào những gì bạn muốn làm. Matplotlib có khả năng sắp xếp toán học tuyệt vời (như Barron lưu ý) và thao tác dữ liệu có thể được thực hiện bằng NumPy, SciPy hoặc bất kỳ gói Python nào khác mà bạn muốn ném vào dữ liệu của mình.

Vấn đề tôi gặp phải với gnuplot là nó thực sự được xây dựng chỉ cho âm mưu. Tôi không rõ cách thao túng dữ liệu trong ngôn ngữ kịch bản lệnh gnuplot. Về cơ bản, tôi đã thực hiện tất cả các thao tác dữ liệu của mình trước khi xuất dữ liệu thành văn bản vì tôi không thể tìm ra cách thực hiện khác. Bạn có thể sử dụng gnuplot để đánh giá các công thức và thực hiện một số thao tác, nhưng đối với tôi, Python có cú pháp tự nhiên hơn rất nhiều và có tiện ích chung lớn hơn gnuplot. Tôi không muốn phải học một ngôn ngữ khác chỉ để làm một việc trừ khi đó là ngôn ngữ thực sự tự nhiên, dễ học. (Hoặc trừ khi tôi bị ép buộc.)

Tecplot 360 có một loại vấn đề tương tự. Tecplot 360 tạo ra các cốt truyện tuyệt vời, đặc biệt là 3D. Có một số điều bạn có thể làm với Tecplot 360 bằng cách sử dụng GUI tương đối dễ học mà bạn có thể khó thực hiện trong gói âm mưu khác. Lần cuối cùng tôi sử dụng Tecplot là 6 hoặc 7 năm trước; Rõ ràng, họ đã thêm rất nhiều chức năng kể từ đó. Thao tác dữ liệu có thể được thực hiện thông qua lập chỉ mục, cắt hoặc thiết lập các vùng. Số lượng dẫn xuất có thể được tính bằng các phương trình. Bạn cũng có thể thực hiện Chuyển đổi Fourier của dữ liệu của mình, thực hiện phép nội suy (hoặc phá hoại) và thực hiện một số việc khác. Không rõ làm thế nào để sắp chữ toán học. Tôi đoán bạn có thể hack đầu ra HTML từ Tecplot và thêm MathJax hoặc MathML? Theo tôi, nhược điểm của Tecplot là nó không miễn phí (có nghĩa là như một công cụ, bạn có thể không thể mang nó theo mình từ công việc này sang công việc khác), kiểu sắp xếp toán học iffy và kịch bản thao tác dữ liệu phức tạp đòi hỏi phải học ngôn ngữ macro của Tecplot. Ưu điểm chính là khả năng vẽ đồ thị 3D của nó vượt xa matplotlib và MATLAB bằng một cú sút xa. Có thể bó dữ liệu lô bằng cách sử dụng ngôn ngữ macro / script của Tecplot và gọi các tập lệnh Python bên ngoài (với một số chức năng hạn chế). Ngoài ra, tương tự như MATLAB, có một GUI bạn có thể sử dụng lại nếu bạn không muốn học tập lệnh của Tecplot. (GUI của Tecplot có đầy đủ tính năng hơn MATLAB.) Ưu điểm chính là khả năng vẽ đồ thị 3D của nó vượt xa matplotlib và MATLAB bằng một cú sút xa. Có thể bó dữ liệu lô bằng cách sử dụng ngôn ngữ macro / script của Tecplot và gọi các tập lệnh Python bên ngoài (với một số chức năng hạn chế). Ngoài ra, tương tự như MATLAB, có một GUI bạn có thể sử dụng lại nếu bạn không muốn học tập lệnh của Tecplot. (GUI của Tecplot có đầy đủ tính năng hơn MATLAB.) Ưu điểm chính là khả năng vẽ đồ thị 3D của nó vượt xa matplotlib và MATLAB bằng một cú sút xa. Có thể bó dữ liệu lô bằng cách sử dụng ngôn ngữ macro / script của Tecplot và gọi các tập lệnh Python bên ngoài (với một số chức năng hạn chế). Ngoài ra, tương tự như MATLAB, có một GUI bạn có thể sử dụng lại nếu bạn không muốn học tập lệnh của Tecplot. (GUI của Tecplot có đầy đủ tính năng hơn MATLAB.)

Các công cụ dựa trên LaTeX như TikZ và PGFPlots dường như không được tạo ra cho trường hợp sử dụng của bạn. Điểm yếu ở đây là thao tác dữ liệu; TikZ và PGFPlots là những công cụ LaTeX tuyệt vời. Tôi ước tôi biết làm thế nào để sử dụng chúng tốt hơn. Vì họ là LaTeX, tôi đoán quy trình làm việc đang cắt và dán dữ liệu cần thiết vào LaTeX và vẽ sơ đồ. Bạn có thể thực thi các chương trình bên trong LaTeX, nhưng tôi không thấy khả năng đó nhất thiết phải giúp bạn như thế nào, vì trong bài thuyết trình hoặc tài liệu, trường hợp sử dụng mà bạn mô tả cho thấy có lẽ bạn sẽ chỉ giữ Sản phẩm hoàn thiện. Có lẽ bạn ổn với quy trình làm việc đó; cả hai công cụ này đều có tiếng là được thiết kế tốt và tạo ra những con số chất lượng cao.

Cuối cùng, Adobe Illustrator là một công cụ tốt để chỉnh sửa các lô, như bạn đã nói; những thiếu sót cũng như bạn đã nói, thiếu tính kịch bản hoặc khả năng lặp lại, nhưng không có gì vượt qua được một chương trình chỉnh sửa đồ họa nếu bạn muốn thực hiện các điều chỉnh nhỏ.


1
Tôi chỉ muốn thêm một bình luận nhỏ cho câu trả lời tuyệt vời này. Không cần sử dụng sản phẩm Adobe. Công cụ mã nguồn mở inkscape cũng sẽ cung cấp cho bạn các công cụ tuyệt vời để chạm vào các ô. Kết hợp với plugin LaTeX, nó có thể làm rất tốt.
Azrael3000

10

Tôi nghĩ rằng đây là một câu hỏi xuất sắc, và một câu hỏi luôn đi đầu trong tâm trí của tôi ngay bây giờ. Khi đọc hầu hết các tạp chí toán học, Matlab dường như có thể chấp nhận được, nhưng nó không đo được IMHO với một số sơ đồ và sơ đồ đẹp xuất hiện trong các tạp chí như PNAS, Nature, PLoS ONE, v.v.

Sau khi thảo luận chính xác vấn đề này trong nhóm nghiên cứu của tôi trong vài tuần nay, chúng tôi vẫn chưa đưa ra kết luận thực sự nào về gói nào là tốt nhất. Chúng tôi đã thấy rằng hầu hết các so sánh của phần mềm đồ họa trong tài liệu, blog hoặc các nguồn web khác phần lớn là vô dụng trong việc xác định gói nào là tốt nhất cho một mục đích nhất định.

Tôi nghĩ rằng những gì thực sự sẽ giúp người dùng trung bình không phải là chuyên gia trong tất cả / nhiều gói này là có một tập hợp nhỏ các ví dụ được xác định rõ có thể được sử dụng làm "điểm chuẩn đồ họa" (tương tự ý nghĩa như điểm chuẩn CFD ). Theo tôi biết, không có gì như thế này hiện đang tồn tại.

Tối thiểu, tôi muốn xem:

  1. Một cốt truyện dòng 2D đơn giản hợp lý với một số loại dòng và điểm, chú thích, toán học trong nhãn / tiêu đề, v.v.
  2. Ditto cho một âm mưu bề mặt 3D.
  3. Một cốt truyện 3D phức tạp hơn với các mặt phẳng, mặt phẳng cắt và có lẽ một số tính năng lạ mắt khác.
  4. Một sơ đồ 3D lạ mắt.

Dữ liệu sẽ được cung cấp cho # 1-3 và ảnh hoặc sơ đồ "gốc" cho # 4. Đối với mỗi ví dụ, mã (đầu vào) và hình ảnh (đầu ra) sẽ được đăng. Điều này sẽ cho phép người đọc dễ dàng đánh giá gói nào phù hợp với họ, cả về chất lượng hình ảnh và độ phức tạp của mã.

Kế hoạch của tôi là làm một cái gì đó như thế này trong nhóm của tôi trong những tháng tới cho # 1, 2, 4 và một số lượng nhỏ các gói bao gồm Matlab, pgf / TikZ, python / scipy. Nếu có hứng thú, tôi có thể đăng bài này công khai.

Vì vậy, trong khi đây không phải là một câu trả lời cho câu hỏi gửi ban đầu chưa (và tôi xin lỗi vì điều đó) nó có thể là một câu trả lời trong thời gian vài tháng.


Một điểm chuẩn được đề xuất là một ý tưởng tốt. Tất cả các cách được đề xuất để đạt được sơ đồ cuối cùng rất khó so sánh nếu bạn không bắt đầu từ một tập dữ liệu và yêu cầu cụ thể. Ngoài ra, việc xem mã bằng các ngôn ngữ / gói khác nhau cho phép bạn so sánh mã nào phù hợp hơn với nhu cầu của riêng bạn. Đặc biệt với TikZ tôi có ấn tượng rằng bạn có thể tái tạo hầu hết mọi thứ nhưng điều đó có thể cần một chuyên gia thực sự để làm điều đó.
Alexander

Tôi nghĩ rằng điểm chuẩn là một ý tưởng tốt; Tôi muốn đề xuất cho các ô 2D của bạn rằng bạn sao chép một số các ô trong bộ sưu tập Matplotlib . Mã mẫu đã được cung cấp cho mỗi ví dụ. Đối với các ví dụ 3D, Mayavi có một bộ sưu tập tương tự trong tài liệu của mình và một ví dụ hướng dẫn 3D đẹp . Sao chép một số lô 3D này trong các gói khác cũng có thể hữu ích.
Geoff Oxberry

Bạn đang sử dụng cái gì bây giờ, vài tháng sau? Bạn có nhận xét nào về việc tạo các ô bằng cách hack (tinker với các tùy chọn cốt truyện trong cửa sổ văn bản, cốt truyện, vòng lặp ...) và / hoặc tương tác không?
chối

8

Tôi thường sử dụng gnuplot . Nó có thể khó học, nhưng nó tạo ra những mảnh đất rất sạch sẽ. Nó cũng có thể được thiết lập để tạo ra các ô ở định dạng mô tả đóng gói (.eps) cho phép dễ dàng nhúng vào các tài liệu được viết trong .LATEX


+1 và để có sơ đồ nhanh, hãy thử qtiplot, một bản sao gốc đẹp và cũng có thể thực hiện khớp đường cong. còn đối với bố cục cuối cùng, xfig thực sự rất đẹp (nhưng khó) và có thể nhúng các công thức latex trực tiếp với một chút hack vào chi tiết ...
Karussell

8

Một gói phần mềm khác để xem xét là Asymptote . Asymptote thực sự là một ngôn ngữ lập trình (với cú pháp giống như C ++) tạo ra đầu ra dựa trên vector. Một tính năng hay là văn bản được hiển thị bằng LaTeX (bao gồm các phương trình toán học), vì vậy văn bản trong các hình của bạn phù hợp với tài liệu của bạn.

Tôi đã viết một trình bao bọc Python cho Asymptote được gọi là PyAsy để tôi có thể chuyển các mảng NumPy cho công cụ Asymptote và thực hiện một số âm mưu cơ bản. Nó khá thô và không có tính năng đầy đủ, nhưng nó có thể hữu ích.

Dù sao, chất lượng đầu ra của Asymptote thực sự tốt đẹp.

Chỉnh sửa: Ngoài ra, tôi đã thấy Fabric rất hữu ích để khởi chạy các công việc từ xa, đồng bộ hóa thư mục và xây dựng nhị phân, tìm nạp dữ liệu chạy và / hoặc khởi chạy các tập lệnh phân tích từ xa. Đây là một thư viện Python khá nhẹ giúp cho việc chạy các lệnh từ xa dễ dàng hơn một chút (và có thể viết được script).


8

Hãy để tôi viết một bài đánh giá ngắn về chức năng đồ họa của Mathematica, vì đó là những gì tôi quen thuộc.

Nó có thể làm gì?

Để xem một số ví dụ, hãy xem bộ sưu tập mã Mathicala trên trang web Wolfram. Nó không đặc biệt về trực quan hóa, nhưng hầu như tất cả các ví dụ bao gồm một số âm mưu.

Bạn cũng có thể duyệt các thẻ vẽ sơ đồ (cơ bản) và đồ họa (nâng cao hơn) của Mathematica.SE

Có thể tạo hình ảnh ví dụ của bạn theo cách hoàn toàn tự động (không cần xử lý hậu kỳ thủ công).

Điểm mạnh

  • Tất cả đồ họa được chỉ định theo cách khai báo (như SVG --- bạn không yêu cầu hệ thống vẽ một cái gì đó, bạn chỉ liệt kê các đối tượng đồ họa vector). Đồ họa là loại biểu thức Mathicala giống như mọi thứ khác trong hệ thống, chúng chỉ được hiển thị theo một cách đặc biệt. Điều này có nghĩa là đồ họa có thể dễ dàng chuyển đổi và xử lý sau khi chúng được tạo --- điều này cũng áp dụng cho đồ họa được tạo bởi các chức năng vẽ đồ thị.

  • Cách nhanh chóng và đơn giản để tạo đồ họa là sử dụng các chức năng vẽ đồ thị cấp cao và đặt nhiều tùy chọn để tùy chỉnh đầu ra của chúng. Nếu không có chức năng cho cốt truyện chính xác mà bạn cần, bạn có thể lắp ráp đồ họa từ các nguyên thủy đồ họa (cũng khá dễ dàng ).

  • Chức năng toán học vẽ đồ thị là tuyệt vời. theo như tôi biết đó là lớp học hàng đầu. Các mẫu toán học có chức năng thích ứng (cả ở dạng 2D và 3D) để có thể tạo ra một âm mưu mượt mà một cách nhanh chóng và tự động. Điểm kỳ dị, không liên tục, vv được phát hiện một cách tượng trưng bằng cách vẽ các hàm.

  • Bạn có thể tạo số liệu cho một kích thước in cụ thể và đảm bảo rằng chúng phù hợp với văn bản xung quanh trong một ấn phẩm (ví dụ: kích thước phông chữ và kiểu phù hợp). Trong 2D, có hai loại tọa độ: tọa độ lô tương ứng với dữ liệu của bạn và tọa độ tuyệt đối được chỉ định trong các điểm của máy in. Tỷ lệ trước khi thay đổi kích thước đồ họa, cái sau không. Văn bản sử dụng tọa độ tuyệt đối theo mặc định, điều đó có nghĩa là loại 8 điểm sẽ là 8 điểm bất kể con số tương tự được xuất ở kích thước 7 cm hay 14 cm. Điều này làm cho nó có thể có kích thước phông chữ phù hợp với văn bản trong ấn phẩm.

  • Sắp chữ dựng sẵn cho các công thức toán học. Các Matex gói của bên thứ ba cung cấp LaTeX tích hợp cho tuyệt vời sắp chữ công thức chất lượng. (Tiết lộ: Tôi là tác giả.)

  • Bạn có thể thực hiện tất cả các xử lý dữ liệu trong cùng một hệ thống. Nói chung, với một chút công việc, quy trình tạo hình đầy đủ có thể được tự động hóa (thậm chí một số khía cạnh nâng cao ), tránh sự cần thiết phải xử lý bài thủ công trong phần mềm như Adobe Illustrator. Điều này rất quan trọng khi vào phút cuối bạn phát hiện ra một số vấn đề nhỏ và cần tạo lại hình.

Những điểm yếu

  • Có các số liệu với một số ô con có một số căn chỉnh chính xác giữa các hệ tọa độ của các ô con có thể khó khăn.

    Gói SciDraw (bên thứ ba) sửa lỗi này và cho phép kiểm soát chi tiết mọi khía cạnh của hình. Sự đánh đổi của gói này là cần nhiều nỗ lực hơn để thiết lập số liệu.

  • Đồ họa 3D không xuất tốt sang các định dạng vector. Xuất một phiên bản bitmap là tốt mặc dù.

  • Nếu tổ chức của bạn chưa có giấy phép, nó sẽ tốn tiền.



5

Tìm hiểu sâu hơn về các lô PGF:

1) có thể làm sơ đồ 3d: python-matplotlib không thể làm chúng, gnuplot là xấu so với

2) có phông chữ phù hợp về kích thướchọ với tài liệu cơ sở)

3) có thể được tạo khuôn mẫu cho các màu sắc cụ thể

Không có gì khác giống như nó trên thị trường. :)


1
matplotlib có một tiện ích đồ họa 3d. Nó hơi yếu, nhưng chắc chắn hoạt động tốt để hình dung nhanh.
meawoppl

Chắc chắn là +1. Khi nói đến các lô chất lượng xuất bản, không có gì có thể đánh bại nó. Trình cắm không biết xấu hổ: một câu hỏi và câu trả lời của tôi trên pgfplots trên TeX.sx: tex.stackexchange.com/search?q=user:9043+[pgfplots] . Xem thêm texample.net/tikz/examples/pgfplots để biết ví dụ và hướng dẫn sử dụng rất toàn diện .
qubyte

Với các lô PGF tôi chỉ gặp vấn đề là bạn không thể cho rằng các nhà xuất bản hỗ trợ nó. Bạn sẽ làm gì sau đó nếu quy trình làm việc của bạn phụ thuộc vào nó? Tôi đã từng kết thúc bằng cách sắp xếp các số liệu đầu tiên và sau đó bao gồm đầu ra kết quả cho tệp chính không phụ thuộc vào lô PGF nữa mà không thực sự tiện lợi. Có cách nào thông minh hơn không?
Christian Waluga

1
@ChristianWaluga: bạn có thể sử dụng lớp "độc lập" - điều này cho phép bạn tạo hình ảnh PDF / EPS bằng hình ảnh PGF mà bạn đã chuẩn bị cho bài viết. Sau đó, bạn có thể chèn tệp PDF vào văn bản bài viết gốc bằng bao gồm.
tmaric

4

Tôi thấy Tecplot khá mạnh khi nói đến trực quan hóa dữ liệu và thao tác dữ liệu.


4
Điều gì về Tecplot làm cho nó rất mạnh mẽ? Những tính năng nào bạn thấy đặc biệt hữu ích?
Paul

4

Tôi sẽ cố gắng cung cấp cho bạn quan điểm của tôi về trải nghiệm hạn chế của tôi, chỉ bao gồm một số loại ô: sơ đồ dữ liệu 2D, biểu đồ phân tán và sơ đồ dựa trên biểu đồ (cây và biểu đồ, sơ đồ); nhưng trước tiên cho phép tôi đi chệch khỏi câu hỏi một chút:

Đầu tiên, tôi muốn nói rằng tầm quan trọng của việc sản xuất các lô chất lượng cao thường bị bỏ qua. Các sơ đồ không chỉ để hiển thị dữ liệu mà nếu được sử dụng hiệu quả, chúng có thể truyền đạt các ý tưởng phức tạp thường không thể được thể hiện rõ ràng bằng văn bản. Dường như với tôi rằng đây không phải là nơi thích hợp để thảo luận về những gì cấu thành, lợi ích và nhược điểm của một cốt truyện hay nhưng nếu quan tâm hãy xem ở đây .

Thứ hai, tôi thường hối hận hơn khi sử dụng một nửa cốt truyện hơn là dành thời gian cho một cốt truyện chất lượng cao. Lý do là một âm mưu xấu có thể nói dối bạn, ví dụ, nếu sử dụng một âm mưu nửa vời để xem nhanh dữ liệu mà bạn có thể không được chuẩn hóa đúng cách hoặc bằng cách sử dụng các âm mưu không tốt để so sánh trực quan (mắt thường có thể rất tha thứ hoặc rất sai lệch). Vì vậy, tôi luôn khuyên bạn nên chuẩn bị các lô như thể chúng sẽ được hiển thị cho một người không quen thuộc với kết quả. Điều này có thể giúp bạn tiết kiệm thời gian và cải thiện công việc của bạn. Ngoài ra, bạn có thêm lợi ích rằng tài liệu thuyết trình sẽ sẵn sàng cho bài thuyết trình / hội thảo / bài tiếp theo.

Bây giờ để trả lời câu hỏi ,

Theo kinh nghiệm của tôi, tốt hơn hết là tách biệt xử lý dữ liệu khỏi công cụ vẽ thực tế và các công cụ xử lý hình ảnh. Để xử lý dữ liệu tôi sử dụng python vì nó rất linh hoạt và tôi không tìm thấy định dạng tệp nào có thể dễ dàng xử lý thông qua python. Hơn nữa, các thư viện numpy và scipy có thể là công cụ thao tác mạnh mẽ cho dữ liệu số.

Trong python tôi chưa thấy một công cụ vẽ biểu đồ nào cho phép bạn kiểm soát tất cả các chi tiết định dạng. Tôi đã thấy rằng đó là chi tiết tạo ra sự khác biệt lớn khi bạn cố gắng tích hợp hình ảnh trong khi định dạng một tờ giấy bằng latex. Ví dụ, việc kiểm soát khoảng trắng và tỷ lệ các ô xung quanh có thể là vấn đề đau đầu với matplotlib (không phải là không thể nhưng không đáng để tôi dành thời gian), điều này rất quan trọng nếu bạn có không gian hạn chế vì nó thường xảy ra trong tạp chí và hội nghị giấy tờ.

Theo kinh nghiệm của tôi, tôi đã thấy rằng GNUPLOT là công cụ tốt nhất để định dạng và tạo ra các sơ đồ và biểu đồ 2D. Nó rất nhiều cho phép bạn kiểm soát tất cả các chi tiết của cốt truyện của bạn. Và bạn có thể tạo ra các ô chất lượng cao (hình ảnh vector) bằng màu đen trắng hoặc màu. Mức độ kiểm soát cao làm cho GNUPLOT khó học hơn một chút và đôi khi những điều đơn giản có thể mất một chút công việc nhưng nếu bạn bắt đầu từ một ví dụ, nó có thể đơn giản hóa mọi thứ. Tôi thường nhìn vào hai trang web này để tìm cảm hứng, xem trang web không thường gặp hoặc các bản demo chính thức tại đây .

Đôi khi, các lô do GNUPLOT tạo ra có thể khá lớn (trong phạm vi MB) và tạp chí có thể từ chối các tệp (điều này xảy ra với tôi với một số phân tán rất sặc sỡ). Tôi đã sử dụng và tôi khuyên dùng Imagemagick , một công cụ dòng lệnh cho phép bạn chuyển đổi, chỉnh sửa và nén hình ảnh (Tôi đã sử dụng nó để tạo và chỉnh sửa jpeg chất lượng cao trong khi giảm đáng kể kích thước tệp). Tôi đã thử các công cụ khác sử dụng nén dữ liệu tự động, điều này tỏ ra đặc biệt có vấn đề do sự cân bằng tinh tế giữa tạo tác hình ảnh và nén.

Tôi cũng đã tạo ra một phần sơ đồ hợp lý (thường cho các bài thuyết trình). Tôi thấy rằng nếu tôi sẽ sử dụng sơ đồ một lần (không phải là giấy) thì ứng dụng Keynote (OSX) và lưu vào pdf là đủ tốt. Tuy nhiên, khi một hình ảnh được sử dụng nhiều lần, chất lượng trình bày quan trọng hơn và TikZ là công cụ ưa thích của tôi. Tôi thấy TikZ hơi khó sử dụng nhưng nếu bạn bắt đầu từ một ví dụ thì nó dễ hơn nhiều.

Cuối cùng, tôi thực hiện hầu hết công việc của mình từ dòng lệnh để tích hợp các công cụ khác nhau mà tôi sử dụng với bash hoặc python.


3

Phiếu bầu nhanh của tôi là cho QtiPlot.

Mặc dù nó không hoàn hảo, nhưng nó cung cấp sự kết hợp tốt nhất của tính dễ sử dụng GUI, cùng với kịch bản python, vì vậy những gì bạn thực sự đang làm là "Qtiplot / Python / (Illustrator hoặc Inkscape)". Qtiplot có thể mở rộng, vì vậy bạn có thể tạo các tập lệnh / macro của riêng mình, có thể chạy các lệnh python để mở và xử lý dữ liệu và sau đó đổ chúng vào một bảng. Sau đó, bạn có thể tự tay hoặc tự động vẽ chúng. Cũng có thể định cấu hình nó để hoạt động với kiểu sắp chữ LaTeX với trình sắp chữ có sẵn trên internet hoặc trình sắp chữ cục bộ, do đó bạn có thể đặt các công thức toán học trong tiêu đề / trục / đánh dấu cốt truyện của mình.

Các lô sau đó có thể được xuất sang bất kỳ định dạng nào bạn muốn, nhưng định dạng hoạt động tốt nhất chắc chắn là SVG. Các tệp SVG có thể được đưa lên trong inkscape nếu bạn muốn, cũng có khả năng sắp chữ LaTeX.

Trong khi MatPlotLib là tuyệt vời, nhược điểm lớn nhất của nó là phải viết mã hoàn toàn mọi thứ (giống như bất kỳ giải pháp vẽ kịch bản nào). QtiPlot là tuyệt vời vì bạn có thể kịch bản / tự động hóa xử lý dữ liệu và vẽ tất cả với chức năng Python tuyệt vời, và sau đó chuyển một âm mưu cắt thô cho một gui cho phép bạn điều chỉnh nó bằng tay và thực hiện tất cả các loại cắt / dán / thao tác gui đó là nhanh hơn nhiều trên cơ sở từng trường hợp để phân tích dữ liệu. Bạn cũng có thể đặt chính xác kích thước với tập lệnh và cũng có thể thao tác kích thước với GUI, điều bạn không thể làm với matplotlib.

Tôi cho rằng nó phụ thuộc vào cách bạn cảm nhận về các giải pháp âm mưu của QtiPlot. Tôi đã tìm thấy nó rất có khả năng, nhưng tất cả đều là một đường cong học tập khá dốc.


3

Tôi ngạc nhiên không ai đã đề cập đến các công cụ tuyệt vời của Nico Schlömer matlab2tikzmatplotlib2tikz . Nếu bạn đang sử dụng LaTeX để chuẩn bị tài liệu và Matlab hoặc Python để xử lý dữ liệu, bạn có thể dễ dàng có được các lô vector chất lượng cao mà bạn có thể đăng quá trình lên nội dung trái tim của mình:

  1. Chuẩn bị các ô của bạn trong Matlab hoặc Python, bao gồm các trục, nhãn, truyền thuyết, v.v. Đừng lo lắng về định dạng TeX.
  2. Gọi matlab2tikz('figure.tex')(hoặc matplotlib2tikz).
  3. Chỉnh sửa figure.textheo sở thích (thay thế văn bản nhãn bằng toán học phù hợp, thay đổi màu sắc, độ rộng đường, vị trí chú thích, kiểu trục, v.v.), xem hướng dẫn pgfplots (hoặc nhiều câu hỏi về pgfplots trên TeX stackexchange).
  4. Trong hình của bạn, thay vì includegraphics, đặt \input{figure.tex}(và đừng quên đưa \usepackage{pgfplots}vào phần mở đầu).
  5. Để gửi, sử dụng thư viện bên ngoài (xem chương 7 của hướng dẫn) để nướng hình của bạn thành pdf và chỉ cần thay thế \input{figure.tex}bằng \includegraphics{figure.pdf}.

2

Nếu bạn không tìm kiếm kịch bản, hãy xem MagicPlot. Nó không quá giàu tính năng như Origin (ví dụ: chỉ có thể tạo ra các ô 2D) nhưng tôi chưa bao giờ gặp vấn đề với độ rộng dòng và các thuộc tính khác. Cốt truyện được khử răng cưa đẹp mặc dù vẽ lại là đủ nhanh. Cộng với sự phù hợp hữu ích.


0

Tecplot 360 tốt cho việc xử lý dữ liệu lớn và tạo ra các lô chất lượng xuất bản. Nó có các giao diện bổ trợ và kịch bản mạnh mẽ để xử lý dữ liệu. Tôi nhận thấy rằng nó làm mọi thứ bạn cần để xử lý hậu kỳ.

Một lỗi phổ biến là sử dụng Excel. Không. Nó không nhớ bố cục, phạm vi X, bản đồ màu. Nó không hoạt hình. Nó sử dụng bảng tính cồng kềnh xấu xí để làm việc với dữ liệu.

Tất nhiên, bạn sẽ không tìm thấy một công cụ xử lý hậu kỳ và chỉnh sửa văn bản, và chọn một trình soạn thảo văn bản hợp lý cho các ấn phẩm của bạn là một câu hỏi quan trọng khác. Đừng sử dụng MS Word, trình quản lý trích dẫn của nó rất tệ. Tôi sử dụng LyX hoặc bất kỳ công cụ latex nào khác có sẵn cho hệ điều hành tôi đang sử dụng.

Ồ, và khi bạn phải xuất bản PDF, hãy bao gồm một liên kết đến LaTeX, Word hoặc bất kỳ định dạng nào với toán học có thể đọc được. Trong PDF, nó không phải là.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.