matlab2tikz
是一個偉大的軟件包,用於將matlab
/octave
數字轉換爲tikz代碼。matlab2tikz生產重型排版tikz代碼
但是,如果圖中包含很多點,則結果tikz代碼對於排版膠乳非常重。有時甚至編譯失敗,消息:TeX capacity exceeded, sorry
。
有沒有辦法解決這個問題?
matlab2tikz
是一個偉大的軟件包,用於將matlab
/octave
數字轉換爲tikz代碼。matlab2tikz生產重型排版tikz代碼
但是,如果圖中包含很多點,則結果tikz代碼對於排版膠乳非常重。有時甚至編譯失敗,消息:TeX capacity exceeded, sorry
。
有沒有辦法解決這個問題?
matlab2tikz
有一個非常巧妙的選擇下采樣轉換爲tikz-pgf期間的數字。它被稱爲minimumPointsDistance
。這在大多數時候都可以彌補這種情況。
但是,當實際點數保持非常低時,它有時會扭曲曲線的某些「僵硬」區域。這在下面的圖像
藍色曲線(1184點)中示出的是原而紅色酮(117點)爲降低。失真很明顯。
爲了解決這個問題,同時保持點數低,我寫了一個新的點減少算法,它更有效(但有時可能會更慢)。結果(紅色曲線是116點)
清楚的是,失真消失。
但仍有
多一個缺點
存在於兩種算法。當一個人將一批數字轉換爲tikz時,他們通常希望所有縮小圖的統一質量。但有時這是不可能的(至少沒有額外的努力),因爲通常minimumPointsDistance
必須針對圖中的每一個設置不同,並且結果實際上取決於區間[min_y,max_y]和[min_x,max_x]的大小,以及圖中的點數。
因此,爲了克服這個問題,並且使得minimumPointsDistance
能夠被統一設置爲對於所有圖的特定值,產生統一質量的縮減版本,使用歸一化,並且現在「內部」指的是實際大小打印在紙上的圖。
您可以根據說明從here下載修改後的matlab2tikz.m文件。
注意說窮盡測試沒有做出來所以要小心!
(A位長的評論)
您可以使用matlabfrag,它轉換你身影的EPS和編譯乳膠,替換字符串數據乳膠字符串。這樣你就不會有太多樣品的問題。子採樣是壞的(除非你有100k點),因爲你想保持高分辨率的矢量數字。
+1給予好評,這是我用過的策略和它一直很好。儘管如此,我更喜歡tikz圖形的感覺。 – niels 2012-08-16 18:52:05