gnuplot easy histogram


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers gnuplot easy histogram
# 1  
Old 01-17-2011
gnuplot easy histogram

hello experts,

I have been trying to plot a histogram of a data like;

-54
-56
-43
-65
-67
-78
...
I have 156.000 rows of these kind of values between 0 and -100. I just want to make x axis takes values 5 spacing in between like;

-100 -95 -90 .............. 0

And I want y axis to show how many times these values occur. I tried many things but it always shows every single value between -100 and 0. I simply would like to see the distribution

Any help would be much appreciated. Thank you.
# 2  
Old 01-17-2011
How about something like this:
Code:
clear
reset
set key off
set border 3
set auto
 
set xrange[0:-100]
set xtics 5
 
# Make some suitable labels.
set title "Demo graph"
set xlabel "Value"
set ylabel "Count"
 
set terminal png enhanced font arial 14 size 800, 600
ft="png"
# Set the output-file name.
set output "enes.".ft
 
set style histogram clustered gap 1
set style fill solid border -1
 
binwidth=5
set boxwidth binwidth
bin(x,width)=width*floor(x/width) + binwidth/2.0
 
plot 'values.dat' using (bin($1,binwidth)):(1.0) smooth freq with boxes


Last edited by Chubler_XL; 01-17-2011 at 08:51 PM..
This User Gave Thanks to Chubler_XL For This Post:
# 3  
Old 01-18-2011
It is perfect actually. Thank you very much for helping.

---------- Post updated at 08:21 AM ---------- Previous update was at 05:36 AM ----------

Hello again,

I have one thing more also I am struggling a lot to plot it. My actual data is as follows;

1724836 7450227 -64
1724830 7450229 -86
1724825 7450231 -87
1724821 7450233 -88
1724817 7450235 -88
1724812 7450237 -84
1724780 7450163 -79
1724787 7450165 -64
1724794 7450168 -73
1724802 7450171 -76
...
going like this....

I am treating the data as an X,Y coordinate and first value is X and the second Y. I have a static point like (1724850,7450200). What I want is to draw a line between each X,Y and my static point. Also while drawing the line I want to make some specification; if the third field value is bigger than -70, I want to draw it green. If it is between -70 and -85, yellow and if it is smaller than -85, red.

I tried to use arrow command of gnuplot but I could not succedd. I am trying hard to plot this data in this way.

Any help is much appreciated again, thank you.

---------- Post updated at 09:30 AM ---------- Previous update was at 08:21 AM ----------

Here is my code but it gives nothing, only a blank page;

Code:
#!/usr/local/bin/gnuplot -persist
set terminal png large size 1920,1200
set output '003A98B70A10_coverage.png'
set grid
set origin 1724850,7450200
set xrange [1724000:1724400]
set isosample 150
set palette defined (-100 "red", -95 "yellow", -85 "green")
plot "003A98B70A10.log" with impulses
# EOF

It should give multiple lines drawn from the origin point to the multiple other points.

---------- Post updated at 05:08 PM ---------- Previous update was at 09:30 AM ----------

I also tried to use 'set arrow' command but properties for that command does not seem to take data from file....
# 4  
Old 01-18-2011
Firstly the X,Y coordinates need to be converted to polar (angle, radius) coordinates. Remember Pythagoras' theorem from school? Bet you thought you would never need that stuff! Anyway, atan2(y,x) and sqrt(x^2 + y^2) will do the job for you.

Also origin moves the graph on the page, it dosn't change the point that the impulse plot uses, I don't really know if this can be done. I just subtracted the origin values from your X,Y coordinates in the geta (get-angle) and getr (get-radius) functions:

Code:
#!/usr/bin/gnuplot -persist
set terminal png large size 1920,1200
set output '003A98B70A10_coverage.png'
set polar
set grid
set xrange [-200:200]
set yrange [-200:200]
set isosample 150
set palette defined (-100 "red", -95 "yellow", -85 "green")
xorig=1724850
yorig=7450200
geta(x,y)=atan2(y-yorig,x-xorig)
getr(x,y)=sqrt((x-xorig)*(x-xorig) + (y-yorig)*(y-yorig))
plot "003A98B70A10.log" using (geta($1,$2)):(getr($1,$2)):3 with impulses palette notitle

# 5  
Old 01-19-2011
yep, I never thought I would use that formula but in polar case, I need to use. Thanks for the help and information. I have found a different answer also. Here I learned that you can directly use as vectors;
Code:
set terminal png large size 1920,1200
set output '003A98B70A10_coverage.png'
set grid
set origin 1724012,7451336
set isosample 150
set palette defined (-100 "red", -95 "yellow", -85 "green")
plot "003A98B70A10.log" using 1:2:(1724012-$1):(7450200-$2):3 with vectors palette

