How to create a data file for gnuplot? - gnuplot

I'm trying to make a graph with gnuplot. I specified my xrange, yrange, and labels, but when I typed in the following command:
gnuplot> plot "data.txt" using 1:2 with lines
gnuplot tells me:
warning: Skipping unreadable file "data.txt" No data in plot.
I don't understand how my data file is unreadable. This is what my data.txt looks like:
X Y [I didn't enter X and Y into my text file]
10000 0.030
5000 0.02
1000 0.012
I know I must be doing something wrong -- this is my first time using gnuplot. I tried doing a Google search on how to make a proper data.txt file turns up zilch.
EDIT:
I feel like this may sound strange to ask at a programming Q&A site, but what should a typical text file w/data look like? I'm no computer programmer, just an undergrad trying to plot a graph for her biochemistry class.

Either as most people answered: the file doesn't exist / you're not specifying the path correctly.
Or, you're simply writing the syntax wrong (which you can't know unless you know what it should be like, right?, especially when in the "help" itself, it's wrong).
For gnuplot 4.6.0 on windows 7, terminal type set to windows
Make sure you specify the file's whole path to avoid looking for it where it's not (default seems to be "documents")
Make sure you use this syntax:
plot 'path\path\desireddatafile.txt'
NOT
plot "< path\path\desireddatafile.txt>"
NOR
plot "path\path\desireddatafile.txt"
also make sure your file is in the right format, like for .txt file format ANSI, not Unicode and such.

plot "data.txt" using 1:2 with lines
works for me. Do you actually have blank lines in your data file? That will cause an empty plot. Can you see a plot without data? Like plot x*x. If not, then your terminal might not be set up correctly.

Create your Datafile like this:
# X Y
10000.0 0.01
100000.0 0.05
1000000.0 0.45
And plot it with
$ gnuplot -p -e "plot 'filename.dat'"
There is a good tutorial: http://www.gnuplotting.org/introduction/plotting-data/

For future reference, I had the same problem
"warning: Skipping unreadable file"
under Linux. The reason was that I love using Tab-completing and in gnuplot this added a whitespace at the end that I did not really notice
gnuplot> plot "./datafile.txt "

I had the same issue when tried to open the file using Plot->Data filename... option provided in the version for Windows 7 (by the way, it worked fine on another computer with the same version of the OP system).
Then I tried to change directory and save the .plt file, but it didn't work either. Finally, I tried to tape manually as it was showed for Linux earlier in this queue of posts:
gnuplot > plot "./datafile.dat"
and it worked!

This error usually means the file couldn't be found.
Can you see the file from the command line?
Try specifying the full pathname.
check line ending type (use 0x0d).
is file open in another program?
do you have read access to it?

I was having the exact same issue. The problem that I was having is that I hadn't saved the .plt file that I was typing into yet. The fix: I saved the .plt file in the same directory as the data that I was trying to plot and suddenly it worked! If they are in the same directory, you don't even need to specify a path, you can just put in the file name.
Below is exactly what was happening to me, and how I fixed it. The first line shows the problem we were both having. I saved in the second line, and the third line worked!
gnuplot> plot 'c:/Documents and Settings/User/Desktop/data.dat'
warning: Skipping unreadable file c:/Documents and Settings/User/Desktop/data.dat
No data in plot
gnuplot> save 'c:/Documents and Settings/User/Desktop/myfile.plt'
gnuplot> plot 'c:/Documents and Settings/User/Desktop/data.dat'

Just go to the properties of your cmd.exe shortcut and change the 'start in' by adding the file name where you put all your '.txt' files.I had same problems and i put the whole file mane as 'D:\photon' in the 'start in' of the properties and it worked.Remember you have to put all your files in that folder otherwise you have to create many shortcuts for each data files.Sorry for late reply

Related

Can gnuplot create the equivalent of an Rstudio script?

I am very new to Gnuplot. I have previously used Rstudio, which has a script (which you can write a command and then edit it later and rerun it) and also a console. Does gnuplot have this script equivalent? I notice after writing a command incorrectly I can't delete it. However, I want to save a document only containing correct commands so I can revisiting the code. Any suggestions would be appreciated.
Gnuplot has a "save " command. The file it produces contains the entire set of commands necessary to reproduce the current state of the program, including the most recent plot. Most of the commands in the saved file are not relevant to that particular plot, however, because they explicitly set a property to a value that was already the default. To remove these unneeded commands you can filter the saved file through a script gpsavediff, which can be downloaded from the gnuplot web site if you don't already have a copy with your installed version. The save + filter operation can either be done in two separate steps:
gnuplot> ... lots of stuff including a plot command ...
gnuplot> save 'myverboseplot.gp'
gnuplot> exit
gpsavediff < myverboseplot.gp > myplot.gp
or it can be done all once using a piped command:
gnuplot> ... lots of stuff ...
gnuplot> save '| gpsavediff > myplot.gp'
You can further edit the commands in the saved script just as you would any other text document.

How do I plot files in gnuplot?

I've already created a txt file containing only numbers just to see how Gnuplot works, but it keeps on telling me it "cannot find or open 'myfile.txt' no data in plot". I followed step by step many tutorials but it didn't help at all.
Any tips?
(P.S: my gnuplot does work, since I also testify it by plotting the sin(x) function. And it succeeded).
Most importantly, you must give a windows path name, with backslashes, in 'single quotes', not "DOUBLE QUOTES". Text in double quotes gets backslash processing, and you don't want the file name "C:\note" to contain a line break, see also help quote marks.
Otherwise, run the following in gnuplot
set table 'sinx.dat'
plot sin(x)
unset table
plot 'sinx.dat'
pwd
You should now have a data plot with a hundred points in the form of a sine on screen.
Now look for the file sinx.dat on your hard drive. It's in the directory that the pwd command returned. If the datafile you originaly wanted to plot is somewhere else, you know what the problem is.

Gnuplot Cannot open script file 'test.rtf'

I haven't found anything to my specific Problem with Gnuplot in other Threads. I want to load a text file on Mac. When I tell Gnuplot to
load '/Users/name/Desktop/test.rtf'
it always says Cannot open script file.
I already made sure, that I'm in the right working directory (I guess):
pwd
gives /Users/name
The text file contains:
plot sin(x)
and the standard terminal I'm using is
terminal type is wxt 0 enhanced
I hope someone can help me with that, since I'm not experienced in using programs with the terminal, so I really don't know how to solve my Problem right here.
first of all thanks for your answer! So I just managed to find my mistake, it seems that it has to do something with the notation, since I'm working on a german Mac. So
load 'file'
makes Problems, while
load "file"
works fine for me. Unfortunately I still have the Problem, that
set terminal postscript eps enhanced
set output "/Users/name/Desktop/testplot 2.png"
set encoding default
p sin(x)
set terminal wxt 0 enhanced
gives me a file, that can't be opened and it says the file is probably damaged or the format is not supported by 'preview'. It is not a huge problem actually since I can save the plot manually from the wxt terminal, but I really don't understand what Gnuplot is doing on OS X...

gnuplot pgn output without generating plot

Is it possible to generate a .png output without generating a plot?. I have my data set that I have to draw in a .png to later on spc to my server.
So far all the examples I have seen use the 'plot' instruction which generates the plot.
Thanks in advance!
ok it took me a bit of playing with the command but got it to work.
all you gotta do is configure the output to be a .png file BEFORE doing the plot in the command order.
e.g: gnuplot -e 'set term png;set output"data_print.png";plot"calibration.dat"'

is gnuplot fit influenced by terminal?

i have a gnuplot script file to fit measurement data, using this structure:
set terminal png
...some format templates...
f(x) = a + b*x + c*x**2
fit f(x) "datafile.txt" using "X":"Y" via a, b, c
...some plotting commands etc...
with this, gnuplot shows some strange behaviour:
when i run the script as-is, it gives me the following error:
Undefined value during function evaluation
"myscriptfile.gnuplot", line 5: error during fit
when i move the set terminal png line after the fit line, it runs without a hassle.
normally, i'm loading this at the beginning of a master script containing format templates and further data processing routines. doing this also gives me the aforementioned error message, even with the moved set terminal command.
since this is just the first part of processing my data i really need it to work from the master script... i already tried setting initial guesses, FIT_LIMIT and loading it from a gnuplot environment. i'm using gnuplot 4.6.5.
does anyone know how to solve this or how fit gets influenced by other commands? or is this some kind of bug?
edit: uploaded a stripped down version of scripts and data files to here. with the reduced data files the computed fits don't concur with the measured points, but with the complete data they do.
I'm not sure, what the real error is, but it seems to be related to your use of using "PHEAT":"RHOT", although that should be fine.
I could reproduce your error with the following minimal setup:
A data file test.dat:
A B
1 2
2 3
3 4
and a file test.gp:
f(x) = a*x**2 + b*x + c
fit f(x) 'test.dat' using "A":"B" via a,b,c
If I call this file with gnuplot test.gp I get the same error as you. It doesn't appear if I use using 1:2. If I paste the code in an interactive terminal, the error also appears, but only once. If I repeat only the fit command again, it works fine. I'll report this as a bug.
In the script you posted, I was also able to fix this by using using 9:8 instead of using "PHEAT":"RHOT". Additionally you must remove the first line of the data file, which can be done on-the-fly with tail, so that you can leave the using statements of the plot unchanged. So you can use:
fit rhotside(x) "< tail -n +2 testdata.txt" using 9:8 via rhot0, rhot1, rhot2
fit rcoldside(x) "< tail -n +2 testdata2.txt" using 9:8 via rcold0, rcold1, rcold2

Resources