2014-05-21 14 views
7

Muszę zapisać fabułę. To jest mój kod, którego nie wiem, dlaczego to nie działa.Octave, jak zapisać wykres wykresu?

hold on; 
plot(x1, y2) 
plot(x1, y2) 
print -djpg image.jpg 

Działka w wyjściu na ekranie jest poprawna, ale wyjście w pliku jest inna: to zapisuje tylko pustą działkę obraz bez moich punktów.

To moje wyjście w pliku: enter image description here

+0

Upewnij się, że używasz najnowszej wersji GNU Octave, który jest [3,8] (http://mxeoctave.osuv.de/). Pamiętam, że wcześniej widziałem ten problem z innymi użytkownikami. – juliohm

+0

Moja wersja to 3.8.1 – Ewybe

+0

Jaki system operacyjny? Co się stanie, jeśli zmienisz rozszerzenie, powiedzmy * .png lub * .pdf? Czy wypróbowałeś alternatywną składnię 'print (FILENAME, OPTIONS)'? – juliohm

Odpowiedz

8

prostu miałem ten sam problem z najnowszej oktawie (3.8.1). Ten problem pochodzi z GhostScript, a nie z Octave. Wystąpił błąd w zarządzaniu czcionkami.

Aby upewnić się, należy sprawdzić w konsoli po próbie wydrukowania jeśli błąd ten jest wyprowadzany (wraz z dużo więcej infos):

GPL Ghostscript 8.63: Unrecoverable error, exit code 1 

Jeśli to przypadek, to spróbuj tego:

set (0, "defaultaxesfontname", "Helvetica") % this is the line to add BEFORE plotting 
hold on; 
plot(x1, y2) 
plot(x1, y2) 
print -djpg image.jpg 

Rozwiązuje to problem, ustawiając czcionkę obsługiwaną przez GhostScript bez żadnego problemu. Zwróć uwagę, że jeśli już została narysowana figura, będziesz musiał ją zamknąć i ponownie ją zastąpić po ustawieniu domyślnej nazwy użytkownika.

Źródło: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=710272

+0

Korzystając z tej metody, wydrukowano czarny ekran. Jednak przynajmniej mogę zapisać go jako obraz bezpośrednio. drukowanie nadal nie działa. – hAlE

+0

Sprawdź, czy twoja wersja Ghostscript jest kompatybilna z Octave, może być konieczna aktualizacja/użycie starszej wersji, aby wydruk działał poprawnie. Możesz również zgłosić swój problem na trackerze Octave. – gaborous