which is similar to your logic, subtracting the values from the origin.

Thanks in advance again.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Generating histogram

Hi, I have 2 files with similar structure - reference and test that I would like to BIN both and generate the comparison. input files structure is: a 3 b 10 c 3 d 7 e 1 f 4 g 9 h 6 I would like the output to be (lets say both reference and test are the file above - no diff) BIN ... (3 Replies)
Discussion started by: yan1
3 Replies

2. Shell Programming and Scripting

awk Sort 2d histogram output from min(X,Y) to max(X,Y)

I've got Gnuplot-format 2D histogram data output which looks as follows. 6.5 -1.25 10.2804 6.5404 -1.25 10.4907 6.58081 -1.25 10.8087 6.62121 -1.25 10.4686 6.66162 -1.25 10.506 6.70202 -1.25 10.3084 6.74242 -1.25 9.68256 6.78283 -1.25 9.41229 6.82323 -1.25 9.43078 6.86364 -1.25 9.62408... (1 Reply)
Discussion started by: chrisjorg
1 Replies

3. Programming

Frequency percentage distribution histogram with R

I am new to R and would like to calculate the percentage frequency distribution of h1 and h2. How can I combine h1 and h2 in one plot? I tried the following code. h1=c(5.18,4.61,3.30,7.58,3.00,3.80,1.95,2.67,2.77,2.73,2.33,3.36,3.50,1.91,4.25,3.87,2.86,2.26,2.00,3.86,3.33,3.59,4.00)... (0 Replies)
Discussion started by: ayyappa342
0 Replies

4. UNIX for Dummies Questions & Answers

Help with xmgrace histogram

Hi All, I am new to Grace and would like to plot histograms. My input files have one column for frequencies and another column for distances, for example: 1 2.6 4 2.7 5 2.8 2 3.9 2 4.0 4 4.7 4 4.8 4 4.9 ... I want to plot a histogram ranging from 0 to 10 with... (0 Replies)
Discussion started by: sxiong
0 Replies

5. Shell Programming and Scripting

awk for histogram

I have a single file that looks like this: 1.62816 1.62816 0.86941 0.86941 0.731465 0.731465 1.03174 1.03174 0.769444 0.769444 0.981181 0.981181 1.14681 1.14681 1.00511 1.00511 1.20385 1.20385 (2 Replies)
Discussion started by: kayak
2 Replies

6. Shell Programming and Scripting

AWK counting interval / histogram data

My data looks like this: frame phi psi 0 68.466774 -58.170494 1 75.128593 -51.646816 2 76.083946 -64.300102 3 77.578056 -76.464218 4 63.180199 -76.067680 5 77.203979 -58.560757 6 66.574913 -60.000214 7 73.218269 -70.978203 8 70.956879 -76.096558 9 65.538872 -76.716568... (19 Replies)
Discussion started by: chrisjorg
19 Replies

7. UNIX for Dummies Questions & Answers

histogram or counter

Dear all, I have numerous dat files (a.dat, b.dat...) containing 500 numeric values each. I would like to count them, based on their range and obtain a histogram or a counter. INPUT: a.dat 1.3 2.16 0.34 ...... b.dat 1.54 0.94 3.13 ..... ... (2 Replies)
Discussion started by: chen.xiao.po
2 Replies

8. UNIX for Dummies Questions & Answers

Gnuplot - Histogram Fitting

Hi I am trying to fit my histogram data with a gaussian model and am encountering two problems: 1. I can't seem to fit the histogram data with a model fit y(x) 'bin.txt' using 2:xtic(1) via a,b,c (error: need 2 to 7 using specs) 2. Even when I manually guess the correct parameters for my fit and... (1 Reply)
Discussion started by: goffinj
1 Replies

9. UNIX and Linux Applications

GNUplot

Hi, I am trying to make a plot of an ASCII file using GNUplot, but I keep getting error msg: for example plot filename.txt It says that (.txt ) is not identified ... I tried to write it without the .txt part, but I also get the error msg. Any idea why? :confused: (1 Reply)
Discussion started by: cosmologist
1 Replies

10. UNIX for Dummies Questions & Answers

Need help on installing an EASY to use and easy to install command line text editor

Hi again. Sorry if it seems like I'm spamming the boards a bit, but I figured I might as well ask all the questions I need answers to at once, and hopefully at least get some. I have installed Solaris 10 on a server. The default text editors are there (vi, ex, ed, maybe others, I know emacs is... (4 Replies)
Discussion started by: EugeneG
4 Replies
Login or Register to Ask a Question