Bilimsel verilerin ve grafiklerin yayınlanması için hangi yazılım ve iş akışı önerilir?


40

Hangi yazılım, birkaç veri noktasının basit çiziminden, ayrıntılı stiller, matematiksel dizgi ve "profesyonel kalite" ile yayın düzeyinde grafiklerin oluşturulmasına kadar iyi bir iş akışı sağlar?

Bu, biraz David sorusuyla ilgilidir ( Hangi nitelikler bir profesyonel kaliteyi şekillendirir? ) Ancak odak, nitelikler üzerinde değil, oraya ulaşmak için olan yazılım veya genel iş akışıdır. Gnuplot, Origin, Matplotlib, TikZ / PGFplot, Qtiplot gibi pek çok programla yüzeysel deneyime sahibim, ancak aynı zamanda veri analizi ve hoş rakamlar yapmak oldukça zor görünüyor.

Buna izin veren bir yazılım var mı, yoksa paketlerden birinde daha derin kazmalı mıyım?

Düzenleme: Şu andaki iş akışım, az ya da çok birlikte çalışan farklı bileşenlerin bir karışımıdır, ancak toplamda gerçekten verimli değildir ve bunun bir üniversite laboratuvarındaki bazı bilim adamları için tipik olduğunu düşünüyorum. Tipik olarak, denemeden başlayarak şuna benzer bir yayındır:

  1. Deneysel veriler elde edin (genellikle ASCII formunda, ancak farklı düzende, örneğin başlıklar, yorumlar, sütun sayısı)
  2. 20 yıl önce yazılmış olan Origin, Gnuplot veya arcane plot programında hiçbir şeyin yanlış olup olmadığını kontrol etmek için verilerin hızlı bir şekilde çizilmesi.
  3. Verilerin daha ayrıntılı analizi: arka plan katkılarının çıkarılması, bağımlılıkların ve korelasyonların analiz edilmesi, teorik modellere uyma. Birçok bilim adamı bu görev için Origin kullanıyor, bazı Matlab ve Python / Scipy / Numpy kullanımı artıyor.
  4. Profesyonel figürler oluşturmak, bu dergi kurallarına uyum, matematiksel dizgi ve genel düzenleme içerir. Origin'i bunun için kullanıyorum ama birkaç dezavantajı var (tam 0,5pt'lik bir hat genişliği elde etmeye çalışın, bu mümkün değil). Rakamları birleştirmek / parlatmak için çoğunlukla Adobe Illustrator'ı kullanıyorum, çünkü PDF belgelerinin güzel bir şekilde içe / dışa aktarılmasını idare edebiliyor, ancak her diyagram için iki adım atmam gerekmiyor.

Sonunda nasıl görünebileceğine dair bir örnek ekledim (bu çoğunlukla el ile yaratıldığı için bir şeyleri değiştirmek acı vericidir ve örneğin tüm öğelerin hattını ayarlamak için bir arayüz sağlayan herhangi bir şey güzel olurdu):görüntü tanımını buraya girin


2
Belki de gereksinimlerinizi netleştirmelisiniz. Mevcut haliyle, soru sadece büyük bir yazılım listesini çekiyor. Hiç kimse, sistemlerin avantaj ve dezavantajlarının ne olduğunu ayrıntılı olarak açıklamamaktadır. Ona bakmak, birini seçmeme yardımcı olmaz. Tabii ki tüm teknik hesaplama yazılımları MATLAB, Mathematiac, Maple, Python tabanlı tüm çözümler, R, vb. Arsa oluşturmak için birçok araca sahiptir. Sonra Origin ve xmgrace gibi GUI araçları var. Hangisinin en iyi seçenek sizin ihtiyaçlarınıza bağlıdır.
Szabolcs

@Szabolcs: Sorumun biraz geniş olduğuna katılıyorum. İş akışım her zaman aynı değildir, çünkü farklı deneylerden elde edilen verileri analiz ediyorum, bu yüzden soruyu biraz daha genel tutmaya çalıştım.
Alexander

Yanıtlar:


31

Python ile biraz tecrübeniz varsa (hatta olmasanız da ), Matplotlib ile birlikte mevcut olan Python bilimsel yazılımı ( SciPy , Pandalar ), ... kullanmanızı öneririm . Bir programlama ortamı olarak, veri akışlarınız, veri manipülasyonlarınız ve komplolama üzerinde tam kontrol sahibi olursunuz. "Tam uygulamaları" Mayavi2 veya Veusz da kullanabilirsiniz .


