Perangkat lunak dan alur kerja mana yang direkomendasikan untuk publikasi data ilmiah dan grafik?

40

Perangkat lunak mana yang menyediakan alur kerja yang baik dari memplot sederhana beberapa titik data hingga pembuatan grafik tingkat publikasi dengan gaya terperinci, penyusunan huruf matematika dan "kualitas profesional"?

Ini sedikit terkait dengan pertanyaan David ( Atribut apa yang membuat kualitas figur profesional? ) Tetapi fokusnya bukan pada atribut tetapi pada perangkat lunak atau umum alur kerja untuk sampai ke sana. Saya memiliki pengalaman yang dangkal dengan sejumlah program, Gnuplot, Origin, Matplotlib, TikZ / PGFplot, Qtiplot tetapi melakukan analisis data dan angka-angka yang bagus pada saat yang sama tampaknya agak sulit dilakukan.

Apakah ada beberapa perangkat lunak yang memungkinkan ini atau haruskah saya menggali lebih dalam di salah satu paket?

Sunting: Alur kerja saya saat ini adalah campuran dari berbagai komponen, yang lebih atau kurang bekerja bersama tetapi secara total tidak benar-benar efisien dan saya pikir ini adalah khas untuk sejumlah ilmuwan di laboratorium universitas. Biasanya ini adalah rantai mulai dari percobaan ke publikasi seperti ini:

  1. Dapatkan data eksperimental (biasanya dalam bentuk ASCII, tetapi dengan tata letak yang berbeda, misalnya tajuk, komentar, jumlah kolom)
  2. Plot cepat data untuk memeriksa apakah tidak ada yang salah dalam program Origin, Gnuplot atau arcane plot yang ditulis 20 tahun yang lalu.
  3. Analisis data yang lebih rinci: mengurangi kontribusi latar belakang, menganalisis dependensi dan korelasi, sesuai dengan model teoritis. Banyak ilmuwan menggunakan Origin untuk tugas ini, beberapa penggunaan Matlab dan Python / Scipy / Numpy semakin meningkat.
  4. Menciptakan angka profesional, ini melibatkan penyesuaian dengan pedoman jurnal, penyusunan huruf matematika dan pengeditan umum. Saat ini saya menggunakan Origin untuk ini tetapi ia memiliki beberapa kelemahan (hanya mencoba untuk mendapatkan linewidth dengan tepat 0.5pt, itu tidak mungkin). Untuk menggabungkan / memoles angka saya terutama menggunakan Adobe Illustrator, karena dapat menangani im- / ekspor dokumen PDF dengan baik tapi saya lebih suka tidak harus melalui dua langkah untuk setiap diagram.

Saya menambahkan contoh bagaimana pada akhirnya (karena ini sebagian besar dibuat dengan tangan mengubah sesuatu itu menyakitkan dan apa pun yang menyediakan antarmuka misalnya untuk mengatur linewidth untuk semua elemen akan menyenangkan):masukkan deskripsi gambar di sini

Alexander
sumber
2
Mungkin Anda harus mengklarifikasi persyaratan Anda. Dalam bentuknya saat ini, pertanyaannya hanya menarik sejumlah besar perangkat lunak. Tidak ada yang menjelaskan dengan sangat terperinci apa kelebihan dan kekurangan sistem tersebut. Melihat itu, tidak akan membantu saya memilih satu. Tentu saja semua perangkat lunak komputasi teknis, MATLAB, Mathematiac, Maple, semua solusi berbasis Python, R, dll. Memiliki banyak alat untuk membuat plot. Lalu ada alat GUI seperti Origin dan xmgrace. Pilihan mana yang terbaik tergantung pada kebutuhan Anda.
Szabolcs
@Szabolcs: Saya setuju bahwa pertanyaan saya agak luas. Alur kerja saya tidak selalu sama, karena saya menganalisis data dari eksperimen yang berbeda, oleh karena itu saya mencoba untuk menjaga pertanyaannya menjadi sedikit lebih umum.
Alexander

Jawaban:

31

Jika Anda memiliki pengalaman dengan Python (atau bahkan tidak), saya akan merekomendasikan menggunakan perangkat lunak ilmiah Python yang tersedia ( SciPy , Pandas ), ...) bersama dengan Matplotlib . Menjadi lingkungan pemrograman, Anda memiliki kontrol penuh atas aliran data Anda, manipulasi data, dan perencanaan. Anda juga dapat menggunakan "aplikasi lengkap" Mayavi2 atau Veusz .

