1
我有一個4x4分數矩陣的文件,我想繪製一個調色板的上三角和不同的下三角,覆蓋得分值(MWE在底部)。在gnuplot中使用矩陣與圖像的文件條目的多個調色板和空標籤
原始文件看起來像這樣
0.00 0.65 0.65 0.25
0.25 0.00 0.75 0.25
0.50 0.60 0.00 0.25
0.75 0.25 0.10 0.00
首先,我創建了兩個單獨的文件和使用的multiplot有2個不同的調色板。
FILE1(上部三角)
0.00 0.65 0.65 0.25
nan 0.00 0.75 0.25
nan nan 0.00 0.25
nan nan nan 0.00
FILE2(下三角)
0.00 nan nan nan
0.25 0.00 nan nan
0.50 0.60 0.00 nan
0.75 0.25 0.10 0.00
其次,我與
using 1:2:(sprintf('%.2f', $3))
繪製得分值然而, '南' ISN不會被解釋爲空白/空白並跳過,但會寫入情節。
任何想法如何跳過nans並使gnuplot從數據文件的單個條目繪製空標籤?
在以下時尚三元運營商似乎並沒有做的工作
using 1:2:($3 == 'nan' ? 1/0 : sprintf('%.2f', $3))
感謝。
set multiplot
set autoscale fix
unset key
set datafile missing "nan"
set cbrange [0:1]
unset colorbox
set palette defined (0 "white", 0.1 "#9ecae1", 1.0 "#3182bd")
plot FILE1 matrix with image, \
FILE1 matrix using 1:2:(sprintf('%.2f', $3)) with labels font ',16'
set palette defined (0 "white", 0.1 "#a1d99b", 1.0 "#31a354")
plot FILE2 matrix with image, \
FILE2 matrix using 1:2:(sprintf('%.2f', $3)) with labels font ',16'
unset multiplot
謝謝!事實上,您的解決方案一次解決了兩個問題,因爲它避免了將原始文件拆分成兩個單獨的文件,因此不再需要處理NaN。 如果仍然喜歡使用NaN,那麼一種解決方案是使用1:2:(($ 3!= $ 3)?「」:sprintf('%。2f',$ 3))'誇大NaN不等於自身的性質,使得A = NaN;如果(A!= A)打印「A不是數字」(信用E.A.Merrit) – neurino 2014-11-22 14:19:36