Jak podzielić jedną kolumnę w gnuplot?

11

Mam plik danych gnuplot. Chciałbym to narysować, ale każdą wartość w osi x należy podzielić przez n.

Czy mogę to zrobić z poziomu programu gnuplot, czy muszę przepisać plik danych?

użytkownik13798
źródło
Ta operacja jest powszechnie znana jako „skalowanie”, może to słowo zasługuje na tytuł?
Dmitrij Grigoriew

Odpowiedzi:

24

Zakładając, że xwartości znajdują się w pierwszej kolumnie pliku, 'test.dat'a ywartości znajdują się w drugiej kolumnie tego samego pliku, możesz napisać:

plot 'test.dat' using ($1/n):($2)

Więcej informacji i przykładów dotyczących słowa kluczowego można znaleźć w instrukcji obsługi'using' .

Pamiętaj, że nie zmieni to wartości Twojego pliku danych 'test.dat'. Jeśli wolisz przepisać plik danych, możesz to zrobić za pomocą awk. Na przykład:

awk '{print $1/n,$2}' test.dat > testnew.dat

zastąpi xwartości w pierwszej kolumnie test.datz x/ni wygeneruje nowy plik o nazwie testnew.dat.

mrucci
źródło
Przesłano edycję, aby naprawić uszkodzony link do ostatniej wersji HTML instrukcji. Należy również pamiętać, że podręczniki są dostępne tylko w formacie PDF w najnowszych wersjach. gnuplot.info/documentation.html
Asahiko
Możemy nawet podzielić wartości niektórych kolumn:plot "path/to/data.dat" using 1:($5/$3) with lines
Dohn Joe