14
Matplotlib için +1. Bahsedilen noktalara ek olarak, LaTeX'i metin alanlarında kullanabilme becerisi size istenen "matematiksel dizgi" yi verir.
Barron

entuught's chaco için herhangi bir öneri?
pcr

1
Chaso interaktif araziler için süper harika. Tamamen farklı bir hayvan IMHO.
meawoppl

2
Ve Matplotlib anlık prettification için, kontrol Seaborn .
Christian Clason


15

Söylediklerinize dayanarak, genel amaçlı bir betik dili, erişebileceğiniz bir tür grafik yeteneğine sahip olduğu sürece (yerleşik veya ithal edilmiş), muhtemelen en iyi seçeneğinizdir.

Bu damarda MATLAB çalışacaktır, ancak sunum kalitesinde grafikler için çizgi genişlikleri, semboller ve eksenlerle oynamanız gerekir. Kriterlerinize bakıldığında, MATLAB'ın büyük zayıflığının ayrıntılı matematiksel dizgi olduğunu söyleyebilirim; MATLAB bazı TeX etiketlerini kullanabilir, ancak kullanamayacağı bazı LaTeX komutları vardır, bu yüzden Adobe Illustrator'daki bir PDF'den bazı LaTeX etiketlerini geri alıp kesip yapıştırmak zorunda olduğumu hatırlıyorum.