GertVdE
sumber
14
+1 untuk Matplotlib. Selain poin yang disebutkan, kemampuan untuk menggunakan LaTeX di bidang teks memberi Anda "pengaturan huruf matematika" yang diminta.
Barron
ada rekomendasi untuk chaco enthought?
pcr
1
Chaso sangat luar biasa untuk plot interaktif. IMHO hewan yang sama sekali berbeda.
meawoppl
2
Dan untuk prettifikasi instan Matplotlib, lihat seaborn .
Christian Clason
1
Atau prettyplotlib
GertVdE
15

Berdasarkan apa yang Anda katakan, bahasa scripting tujuan umum mungkin adalah taruhan terbaik Anda, asalkan memiliki semacam kemampuan grafik yang dapat Anda akses (baik bawaan atau impor).

Dalam nada itu, MATLAB akan berfungsi, meskipun Anda harus bermain-main dengan lebar garis, simbol, dan sumbu untuk plot berkualitas presentasi. Mengingat kriteria Anda, saya akan mengatakan kelemahan besar MATLAB adalah penyusunan huruf matematis terperinci; MATLAB dapat menggunakan beberapa label TeX, tetapi ada beberapa perintah LaTeX yang tidak dapat ditangani, jadi saya ingat harus kembali dan memotong-rekatkan beberapa label LaTeX dari PDF di Adobe Illustrator.

Python + NumPy akan bekerja untuk impor data, karena numpy.loadtxtmembuat impor data teks tidak menyakitkan. Pada titik itu, Anda dapat memilih antara matplotlib dan Gnuplot (yang memiliki antarmuka Python melalui Gnuplot.py ; tidak ada pengembangan aktif pada antarmuka sejak 2008, tetapi sekali lagi, apakah Gnuplot mengubah semua itu lagi, meskipun ia terus menambahkan rilis? ). Pembungkus PyAsy MatthewEmmett juga bisa berfungsi, tergantung pada apa yang ingin Anda lakukan. Matplotlib memiliki pengaturan huruf matematika yang hebat (seperti dicatat oleh Barron), dan manipulasi data dapat dilakukan menggunakan NumPy, SciPy, atau paket Python apa pun yang ingin Anda lemparkan ke data Anda.

Masalah yang saya miliki dengan gnuplot sendiri adalah bahwa ia benar-benar dibuat untuk memplot saja. Bagi saya tidak jelas bagaimana memanipulasi data dalam bahasa skrip gnuplot. Saya pada dasarnya melakukan semua manipulasi data saya sebelumnya sebelum saya output ke teks karena saya tidak tahu bagaimana melakukannya. Anda dapat menggunakan gnuplot untuk mengevaluasi rumus, dan melakukan beberapa manipulasi, tetapi bagi saya, Python memiliki lebih banyak sintaksis alami, dan utilitas umum yang lebih besar daripada gnuplot. Saya tidak ingin harus belajar bahasa lain hanya untuk melakukan satu hal kecuali itu bahasa yang benar-benar alami, mudah dipelajari. (Atau kecuali aku terpaksa.)

