我有一個數據文件有兩列:Xi
和Yi
。我想繪製Xi
與(Yi-1 - Yi)/Yi-1
對於i>1
。在GNUPlot direclty中可以這樣做嗎?如何在gnuplot中使用多行數據文件?
2
A
回答
2
是的,它是可能的gnuplot的直接 - 它只是不容易:
firstval = NaN
yi1(yi) = (returnval=firstval, firstval=yi, returnval)
plot "datafile" using 1:((yi1($2)-$2)/returnval)
您需要使用內聯函數。內聯函數的形式如下:
funcname(args,...) = (statement1,statement2,...,statementn, return_value)
這裏我只是創建了一個函數來保存它傳遞的最後一個值。不幸的是,這個解決方案變得更難看了一點,因爲在使用規範中我不能調用yi1
兩次(第二次,我會得到錯誤的返回值),所以我不得不直接引用保存返回值的變量。這並不漂亮,但它的工作原理。通過傳遞$0
(行號),你可能會「漂亮」一點,只有當$ 0改變時纔會更新,但它可能不值得這個黑客。
0
直接在gnuplot中做到這一點很棘手。問題是你必須在你的計算中使用第(i-1)個元素,這個gnuplot不能自動完成。它可以做簡單的計算,但只能在同一行上,例如類似於
plot "datafile" using ($1):(($2-$1)/$2)
會很容易。
對於您需要做的事情,我建議您使用octave,或者您可以使用電子表格應用程序準備數據文件。
在八度,你可以繪製此類似:
d = load("datafile")
plot(d(2:end, 1), d(1:end-1, 2)-d(2:end, 2)./d(1:end-1, 2))
相關問題
- 1. 如何在gnuplot中使用Splot數據
- 2. 如何使用gnuplot-iostream.h讀取C++中的數據文件?
- 3. 在gnuplot的Splot多行從相同的數據文件
- 4. 如何爲gnuplot創建數據文件?
- 5. Gnuplot - 如何僅使用公用數據加入兩個文件
- 6. 如何使用gnuplot繪製數據文件中的特定數據子集?
- 7. 我不知道如何使用gnuplot數據文件
- 8. 如何使用mac終端從數據文件gnuplot
- 9. GNUPLOT數據文件中的複數
- 10. 如何從數據集使用的gnuplot
- 11. 使用gnuplot的許多文件一次
- 12. 如何在Gnuplot中使用數據圖繪製分段函數?
- 13. 如何使gnuplot不能繪製多行?
- 14. 如何在gnuplot中使用多維數組?
- 15. 使用GNUplot按行繪製.csv數據
- 16. 用gnuplot製作數據文件
- 17. Gnuplot:如何從一個數據列使用多個值?
- 18. 如何使用Gnuplot創建多頁PDF文件?
- 19. gnuplot - 使用位於多個文件中的數據製作直方圖
- 20. 如何使用Gnuplot從CSV文件中的分箱數據創建直方圖?
- 21. 如何在多行顯示GNUPLOT密鑰
- 22. 如何在Python中使用gnuplot來繪製/顯示「.dat」文件
- 23. 繪製gnuplot中的數據文件的多個功能
- 24. 如何使用csv文本文件中的C++(Xcode)繪製gnuplot
- 25. 如何在d3多行圖表中使用json數據而不是tsv文件?
- 26. gnuplot多列數據統計
- 27. 使用用戶數據文件的gnuplot繪製3D錐體
- 28. 在gnuplot中繪圖時如何給文件中的數據添加偏移量
- 29. 如何在Gnuplot中繪製一個文件中標題的幾個數據集?
- 30. 使用數據文件中的文本列作爲gnuplot中的點標籤
非常聰明!謝謝! – Martin