Python + NumPy veri içe aktarma işleminde çalışacaktır, çünkü numpy.loadtxtmetin verilerini içe aktarma işlemini acısız hale getirir. Bu noktada, matplotlib ve Gnuplot ( Gnuplot.py aracılığıyla bir Python arayüzüne sahip ; 2008'den beri arayüzde aktif bir gelişme yok; fakat yine de, Gnuplot, bültenleri eklemeye devam etse de, artık her şeyi değiştiriyor mu?) ). MatthewEmmett'in PyAsy sarıcısı, ne yapmak istediğinize bağlı olarak da çalışabilir. Matplotlib'de büyük matematiksel dizgi var (Barron tarafından belirtildiği gibi) ve veri manipülasyonları NumPy, SciPy veya verilerinize atmak istediğiniz diğer Python paketleri kullanılarak yapılabilir.

Gnuplot ile tek başıma yaşadığım sorun, sadece komplo oluşturmak için yapılmış olması. Gnuplot betik dili içindeki verilerin nasıl işleneceği bana belli değildi. Aslında, metnin çıktısını almadan önce tüm veri manipülasyonumu önceden yaptım çünkü başka türlü nasıl yapacağımı çözemedim. Formülleri değerlendirmek ve bazı manipülasyonlar yapmak için gnuplot kullanabilirsiniz, ancak benim için Python'un çok daha doğal bir sözdizimi var ve gnuplot'tan daha genel bir faydası var. Gerçekten doğal, öğrenmesi kolay bir dil olmadığı sürece sadece bir şeyi yapmak için başka bir dil öğrenmek zorunda değilim. (Ya da zorlamadığım sürece.)

Tecplot 360'ta da benzer bir sorun var. Tecplot 360, özellikle 3D'de inanılmaz grafikler üretiyor. Tecplot 360 ile öğrenmesi kolay bir GUI kullanarak yapabileceğiniz şeyler vardır, muhtemelen başka bir komplo paketinde zorla basılırsınız. Tecplot'ı en son kullandığımda 6 ya da 7 yıl önceydi; görünüşe göre o zamandan beri çok fazla işlevsellik eklediler. Veri manipülasyonu indeksleme, dilimleme veya bölgeler oluşturarak yapılabilir. Türetilmiş büyüklükler denklemler kullanılarak hesaplanabilir. Ayrıca verilerinizin Fourier Dönüşümünü alabilir, enterpolasyon (veya kriging) yapabilir ve başka birçok şey yapabilirsiniz. Matematiksel dizgi nasıl yapılır belli değil. Sanırım Tecplot'tan HTML çıktısını kesebilir ve MathJax veya MathML ekleyebilirsin? Tecplot ile ilgili aklımdaki dezavantajlar, özgür olmamaları (yani bir araç olarak işten işe), iffy matematiksel dizgi ve karmaşık komut dosyası kodlama işlemlerinin Tecplot'un makro dilini öğrenmesi gerekebilir. Başlıca avantajı, 3B çizim yeteneğinin matplotlib ve MATLAB'ı uzun bir vuruşta geride bırakması. Tecplot'ın makro / betik dilini kullanarak arsa verilerini toplu olarak toplamak ve harici Python scriptlerini çağırmak mümkündür (sınırlı işlevsellik ile). Ayrıca, MATLAB'a benzer şekilde, Tecplot komut dosyasını öğrenmek istemiyorsanız geri düşebileceğiniz bir GUI var. (Tecplot GUI'si MATLAB'lardan çok daha tam özellikli.) Başlıca avantajı, 3B çizim yeteneğinin matplotlib ve MATLAB'ı uzun bir vuruşta geride bırakması. Tecplot'ın makro / betik dilini kullanarak arsa verilerini toplu olarak toplamak ve harici Python scriptlerini çağırmak mümkündür (sınırlı işlevsellik ile). Ayrıca, MATLAB'a benzer şekilde, Tecplot komut dosyasını öğrenmek istemiyorsanız geri düşebileceğiniz bir GUI var. (Tecplot GUI'si MATLAB'lardan çok daha tam özellikli.) Başlıca avantajı, 3B çizim yeteneğinin matplotlib ve MATLAB'ı uzun bir vuruşta geride bırakması. Tecplot'ın makro / betik dilini kullanarak arsa verilerini toplu olarak toplamak ve harici Python scriptlerini çağırmak mümkündür (sınırlı işlevsellik ile). Ayrıca, MATLAB'a benzer şekilde, Tecplot komut dosyasını öğrenmek istemiyorsanız geri düşebileceğiniz bir GUI var. (Tecplot GUI'si MATLAB'lardan çok daha tam özellikli.)

TikZ ve PGFPlotlar gibi LaTeX tabanlı araçlar, kullanım durumunuz için yapılmış görünmüyor. Buradaki zayıf nokta, veri manipülasyonudur; TikZ ve PGFPlotlar harika LaTeX araçlarıdır. Keşke onları nasıl daha iyi kullanabileceğimi bilsem. LaTeX olduklarından, iş akışının gerekli verileri LaTeX'e kesip yapıştırıp grafiğini çizdiğini tahmin ediyorum. LaTeX'in içinde programlar yürütmek mümkündür, ancak bir sunum veya belge için, açıkladığınız kullanım durumunun muhtemelen sadece sizin tamamlanmış ürün. Belki bu iş akışında sorun yoktur; Her iki alet de iyi tasarlanmış ve kaliteli figürler üretme konusunda ün sahibidir.

Sonunda, Adobe Illustrator, sizin dediğiniz gibi çizimlere dokunmak için iyi bir araçtır; eksiklikler dediğiniz gibi, yazılabilirlik veya tekrarlanabilirlik eksikliğidir, ancak küçük değişiklikler yapmak istiyorsanız hiçbir şey bir grafik düzenleme programını yenemez.


1
Sadece bu harika cevaba küçük bir yorum eklemek istiyorum. Adobe ürününü kullanmanıza gerek yoktur. Açık kaynak kodlu araç inkscape ayrıca size arazileri rötuşlamak için harika araçlar sağlayacaktır. LaTeX eklentisi ile birlikte, iyi bir iş yapabilir.
Azrael3000

10

Bence bu mükemmel bir soru ve şu an kendi aklımın ön saflarında yer alan bir soru. Birçok matematik dergisini okurken, Matlab kabul edilebilir görünmektedir, ancak IMHO'yu PNAS, Nature, PLoS ONE vb. Dergilerde görünen güzel grafikler ve diyagramlara göre ölçmemektedir.

Araştırma grubumda tam olarak bu konuyu birkaç hafta tartıştıktan sonra, hangi paketin en iyi olduğu konusunda henüz bir sonuç çıkmadık. Belgelerdeki, bloglardaki veya diğer web kaynaklarındaki grafik yazılımı karşılaştırmalarının çoğunun, hangi paketin belirli bir amaç için en iyi olduğunun belirlenmesinde büyük ölçüde yararsız olduğunu bulduk.

Bu paketlerin hepsinde / çoğunda uzman olmayan ortalama bir kullanıcıya gerçekten yardımcı olacak şeyin , bir çeşit "grafik kıyaslama ölçütü" olarak kullanılabilecek çok iyi tanımlanmış küçük bir örnek setine sahip olduğunu düşünüyorum. CFD kriterleri olarak algılamak ). Bildiğim kadarıyla, şu anda böyle bir şey yok.