Tecplot 360 memiliki masalah serupa. Tecplot 360 menghasilkan plot luar biasa, terutama dalam 3D. Ada beberapa hal yang dapat Anda lakukan dengan Tecplot 360 menggunakan GUI yang relatif mudah dipelajari sehingga Anda mungkin akan kesulitan melakukannya dalam paket plot lain. Terakhir kali saya menggunakan Tecplot adalah 6 atau 7 tahun yang lalu; rupanya, mereka telah menambahkan banyak fungsi sejak itu. Manipulasi data dapat dilakukan melalui pengindeksan, pemotongan, atau penetapan zona. Jumlah yang diturunkan dapat dihitung menggunakan persamaan. Anda juga dapat mengambil Transformasi Fourier data Anda, melakukan interpolasi (atau kriging), dan melakukan sejumlah hal lainnya. Tidak jelas bagaimana melakukan pengaturan huruf matematika. Saya kira Anda bisa meretas output HTML dari Tecplot dan menambahkan MathJax atau MathML? Kerugiannya, dalam pikiran saya, mengenai Tecplot adalah bahwa itu tidak gratis (yang berarti bahwa sebagai alat, Anda mungkin tidak dapat membawanya dari satu pekerjaan ke pekerjaan lain), penyusunan huruf matematika yang rapuh, dan bahwa skrip manipulasi data yang rumit membutuhkan pembelajaran bahasa makro Tecplot. Keuntungan utama adalah bahwa kemampuan merencanakan 3D melampaui matplotlib dan MATLAB dengan tembakan panjang. Mungkin untuk mengelompokkan data plot menggunakan bahasa makro / scripting Tecplot, dan untuk memanggil skrip Python eksternal (dengan beberapa fungsi terbatas). Juga, mirip dengan MATLAB, ada GUI yang bisa Anda gunakan jika Anda tidak ingin mempelajari skrip Tecplot. (GUI Tecplot jauh lebih berfitur lengkap daripada MATLAB.) Keuntungan utama adalah bahwa kemampuan merencanakan 3D melampaui matplotlib dan MATLAB dengan tembakan panjang. Mungkin untuk mengelompokkan data plot menggunakan bahasa makro / scripting Tecplot, dan untuk memanggil skrip Python eksternal (dengan beberapa fungsi terbatas). Juga, mirip dengan MATLAB, ada GUI yang bisa Anda gunakan jika Anda tidak ingin mempelajari skrip Tecplot. (GUI Tecplot jauh lebih berfitur lengkap daripada MATLAB.) Keuntungan utama adalah bahwa kemampuan merencanakan 3D melampaui matplotlib dan MATLAB dengan tembakan panjang. Mungkin untuk mengelompokkan data plot menggunakan bahasa makro / scripting Tecplot, dan untuk memanggil skrip Python eksternal (dengan beberapa fungsi terbatas). Juga, mirip dengan MATLAB, ada GUI yang bisa Anda gunakan jika Anda tidak ingin mempelajari skrip Tecplot. (GUI Tecplot jauh lebih berfitur lengkap daripada MATLAB.)

Alat berbasis LaTeX seperti TikZ dan PGFPlots tampaknya tidak dibuat untuk use case Anda. Titik lemah di sini adalah manipulasi data; TikZ dan PGFPlots adalah alat LaTeX yang hebat. Saya berharap saya tahu cara menggunakannya dengan lebih baik. Karena mereka LaTeX, saya menduga alur kerjanya memotong dan menempelkan data yang diperlukan ke LaTeX dan memplotnya. Dimungkinkan untuk menjalankan program di dalam LaTeX, tetapi saya tidak melihat bagaimana kemampuan itu akan selalu membantu Anda, mengingat bahwa, untuk presentasi atau dokumen, use case yang Anda gambarkan menunjukkan bahwa Anda mungkin hanya akan mempertahankan produk jadi. Mungkin Anda baik-baik saja dengan alur kerja itu; kedua alat ini memiliki reputasi sebagai insinyur yang baik dan menghasilkan angka-angka berkualitas tinggi.

Akhirnya, Adobe Illustrator adalah alat yang bagus untuk menyentuh plot, seperti yang Anda katakan; kekurangannya juga, seperti yang Anda katakan, kurangnya scriptability atau repeatability, tetapi tidak ada yang mengalahkan program pengeditan grafis jika Anda ingin membuat tweak kecil.

Geoff Oxberry
sumber
1
Saya hanya ingin menambahkan komentar kecil untuk jawaban yang bagus ini. Tidak perlu menggunakan produk Adobe. Alat open-source inkscape juga akan memberi Anda alat yang hebat untuk menyentuh plot. Dalam kombinasi dengan plugin LaTeX, itu dapat melakukan pekerjaan dengan baik.
Azrael3000
10

Saya pikir ini adalah pertanyaan yang sangat bagus, dan satu yang berada di garis depan pikiran saya sendiri sekarang. Saat membaca sebagian besar jurnal matematika-ish, Matlab tampaknya dapat diterima, tetapi itu tidak mengukur IMHO untuk beberapa plot dan diagram indah yang muncul di jurnal seperti PNAS, Nature, PLoS ONE, dll.

