2017-04-11 19 views
0

enter image description here如何解決虛線在Matlab間距EPS文件

有同時從MATLAB保存eps文件的一些問題。虛線不會按照保存eps格式打印。但是,有幾個修復程序可供他們使用,例如頂級的here

然而,對於較新的版本,在我的情況下R2016b,這些修復程序不再工作。我在Matlab網站上嘗試了4種不同的提交。他們都沒有工作。任何人都可以幫助我理解,在eps文件中我必須進行修復?我可以手動完成它們。

+1

您是否嘗試過使用Yair Altman的['export_fig'](https://www.mathworks.com/matlabcentral/fileexchange/23629-export-fig)?這是我所知道的最知名的FEX軟件包,它可以將數據準確地保存到包括EPS在內的多種格式中。 – rayryeng

+0

我一直在使用'matlabfrag'。 –

+0

你爲什麼不嘗試'export_fig',看看它在哪裏? – rayryeng

回答

0

在文件交換(here)提供的修復失敗,新的Matlab的版本的EPS文件(我的是R2016b)。這是因爲Matlab在寫入EPS文件時更改了變量名稱。文件交換中的修復程序搜索現在以不同方式命名的變量,因此會損壞EPS文件。

我會建議用戶在gedit打開的eps中查找setdash。例如,我在虛線文件中有

[2 2] 0 setdash 

。方括號內的第一個變量是破折號的長度,第二個變量是破折號之間的間距。這似乎太擁擠,幾乎看起來像連續線的線寬3.因此,我修改

[8 8] 0 setdash 

,並導致良好的間距衝線。

0

看起來像出版物的結果 - 哦格式化數字的樂趣。

您可能已經嘗試過這一點,但你試過調整linewidth參數如:

plot(x,y,'o-','linewidth',0.5) 

另外,我不知道你使用的是什麼操作系統,但我在Mac和使用R2016b以下作品完美:

A = rand(8,2); 
plot(A(:,1),'r*--','linewidth',0.5); 
hold on; 
plot(A(:,2),'bs-','linewidth',0.5); 
the_saveas_filename=sprintf('./test.eps'); 
print('-depsc2', the_saveas_filename); 
+0

出於某種原因,我想保持線條厚度始終爲2.我嘗試了不同的較低線條粗細,問題仍然存在。如果使用線性x軸而不是當前的對數標度來保存相同的圖,則問題是固定的。因爲我需要X軸作爲對數刻度,所以我使用了虛線並且它工作正常。 –

0

我提交關於該問題的支持票和這裏的MathWorks公司的迴應:

這是一個已知的bug被固定R2017b。不幸的是,對於舊版本,沒有可用的解決方法或補丁。