En azından şunu görmek isterdim:

  1. Birkaç çizgi ve nokta tipine, göstergeye, etikete / başlıklara matematiğe, vb. Sahip olan oldukça basit bir 2D çizgi grafiği.
  2. 3B yüzey arsa için aynı.
  3. İki yüzeyli, kesme düzlemli ve belki de diğer bazı fantezi özellikli daha sofistike bir 3D arsa.
  4. Süslü bir 3D diyagram.

Veriler # 1-3 için ve # 4 için bir fotoğraf veya "orijinal" diyagram için sağlanacaktır. Her örnek için kod (giriş) ve görüntüler (çıkış) kaydedilecektir. Bu, okuyucunun hem görüntü kalitesi hem de kod karmaşıklığı açısından hangi paketin kendileri için doğru olduğunu daha kolay karar vermesine olanak sağlayacaktır.

Planım önümüzdeki ay içinde # 1, 2, 4 için grubumda böyle bir şey yapmak ve Matlab, pgf / TikZ, python / scipy gibi az sayıda paket yapmak. Eğer ilgi varsa, bunu herkese açık olarak gönderebilirim.

Bu başlangıçta yayınlanmıştır soruya bir cevap değil Yani iken henüz (ve bunun için özür diliyorum) birkaç aylık bir süre içinde bir cevap olabilir.


Böyle bir önerilen kıyaslama iyi bir fikirdir. Belirli bir veri setinden ve gereksinimlerinden başlamazsanız, nihai diyagrama ulaşmak için önerilen tüm yolları karşılaştırmak zordur. Ayrıca, kodu farklı dillerde / paketlerde görmek, kendi gereksinimlerinize uygun olanı karşılaştırmanıza olanak sağlar. Özellikle TikZ ile hemen hemen her şeyi çoğaltabileceğiniz izlenimini edindim, ancak bunu yapmak için gerçek bir uzmana ihtiyaç duyulabilir.
Alexander

Bence kriter iyi bir fikir; 2D parselleriniz için Matplotlib galerisindeki parsellerin bir kısmını çoğaltmanızı öneririm . Örnek kod zaten her örnek için verilmiştir. 3D örnekler için, Mayavi belgelerinde benzer bir galeriye ve güzel bir 3D öğretici örneğine sahiptir . Bu 3B parsellerin bazılarını başka paketlerde çoğaltmak da yararlı olabilir.
Geoff Oxberry

Şimdi ne kullanıyorsunuz, birkaç ay sonra? Bilgisayar korsanlığı yaparak arsa oluşturma hakkında herhangi bir yorum (bir metin penceresinde arsa seçenekleriyle tamir, arsa, döngü ...) ve / veya etkileşimli olarak?
denis,

8

Genellikle gnuplot kullanırım . Öğrenmesi zor olabilir, ama çok temiz araziler üretir. Ayrıca, yazılmış belgelere kolayca gömülmesine izin veren , kapsüllenmiş postscript biçiminde (.eps) grafikler oluşturmak için de ayarlanabilir.LATEX


+1 ve hızlı grafikler için hoş bir kökeni klonu olan ve eğri uydurma işlemi yapabilen qtiplot'u deneyin. finaly mizanpajları için de xfig gerçekten güzel (ama zor) ve lateks formüllerini ayrıntılara hackleme ile doğrudan gömebilir ...
Karussell

8

Dikkate alınması gereken başka bir yazılım paketi Asimptottur . Asimptot aslında vektör tabanlı çıktı üreten bir programlama dilidir (C ++ benzeri bir sözdizimine sahip). Güzel bir özellik, metnin LaTeX (matematik denklemleri dahil) ile işlenmesidir, bu nedenle şekillerinizdeki metin belgenizle tutarlıdır.