Setelah membahas dengan tepat masalah ini dalam kelompok riset saya selama beberapa minggu sekarang, kami belum menemukan kesimpulan nyata tentang paket mana yang terbaik. Kami telah menemukan bahwa sebagian besar perbandingan perangkat lunak grafis dalam dokumentasi, blog atau sumber web lainnya sebagian besar tidak berguna dalam menentukan paket mana yang terbaik untuk tujuan tertentu.

Saya pikir apa yang benar-benar akan membantu pengguna rata-rata yang bukan ahli dalam semua / banyak dari paket-paket ini adalah memiliki satu set kecil contoh yang sangat jelas yang dapat digunakan sebagai semacam "tolok ukur grafis" (sejenisnya) akal sebagai tolok ukur CFD ). Sejauh yang saya tahu, saat ini tidak ada yang seperti ini.

Minimal, saya ingin melihat:

  1. Plot garis 2D yang cukup mudah dengan beberapa jenis garis dan titik, legenda, matematika pada label / judul, dll.
  2. Ditto untuk plot permukaan 3D.
  3. Plot 3D yang lebih canggih dengan isosurfaces, cutting plane, dan mungkin beberapa fitur mewah lainnya.
  4. Diagram 3D yang mewah.

Data akan diberikan untuk # 1-3, dan foto atau diagram "asli" untuk # 4. Untuk setiap contoh, kode (input) dan gambar (output) akan diposting. Ini akan memungkinkan pembaca untuk lebih mudah menilai paket mana yang tepat untuk mereka, baik dari segi kualitas gambar dan kompleksitas kode.

Rencana saya adalah melakukan sesuatu seperti ini di grup saya selama beberapa bulan mendatang untuk # 1, 2, 4 dan sejumlah kecil paket termasuk Matlab, pgf / TikZ, python / scipy. Jika ada minat, saya bisa memposting ini secara publik.

Jadi sementara ini bukan jawaban untuk pertanyaan awalnya diumumkan belum (dan saya minta maaf untuk itu) bisa menjadi jawaban dalam waktu beberapa bulan.

John Stockie
sumber
Tolok ukur yang disarankan seperti itu adalah ide yang bagus. Semua cara yang disarankan untuk mencapai diagram akhir sulit untuk dibandingkan jika Anda tidak memulai dari dataset dan persyaratan yang diberikan. Selain itu melihat kode dalam berbagai bahasa / paket memungkinkan Anda untuk membandingkan mana yang lebih sesuai dengan kebutuhan Anda. Khususnya dengan TikZ saya memiliki kesan bahwa Anda dapat mereproduksi hampir semua hal tetapi mungkin perlu ahli yang nyata untuk melakukannya.
Alexander
Saya pikir tolok ukur adalah ide yang bagus; Saya akan menyarankan untuk plot 2D Anda agar Anda meniru beberapa plot di galeri Matplotlib . Kode sampel sudah disediakan untuk setiap contoh. Sebagai contoh 3D, Mayavi memiliki galeri serupa dalam dokumentasinya, dan contoh tutorial 3D yang bagus . Mereplikasi beberapa plot 3D ini dalam paket lain mungkin juga berguna.
Geoff Oxberry
Apa yang Anda gunakan sekarang, beberapa bulan kemudian? Adakah komentar untuk membuat plot dengan meretas (mengotak-atik opsi plot di jendela teks, plot, loop ...) dan / atau secara interaktif?
denis
8

LATEX

Dan
sumber
+1 dan untuk plot cepat coba qtiplot yang merupakan klon asal yang bagus dan dapat melakukan fitting curve juga. juga untuk tata letak akhirnya xfig benar-benar bagus (tapi sulit) dan dapat menanamkan rumus lateks langsung dengan sedikit peretasan ke dalam detail ...
Karussell
8

Paket perangkat lunak lain yang perlu dipertimbangkan adalah Asymptote . Asymptote sebenarnya adalah bahasa pemrograman (dengan sintaksis seperti C ++) yang menghasilkan keluaran berbasis vektor. Salah satu fitur yang bagus adalah teks dirender dengan LaTeX (termasuk persamaan matematika), sehingga teks dalam gambar Anda konsisten dengan dokumen Anda.

Saya menulis pembungkus Python untuk Asymptote bernama PyAsy sehingga saya bisa meneruskan array NumPy ke mesin Asymptote dan melakukan beberapa plot dasar. Ini cukup kasar dan fitur tidak lengkap, tetapi mungkin membantu.

