我有一個名稱陣列和一個 csv 檔案:
name=(abc def ghi jkl) | 1, 2, 3, 4, 5
| 6, 7, 8, 9, 10
我想通過 col1 相對于其他所有 col(2..5) 繪制 csv 檔案,然后用陣列命名每一行。所以列的索引和要繪制的陣列是不一樣的;抵消。例如:
gnuplot < plot 'input.csv' using 1:2 t "${name[0]}"
我試過使用word()gnuplot ,也試過(name, -1)for (name, 1):
gnuplot < plot 'input.csv' using 1:2 t word(name, 0)
但我總是收到以下錯誤:
line 0: internal error : non-STRING argument
我確定我的陣列是空格分隔的,符合word(). 我不知道為什么它無法識別名稱。請并感謝您提出解決問題的任何建議...
uj5u.com熱心網友回復:
我查看了gnuplot 檔案并意識到word()gnuplot 只接受空格分隔的字串,而不是陣列。所以我相應地轉換了陣列,但是在 gnuplot 環境中通過持久化它。并考慮“偏移量”,請記住word索引是基于 1 的:
gnuplot -persist <<-EOFMarker
nameList="${name[*]}"
plot for [i=2:5] 'input.csv' using 1:i t word(nameList, i-1)
EOFMarker
該圖是根據需要繪制的。如果有人遇到同樣的問題,我會留下這個問題,但我很抱歉提出問題并自己回答。我希望它不違反 StackOverflow 規則......
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/479323.html
下一篇:將json值集成到另一個檔案中
