2016-02-04 96 views
2

我在文件中保存了1s和0s的矩陣。它看起來像這樣:無法在Gnuplot中繪製矩陣

0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 1 
    0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 1 1 0 
    0 0 0 0 0 1 1 0 0 0 
    1 1 1 1 1 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 

我想用命令的gnuplot繪製:

plot 'data.rtf' matrix with image 

,但是當我這樣做,我得到一個錯誤:

warning: matrix contains missing or undefined values 
    Matrix does not represent a grid 

我想我應該得到一個圖像,其中0是空白,1是黑色空間。我是gnuplot的新手,所以我不知道什麼可能是錯的,也不知道我是否正確地使用它。我會很感激任何幫助。謝謝。

+2

複製並粘貼您的數據片段並執行您的命令適用於我(gnuplot 4.6.6和5.0)。你有沒有其他設置?在plot命令之前加上一個'reset'來再次檢查。或者你的實際數據文件有一些奇怪的隱藏字符。你可以上傳你的原始數據文件的地方,你得到這個錯誤? – Christoph

+0

我試過重置,但沒有工作。我的版本gnu plot 5.0 patchlevel 1,我在OS X 10.11.2中運行。另外我注意到我的終端類型設置爲'aqua'。我不確定它是否是mac的默認類型設置,但我認爲我沒有改變它。我不知道,爲什麼它不起作用,我搜索了不同的網站,這對我需要做的事情有效。 – otter

+1

這裏是我的檔案,我試圖繪製:https://www.dropbox.com/s/rhx1ks5va3a0l6q/data.rtf?dl=0 – otter

回答

3

你的文件是RTF(富文本格式)文件,該文件是一種標記語言格式,gnuplot的不理解。您需要在文本編輯器(而不是文字處理器)中創建文件才能使用它。

{\rtf1\ansi\ansicpg1250\cocoartf1404\cocoasubrtf340 
{\fonttbl\f0\fnil\fcharset0 Menlo-Regular;} 
{\colortbl;\red255\green255\blue255;} 
\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0 
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 

\f0\fs22 \cf0 \CocoaLigature0 0 0 0 0 0 0 0 0 0 0\ 
0 0 0 0 0 0 0 0 0 0\ 
0 0 0 0 0 0 0 0 0 1\ 
0 0 0 0 0 0 0 0 0 0\ 
0 0 0 0 0 0 0 1 1 0\ 
0 0 0 0 0 1 1 0 0 0\ 
1 1 1 1 1 0 0 0 0 0\ 
0 0 0 0 0 0 0 0 0 0\ 
0 0 0 0 0 0 0 0 0 0\ 
0 0 0 0 0 0 0 0 0 0 

注意到它與一堆標記文本的開始:

您提供看起來像文件。 Gnuplot旨在處理文本文件,而不是格式化文本或二進制文件(有一些有限的例外)。

創建一個包含您設計的矩陣的文本文件就可以正常工作。

+0

是的。那是那個問題。我在txt中創建了相同的文件,並且工作正常。謝謝:) – otter

0

彩色圖是面狀的曲線,因此你必須使用splotplot

set pm3d map 
set palette gray 
splot 'test.txt' matrix w image 
+0

不,與圖像的'情節'工作正常。 – Christoph

+0

是的你是對的(它改變了單元格的中心:用'plot'它們以整數爲中心) – bibi

+0

是的,'image'繪製了一個真實圖像,即一個NxM像素圖形,而'pm3d'繪製了N-1)×(M-1)四邊形,顏色由一個到全部四個邊緣值確定。 – Christoph