Asimptot denilen için bir Python sarıcı yazdı PyAsy ben Asimptot motoruna NumPy dizileri ve bazı basit çizimlerin yapabilirdi böylece. Oldukça kaba ve tam özellik değil, ancak yardımcı olabilir.

Neyse, Asimptot'un çıktı kalitesi gerçekten çok hoş.

Düzenleme: Yukarıda Ayrıca, ben bulduk Kumaş , uzaktan işleri başlatılması dizinleri senkronize ve binarylerinin alma çalıştırma verilerini ve / veya uzaktan analiz komut dosyalarını başlatılması için çok yararlı. Uzak komutları çalıştırmayı biraz daha kolay (ve komut ile yazılabilir) yapan oldukça hafif bir Python kütüphanesidir.


8

Bana aşina olduğum şeyden dolayı Mathematica'nın grafik işlevselliğini kısa bir gözden geçirmeme izin verin.

Ne yapabilir?

Bazı örnekleri görmek için Wolfram sitesindeki Mathematica kod galerisine bakın . Özellikle görselleştirme ile ilgili değil, hemen hemen tüm örneklerde bazı komplolar var.

Ayrıca Mathematica.SE'nin komplo (temel) ve grafik (daha gelişmiş) etiketlerine göz atabilirsiniz.

Örnek resminizi tam otomatik bir şekilde oluşturmak mümkündür (manuel işlem sonrası gerekli değildir).

Güçlü

  • Tüm grafikler bildirimsel bir şekilde belirtilir (SVG gibi --- sisteme bir şey çizmesini söylemiyorsunuz, sadece vektör grafik nesnelerini listeliyorsunuz ). Grafikler, sistemdeki herhangi bir şeyle aynı tür Mathematica ifadeleridir, yalnızca özel bir şekilde görüntülenirler. Bu, grafiklerin oluşturulduktan sonra kolayca dönüştürülebileceği ve işlenebileceği anlamına gelir - bu, çizim işlevleri tarafından yapılan grafikler için de geçerlidir.

  • Grafik oluşturmanın hızlı ve basit yolu, üst düzey çizim işlevlerini kullanmak ve çıktılarını özelleştirmek için birçok seçenek ayarlamaktır. İhtiyacınız olan kesin çizim için bir işlev yoksa, grafikleri grafik ilkellerinden birleştirebilirsiniz (bu da oldukça kolaydır ).

  • Matematiksel işlev çizme işlevselliği mükemmel. Bildiğim kadarıyla sınıf lideri. Mathematica örnekleri uyarlamalı olarak çalışır (hem 2D hem de 3D olarak), böylece sorunsuz bir komplo hızlı ve otomatik olarak üretilebilir. Tekillikler, süreksizlikler vb. Sembolik işaretlerle sembolik olarak tespit edilir.

  • Belirli bir baskı boyutu için rakamlar üretebilir ve bir yayındaki çevreleyen metne tam olarak uyduğundan emin olun (örn. Yazı tipi boyutu ve stiller eşleşir). 2B'de iki tür koordinat vardır: verilerinize karşılık gelen koordinatları ve yazıcının noktalarında belirtilen mutlak koordinatları işaretleyin. Eski grafiği yeniden boyutlandırırken ölçeklenir, ikincisi değildir. Metin, varsayılan olarak mutlak koordinatlar kullanır; bu, aynı rakamın 7 cm veya 14 cm boyutunda olmasına bakılmaksızın, 8 punto türünün 8 punto olacağı anlamına gelir. Bu, yazı tipinin yayındaki metinle tutarlı olmasını sağlar.

  • Matematiksel formüller için yerleşik dizgi. MATEX üçüncü taraf paketi mükemmel kalitede, formül dizgi için Latex entegrasyon sağlar. (Açıklama: Ben yazarım.)

  • Tüm veri işlemlerini aynı sistemde yapabilirsiniz. Genel olarak, biraz çalışmayla, tam rakam oluşturma işlemi, Adobe Illustrator gibi bir yazılımda manüel işlem sonrası işleme gereksiniminden kaçınılarak otomatikleştirilebilir (hatta bazı gelişmiş yönler ). Bu son dakikada küçük bir problem keşfettiğinizde ve rakamı yeniden oluşturmanız gerektiğinde önemlidir.

