How do I plot files in gnuplot? - 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.

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.

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"'

Write output file without exiting

How do I make an output of my graph without using 'exit'??
It makes me crazy because when the sizes go wrong, I have to do it from the start again.
I did all the stuff like set term pdf and all that. Please tell me what can I do.
to flush the buffer to the file you need to put a set output after issuing the plot or splot command(s).
example:
set term pdf
set output 'test.pdf'
plot sin(x)
set output
Here is a FAQ answer to your problem

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

How to create a data file for 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

Resources