2016-02-04 92 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