Zayıf Yönler

  • Birkaç alt nokta içeren rakamlara sahip olmak ve alt noktaların koordinat sistemleri arasında kesin bir hizalamaya sahip olmak zor olabilir.

    SciDraw (üçüncü taraf) paketinin giderdiği bu ve şeklin her yönü üzerinde ayrıntılı kontrol sağlar. Bu paketin travması, rakamlar oluşturmak için daha fazla çaba göstermesidir.

  • 3B grafikler, vektör biçimlerine iyi şekilde dışa aktarılmaz. Bir bitmap sürümünü dışa aktarmak yine de iyidir.

  • Kurumunuzun zaten bir lisansı yoksa, paraya mal olur.



5

PGF arazilerine daha derine inin:

1) 3d diyagramları yapabilir: python-matplotlib bunları yapamaz, gnuplot ise çirkindir

2) temel belgeyle birlikte boyut ve ailede tutarlı fontlara sahip

3) belirli renk kimyasalları için ayarlanmış olabilir

Piyasada bunun gibi başka bir şey yok. :)


1
matplotlib 3d grafik programına sahiptir. Biraz zayıf, ama kesinlikle hızlı görselleştirme için iyi çalışıyor.
meawoppl

Kesinlikle +1. Yayın kalitesi arazilerine gelince, hiçbir şey onu yenemez. Utanmaz fiş: bir soru ve TeX.sx'deki pgfplots hakkındaki cevaplarım: tex.stackexchange.com/search?q=user:9043+Гpgfplots] . Ayrıca örnek için texample.net/tikz/examples/pgfplots ve çok kapsamlı kılavuza bakın .
Mart'ta

PGF-arazilerde yalnızca yayıncıları desteklediğini varsaymamanız sorunu var. İş akışınız buna bağlı olsaydı ne yapardınız? Bir zamanlar önce rakamları dizmekle ve daha sonra artık PGF-grafiklerine bağlı olmayan ve gerçekten uygun olmayan ana dosyaya elde edilen çıktıyı dahil ederek bitirdim. Daha akıllıca bir yolu var mı?
Christian Waluga,

1
@ ChristianWaluga: "bağımsız" sınıfını kullanabilirsiniz - bu, makale için hazırladığınız PGF resmini kullanarak PDF / EPS görüntüleri oluşturmanıza olanak sağlar. Ardından PDF'yi includegraphics ile orijinal makale metnine ekleyebilirsiniz.
tmaric

4

Veri görselleştirme ve veri manipülasyonu konusunda Tecplot'u oldukça güçlü buluyorum.


4
Peki ya Tecplot bunu çok güçlü kılıyor? Hangi özellikleri özellikle yararlı buluyorsunuz?
Paul

4

Size sadece birkaç tip araziyi kapsayan sınırlı deneyimlerime dair görüşümü vermeye çalışacağım: 2B veri grafikleri, dağılım grafikleri ve grafik tabanlı diyagramlar (ağaçlar ve grafikler, akış şemaları); ama önce biraz sorudan sapmamı sağla:

İlk olarak, kaliteli araziler üretmenin öneminin genellikle göz ardı edildiğini söylemek isterim. Grafikler sadece verileri görüntülemek için değil aynı zamanda etkili bir şekilde kullanılması durumunda, genellikle metinde açıkça ifade edilemeyen karmaşık fikirleri iletebilir. Bana göre bu, iyi bir arsanın neyi, faydalarını ve dezavantajlarını tartışmak için uygun bir yer değil, eğer ilgileniyorsa buraya bakar .

İkincisi, yarı pişmiş bir arsa kullandığımda, yüksek kaliteli bir arsada zaman harcamaktan daha sık pişman oldum. Bunun nedeni, örneğin, normalize edilmemiş olabileceğiniz verilere hızlı bir şekilde göz atmak için yarı pişmiş bir arsa kullanmak veya görsel karşılaştırmalar yapmak için o kadar iyi olmayan arsalar kullanmak gibi kötü bir arsanın size yalan verebilmesidir. (göz genellikle çok bağışlayıcı veya çok yanıltıcı olabilir). Bu yüzden, her zaman sonuçları aşina olmayan bir kişiye gösterilecekmiş gibi hazırlamanızı öneririm. Bu size zaman kazandırabilir ve işinizi iyileştirebilir. Ayrıca, sunum malzemesinin bir sonraki sunum / seminer / ödev için hazır olacağına dair ek bir avantajınız var.