Bagaimanapun, kualitas output dari Asymptote sangat bagus.

Sunting: Lebih jauh ke atas, saya telah menemukan Fabric sangat membantu untuk meluncurkan pekerjaan jarak jauh, menyinkronkan direktori dan membangun binari, mengambil data yang dijalankan dan / atau meluncurkan skrip analisis jarak jauh. Ini adalah pustaka Python yang cukup ringan yang membuat menjalankan perintah jarak jauh sedikit lebih mudah (dan bisa skrip).

Matthew Emmett
sumber
8

Izinkan saya menulis ulasan singkat tentang fungsi grafis Mathematica, karena itulah yang saya kenal.

Apa yang bisa dilakukannya?

Untuk melihat beberapa contoh, lihat galeri kode Mathematica di situs Wolfram. Ini tidak secara khusus tentang visualisasi, tetapi hampir semua contoh termasuk beberapa plot.

Anda juga dapat menelusuri tag merencanakan (dasar) dan grafik (lebih lanjut) dari Mathematica.SE

Dimungkinkan untuk membuat contoh gambar Anda dengan cara yang sepenuhnya otomatis (tidak diperlukan pemrosesan pasca manual).

Kekuatan

  • Semua gambar ditentukan dengan cara deklaratif (seperti SVG --- Anda tidak memberi tahu sistem untuk menggambar sesuatu, Anda hanya mendaftar objek gambar vektor). Grafik adalah jenis ekspresi Mathematica yang sama dengan apa pun dalam sistem, mereka hanya ditampilkan dengan cara khusus. Ini berarti bahwa grafik dapat dengan mudah diubah dan diproses setelah mereka dibuat --- ini berlaku untuk grafik yang dibuat dengan merencanakan fungsi juga.

  • Cara cepat dan sederhana untuk membuat grafik menggunakan fungsi merencanakan tingkat tinggi , dan mengatur banyak opsi untuk menyesuaikan hasilnya. Jika tidak ada fungsi untuk plot yang tepat yang Anda butuhkan, Anda dapat mengumpulkan grafik dari primitif grafis (yang juga cukup mudah ).

  • Fungsi merencanakan fungsi matematika sangat baik. Sejauh yang saya tahu itu kelas terkemuka. Fungsi sampel Mathematica secara adaptif (baik dalam 2D ​​maupun 3D) sehingga plot yang halus dapat dihasilkan dengan cepat dan otomatis. Singularitas, diskontinuitas, dll dideteksi secara simbolis dengan merencanakan fungsi.

  • Anda dapat menghasilkan gambar untuk ukuran cetak tertentu, dan memastikan bahwa gambar tersebut cocok dengan teks di sekitarnya dalam publikasi (mis. Ukuran font dan gaya yang cocok). Dalam 2D, ada dua jenis koordinat: koordinat plot yang sesuai dengan data Anda dan koordinat absolut yang ditentukan dalam poin printer. Yang pertama skala ketika mengubah ukuran grafik, yang terakhir tidak. Teks menggunakan koordinat absolut secara default yang berarti bahwa tipe 8-point akan menjadi 8 poin terlepas dari apakah angka yang sama diekspor pada ukuran 7 cm atau 14 cm. Ini memungkinkan untuk memiliki ukuran font yang konsisten dengan teks dalam publikasi.

  • Pengaturan huruf bawaan untuk rumus matematika. The Matex paket pihak ketiga menyediakan integrasi LaTeX untuk sangat baik rumus kualitas typesetting. (Pengungkapan: Saya penulis.)

  • Anda dapat melakukan semua pemrosesan data dalam sistem yang sama. Secara umum, dengan sedikit kerja, proses pembuatan angka penuh dapat diotomatisasi (bahkan beberapa aspek lanjutan ), menghindari perlunya pemrosesan posting manual dalam perangkat lunak seperti Adobe Illustrator. Ini penting ketika pada menit terakhir Anda menemukan beberapa masalah kecil dan perlu untuk menghasilkan kembali angka tersebut.