Şimdi etmek soruya cevap ,

Deneyimlerime göre, veri işlemeyi gerçek çizim aracından ve görüntü işleme araçlarından ayırmak her zaman daha iyidir. Veri işleme için python kullanıyorum, çünkü çok esnek ve python ile kolayca kullanılamayacak bir dosya formatı bulamadım. Ayrıca, numpy ve scipy kütüphaneleri, sayısal veriler için güçlü manipülasyon araçları olabilir.

Python içinde, tüm biçimlendirme detaylarını kontrol etmenizi sağlayan bir çizim aracı görmedim. Lateks içinde bir kağıdı formatlarken görüntüleri birleştirmeyi denediğinizde fark yaratan detayların bu olduğunu buldum. Örneğin, beyaz alanın ve etrafındaki parsellerin kontrolü, matplotlib'in baş ağrısı olabilir (imkansız değil ama zamanımla değmez), dergi ve konferansta sık sık olduğu gibi sınırlı alanınız varsa, bu çok önemlidir. kağıtları.

Tecrübelerime göre, GNUPLOT'un 2B çizimleri ve saçılma çizgilerini biçimlendirmek ve üretmek için en iyi araç olduğunu buldum . Parselinizin tüm ayrıntılarını kontrol etmenizi sağlar. Ve siyah beyaz veya renkli yüksek kaliteli grafikler (vektör görüntüler) oluşturabilirsiniz. Yüksek kontrol seviyesi GNUPLOT'un öğrenilmesini biraz zorlaştırır ve bazen basit şeyler biraz çalışabilir ancak bir örnekle başlarsanız işleri basitleştirebilir. Genelde ilham almak için bu iki siteye bakarım, SSS değil siteye veya resmi demolara bakın .

Bazen, GNUPLOT tarafından üretilen grafikler oldukça büyük olabilir (MB aralığında) ve dergi dosyaları reddedebilir (bu çok renkli saçılma lekeleriyle başıma geldi). Ben kullandım ve görüntüleri dönüştürmenize, düzenlemenize ve sıkıştırmanıza olanak tanıyan bir komut satırı aracı olan Imagemagick'i öneririm (önemli ölçüde dosya boyutunu küçültürken yüksek kaliteli jpegler oluşturmak ve düzenlemek için kullandım). Otomatik veri sıkıştırmayı kullanan diğer araçları denedim, bunun görüntü artefaktları ve sıkıştırma arasındaki hassas dengesi nedeniyle özel olarak problemli olduğu ortaya çıktı.

Ayrıca diyagramların adil bir kısmını da oluşturdum (sunumlar için). Eğer bir çizelgeyi tek seferlik (kağıt değil) kullanacaksam, o zaman Keynote uygulamasını (OSX) ve pdf'e kaydetmenin yeterince iyi olduğunu buldum. Ancak, bir resim birçok kez kullanıldığında, sunum kalitesi daha önemlidir ve TikZ benim tercih ettiğim araç. TikZ'i biraz kullanmak zor buluyorum ama bir örnekle başlarsanız çok daha kolaydır.

Sonunda, çalışmalarımın çoğunu komut satırından yapıyorum, böylece bash veya python ile kullandığım farklı araçları birleştirmek için.


3

Çabuk oyum QtiPlot için.

Mükemmel olmasa da, en iyi GUI kolaylık kombinasyonunu, python komut dosyasıyla birlikte sunar, böylece gerçekten yaptığınız şey "Qtiplot / Python / (Illustrator veya Inkscape)" olur. Qtiplot genişletilebilirdir, böylece verileri açmak ve işlemek için python komutlarını çalıştırabilen kendi komut dosyalarınızı / makrolarınızı oluşturabilir ve bunları bir tabloya aktarabilirsiniz. Daha sonra bunları manuel veya otomatik olarak çizebilirsiniz. Ayrıca, interneti kullanılabilir bir dizici veya yerel bir dizici ile LaTeX dizilimiyle çalışacak şekilde yapılandırmak da mümkündür, böylece matematik formüllerini arsa başlıklarınıza / eksenlerinize / işaretlerinize koyabilirsiniz.

Grafikler daha sonra istediğiniz formatta dışa aktarılabilir, ancak en iyi şekilde çalışan format şüphesiz SVG'dir. SVG dosyalarına, isterseniz LaTeX dizgi yeteneklerine sahip inkscape'de dokunulabilir.

MatPlotLib harika olsa da, en büyük dezavantajı kesinlikle her şeyi elle kodlamak zorunda kalmaktır (tıpkı herhangi bir komut dosyası çizim çözümü gibi). QtiPlot harikadır çünkü veri işlemeyi kodlayabilir / otomatik hale getirebilir ve hepsini mükemmel Python işlevselliği ile çizebilir ve daha sonra kaba bir kesim grafiğini elinizle çimdiklemenizi ve her türlü gui kesme / yapıştırma / manipülasyonu yapmanızı sağlayacak bir gui'ye aktarabilirsiniz. veri analizi için durum bazında daha hızlıdır. Boyutları komut dosyasıyla da tam olarak ayarlayabilir ve boyutları matplotlib ile yapamayacağınız bir şey olan GUI ile değiştirebilirsiniz.

Sanırım QtiPlot komplo çözümleri hakkında ne düşündüğünüze bağlı. Çok yetenekli olduğunu buldum, ama hepsi oldukça dik bir öğrenme eğrisi.


3

Nico Schlömer'in matlab2tikz ve matplotlib2tikz'deki mükemmel araçlarından hiç kimsenin bahsetmediğine şaşırdım . Belge hazırlığı için LaTeX kullanıyorsanız ve veri işleme için Matlab veya Python kullanıyorsanız, işlemi kalbinizin içeriğine gönderebileceğiniz yüksek kaliteli vektör grafiklerini kolayca alabilirsiniz:

  1. Arsalarınızı Matlab veya Python'da (eksenler, etiketler, göstergeler vb. Dahil) hazırlayın. TeX formatlama konusunda endişelenmeyin.
  2. Arayın matlab2tikz('figure.tex')(veya matplotlib2tikz).
  3. Düzenleme figure.textat (uygun matematik, değişim renkleri, çizgi genişliği, efsane yerleştirme, eksen tarzı, vb Etiket metnini değiştirin) için, bkz pgfplots manuel (veya birçok pgfplots üzerinde soru TeX Stack Exchange üzerine).
  4. Rakamınıza, yerine includegraphics, koyun \input{figure.tex}(ve \usepackage{pgfplots}başlangıç bölümüne eklemeyi unutmayın ).
  5. Sunulması için, bir pdf halinde şekil pişir ve basitçe yerine dışsallaştırılması kitaplığı (manuel bölüm 7) kullanan \input{figure.tex}tarafından \includegraphics{figure.pdf}.

2

Senaryoyu aramıyorsan MagicPlot'a bak. Origin kadar zengin özelliklere sahip değil (örneğin sadece 2B grafikler üretebiliyor) ama çizgi genişliği ve diğer özelliklerde hiçbir zaman sorun yaşamadım. Yeniden çizme yeterince hızlı olmasına rağmen, grafikler kenar yumuşatma özelliğine sahiptir. Ayrıca kullanışlı montaj.


0

Tecplot 360, büyük verilerin işlenmesi ve yayın kalitesinde grafiklerin üretilmesi için iyidir. Verileri işlemek için güçlü eklenti ve komut dosyası arabirimlerine sahiptir. Son işlem için ihtiyacınız olan her şeyi yaptığını bana gösteriyor.

Yaygın bir hata Excel kullanmaya başvurmaktır. Hayır. Düzeni, X aralığını, renkli haritayı hatırlamıyor. Canlandırmaz. Verilerle çalışmak için çirkin hacimli elektronik tabloları kullanır.

Tabii ki, hem post-process hem de text düzenleme yapan bir araç bulamazsınız ve yayınlarınız için uygun bir metin editörü seçmek de önemli bir sorudur. MS Word'ü kullanmayın, alıntı yöneticisi çirkindir. Kullandığım işletim sistemi için LyX veya başka bir Lateks aracı kullanıyorum.

Oh, ve PDF'yi yayınlamanız gerektiğinde, LaTeX, Word veya okunabilir matematik içeren herhangi bir biçimde bir bağlantı ekleyin. PDF'de değil.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.