Kelemahan

  • Memiliki angka dengan beberapa subplot dan memiliki keselarasan yang tepat antara sistem koordinat subplot bisa jadi sulit.

    Paket SciDraw (pihak ketiga) memperbaikinya dan memberikan kontrol terperinci atas setiap aspek gambar. Yang menarik dari paket ini adalah bahwa dibutuhkan lebih banyak upaya untuk mengatur angka.

  • Grafik 3D tidak dapat diekspor dengan baik ke format vektor. Mengekspor versi bitmap baik-baik saja.

  • Jika institusi Anda belum memiliki lisensi, itu memerlukan biaya.

Szabolcs
sumber
5

Gali lebih dalam ke plot PGF:

1) dapat melakukan diagram 3d: python-matplotlib tidak dapat melakukannya, gnuplot jelek dibandingkan

2) memiliki font yang konsisten dalam ukuran dan keluarga dengan dokumen dasar)

3) dapat digunakan untuk tema warna tertentu

Tidak ada yang seperti itu di pasaran. :)

taric
sumber
1
matplotlib memiliki utilitas grafik 3d. Ini agak lemah, tetapi tentu saja berfungsi dengan baik untuk visualisasi cepat.
meawoppl
Jelas +1. Ketika datang ke plot kualitas publikasi, tidak ada yang bisa mengalahkannya. Steker tak tahu malu: pertanyaan dan jawaban saya di pgfplots di TeX.sx: tex.stackexchange.com/search?q=user:9043+[pgfplots] . Lihat juga texample.net/tikz/examples/pgfplots untuk contohnya, dan manual yang sangat komprehensif .
qubyte
Dengan plot PGF, saya hanya memiliki masalah yang Anda tidak dapat menganggap penerbit mendukungnya. Apa yang akan Anda lakukan jika alur kerja Anda bergantung padanya? Saya pernah berakhir dengan terlebih dahulu mengeset angka-angka dan kemudian memasukkan hasil yang dihasilkan ke file utama yang tidak bergantung pada PGF-plot lagi yang tidak terlalu nyaman. Apakah ada cara yang lebih pintar?
Christian Waluga
1
@ChristianWaluga: Anda dapat menggunakan kelas "mandiri" - ini memungkinkan Anda membuat gambar PDF / EPS menggunakan gambar PGF yang sudah Anda siapkan untuk artikel tersebut. Kemudian Anda dapat memasukkan PDF ke dalam teks artikel asli dengan menyertakanegraphics.
tmaric
4

Saya menemukan Tecplot cukup kuat ketika datang ke visualisasi data dan manipulasi data.

HPC
sumber
4
Bagaimana dengan Tecplot membuatnya sangat kuat? Fitur apa yang menurut Anda sangat berguna?
Paul
4

Saya akan mencoba memberikan pandangan saya tentang pengalaman saya yang terbatas, yang hanya mencakup beberapa jenis plot: plot data 2D, plot sebar, dan diagram berbasis grafik (pohon dan grafik, diagram alur); tapi pertama-tama izinkan saya untuk menyimpang dari pertanyaan sebentar:

Pertama, saya ingin mengatakan bahwa pentingnya menghasilkan plot berkualitas tinggi sering diabaikan. Plot tidak hanya untuk menampilkan data tetapi jika digunakan secara efektif mereka dapat mengkomunikasikan ide-ide kompleks yang seringkali tidak dapat diungkapkan dengan jelas dalam teks. Tampak bagi saya bahwa ini bukan tempat yang tepat untuk membahas apa yang merupakan, manfaat, dan kerugian dari plot yang baik tetapi jika tertarik lihat di sini .

Kedua, saya lebih sering menyesal menggunakan plot setengah matang daripada menghabiskan waktu pada plot berkualitas tinggi. Alasannya adalah bahwa plot yang buruk dapat berbohong kepada Anda, misalnya, jika menggunakan plot setengah-terpanggang untuk melakukan pengamatan cepat terhadap data yang mungkin belum Anda normalkan dengan semestinya, atau dengan menggunakan plot yang tidak terlalu bagus untuk melakukan perbandingan visual (Mata sering bisa sangat pemaaf atau sangat menyesatkan). Jadi saya selalu merekomendasikan untuk menyiapkan plot seolah-olah mereka akan ditunjukkan kepada orang yang tidak terbiasa dengan hasilnya. Ini dapat menghemat waktu Anda dan meningkatkan pekerjaan Anda. Juga, Anda memiliki manfaat tambahan bahwa materi presentasi akan siap untuk presentasi / seminar / makalah berikutnya.

Sekarang untuk menjawab pertanyaan ,

Dalam pengalaman saya selalu lebih baik untuk memisahkan pemrosesan data dari alat plot yang sebenarnya, dan alat manipulasi gambar. Untuk pemrosesan data saya menggunakan python karena sangat fleksibel dan saya belum menemukan format file yang tidak dapat dengan mudah ditangani melalui python. Selain itu, perpustakaan numpy dan scipy dapat menjadi alat manipulasi yang kuat untuk data numerik.

Dalam python saya belum melihat alat merencanakan yang memberi Anda kontrol atas semua detail pemformatan. Saya telah menemukan bahwa itu adalah detail yang membuat perbedaan besar ketika Anda mencoba untuk mengintegrasikan gambar saat memformat kertas dalam lateks. Sebagai contoh, kontrol ruang putih dan proporsi-dan-sekitar plot dapat menjadi sakit kepala dengan matplotlib (bukan tidak mungkin tetapi tidak sepadan dengan waktu saya), ini sangat penting jika Anda memiliki ruang terbatas seperti yang sering terjadi dalam jurnal dan konferensi dokumen.

Dalam pengalaman saya, saya telah menemukan bahwa GNUPLOT adalah alat terbaik untuk memformat dan memproduksi plot 2D dan sebar plot. Ini sangat memberi Anda kontrol atas semua detail plot Anda. Dan Anda dapat menghasilkan plot berkualitas tinggi (gambar vektor) dalam warna hitam-putih atau warna. Tingkat kontrol yang tinggi membuat GNUPLOT sedikit lebih sulit untuk dipelajari, dan kadang-kadang hal-hal sederhana dapat membutuhkan sedikit kerja tetapi jika Anda memulai dari contoh, ia dapat menyederhanakan banyak hal. Saya biasanya melihat dua situs ini untuk mencari inspirasi, melihat situs yang tidak terlalu FAQ atau demo resmi di sini .

Terkadang, plot yang diproduksi oleh GNUPLOT bisa sangat besar (dalam kisaran MB) dan jurnal mungkin menolak file (ini terjadi pada saya dengan beberapa plot sebaran yang sangat berwarna). Saya telah menggunakan dan saya merekomendasikan Imagemagick , alat baris perintah yang memungkinkan Anda untuk mengkonversi, mengedit, dan mengompres gambar (saya menggunakannya untuk menghasilkan dan mengedit jpeg berkualitas tinggi sambil secara signifikan mengurangi ukuran file). Saya mencoba alat lain yang menggunakan kompresi data otomatis, ini terbukti bermasalah karena keseimbangan antara artefak dan kompresi gambar.

Saya juga telah menghasilkan diagram yang adil (sering untuk presentasi). Saya menemukan bahwa jika saya akan menggunakan diagram sekali saja (bukan kertas) maka aplikasi Keynote (OSX) dan menyimpan ke pdf sudah cukup baik. Namun, ketika gambar digunakan berkali-kali, kualitas presentasi lebih penting dan TikZ adalah alat pilihan saya. Saya menemukan TikZ agak sulit digunakan tetapi jika Anda mulai dari contoh itu jauh lebih mudah.

Akhirnya, saya melakukan sebagian besar pekerjaan saya dari command-line sehingga untuk mengintegrasikan berbagai alat yang saya gunakan dengan bash atau python.

fcruz
sumber
3

Pilihan cepat saya adalah untuk QtiPlot.

Meskipun tidak sempurna, ini memberikan kombinasi terbaik dari kemudahan GUI, bersama dengan skrip python sehingga apa yang sebenarnya Anda lakukan adalah "Qtiplot / Python / (Illustrator atau Inkscape)". Qtiplot dapat dikembangkan, sehingga Anda dapat membuat skrip / makro Anda sendiri yang dapat menjalankan perintah python untuk membuka dan memproses data dan kemudian membuangnya ke dalam tabel. Anda kemudian dapat secara manual atau secara otomatis merencanakannya. Dimungkinkan juga untuk mengkonfigurasinya agar berfungsi dengan pengaturan huruf LaTeX dengan penata letak yang tersedia di internet, atau penata letak lokal, sehingga Anda dapat meletakkan rumus matematika di judul plot / sumbu / markup Anda.

Plot-plot tersebut kemudian dapat diekspor ke format apa pun yang Anda inginkan, tetapi format yang paling baik tidak diragukan lagi adalah SVG. File SVG dapat disentuh di inkscape jika Anda mau, yang juga memiliki kemampuan mengeset LaTeX.

Walaupun MatPlotLib bagus, kelemahan terbesarnya adalah harus melakukan hand-code secara mutlak (seperti halnya solusi plot scripting). QtiPlot sangat bagus karena Anda dapat membuat skrip / mengotomatiskan pemrosesan data dan memplot semua dengan fungsionalitas Python yang hebat, dan kemudian menyerahkan plot potongan kasar ke gui yang akan memungkinkan Anda untuk men-tweak dengan tangan dan melakukan semua jenis pemotongan gui / menempel / memanipulasi yang jauh lebih cepat berdasarkan kasus per kasus untuk analisis data. Anda juga dapat mengatur dimensi secara tepat dengan skrip, dan juga memanipulasi dimensi dengan GUI, sesuatu yang tidak dapat Anda lakukan dengan matplotlib.

Saya kira itu tergantung pada bagaimana perasaan Anda tentang solusi merencanakan QtiPlot. Saya telah menemukan itu sangat mampu, tetapi itu semua adalah kurva belajar yang cukup curam.

Vince
sumber
3

Saya terkejut tidak ada yang menyebutkan alat luar biasa Nico Schlömer matlab2tikz dan matplotlib2tikz . Jika Anda menggunakan LaTeX untuk persiapan dokumen dan Matlab atau Python untuk pemrosesan data, Anda dapat dengan mudah mendapatkan plot vektor berkualitas tinggi yang dapat Anda poskan proses sesuai dengan isi hati Anda:

  1. Persiapkan plot Anda dalam Matlab atau Python, termasuk sumbu, label, legenda, dll. Jangan khawatir tentang pemformatan TeX.
  2. Panggil matlab2tikz('figure.tex')(atau matplotlib2tikz).
  3. Edit figure.texsesuai selera (ganti teks label dengan matematika yang tepat, ubah warna, lebar garis, penempatan legenda, gaya sumbu, dll.), Lihat manual pgfplot (atau banyak pertanyaan tentang pgfplot pada TeX stackexchange).
  4. Dalam gambar Anda, alih-alih includegraphics, masukkan \input{figure.tex}(dan jangan lupa untuk memasukkan \usepackage{pgfplots}dalam pembukaan).
  5. Untuk pengiriman, gunakan perpustakaan eksternalisasi (lihat bab 7 dari manual) untuk memanggang gambar Anda ke dalam pdf dan cukup ganti \input{figure.tex}dengan \includegraphics{figure.pdf}.
Christian Clason
sumber
2

Jika Anda tidak mencari skrip lihat MagicPlot. Ini tidak begitu kaya fitur sebagai Origin (misalnya hanya dapat menghasilkan plot 2D) tetapi saya tidak pernah mengalami masalah dengan lebar garis dan properti lainnya. Plot bagus anti-alias meskipun menggambar ulang cukup cepat. Ditambah pas yang bermanfaat.

Alexander
sumber
0

Tecplot 360 baik untuk memproses data besar dan menghasilkan plot berkualitas publikasi. Ini memiliki antarmuka add-on dan scripting yang kuat untuk memproses data. Tampak bagi saya bahwa ia melakukan semua yang Anda butuhkan untuk pemrosesan pasca.

Kesalahan umum adalah resor menggunakan Excel. Tidak. Tidak ingat tata letak, kisaran X, peta warna. Itu tidak bernyawa. Ini menggunakan spreadsheet besar jelek untuk bekerja dengan data.

Tentu saja Anda tidak akan menemukan alat yang melakukan post-processing dan editing teks, dan memilih editor teks yang masuk akal untuk publikasi Anda adalah pertanyaan penting lainnya. Jangan gunakan MS Word, manajer kutipannya jelek. Saya menggunakan LyX atau alat Lateks lain yang tersedia untuk sistem operasi yang saya gunakan.

Oh, dan ketika Anda harus menerbitkan PDF, sertakan tautan ke LaTeX, Word, atau format apa pun dengan matematika yang dapat dibaca. Dalam PDF, tidak.


sumber