/usr/share/doc/libplplot11/examples/f77/x13f.f is in libplplot-dev 5.9.9-2ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | c $Id: x13f.fm4 11680 2011-03-27 17:57:51Z airwin $
c Pie chart demo.
c
c Copyright (C) 2004 Alan W. Irwin
c
c This file is part of PLplot.
c
c PLplot is free software; you can redistribute it and/or modify
c it under the terms of the GNU Library General Public License as
c published by the Free Software Foundation; either version 2 of the
c License, or (at your option) any later version.
c
c PLplot is distributed in the hope that it will be useful,
c but WITHOUT ANY WARRANTY; without even the implied warranty of
c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
c GNU Library General Public License for more details.
c
c You should have received a copy of the GNU Library General Public
c License along with PLplot; if not, write to the Free Software
c Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
implicit none
include 'plplot_parameters.h'
real*8 just, dx, dy, x(500), y(500), per(5)
integer i, j, dthet, theta0, theta1, theta
character*20 text(5)
data text / 'Maurice', 'Geoffrey', 'Alan', 'Rafael', 'Vince'/
c Process command-line arguments
call plparseopts(PL_PARSE_FULL)
per(1) = 10.d0
per(2) = 32.d0
per(3) = 12.d0
per(4) = 30.d0
per(5) = 16.d0
c Ask user to specify the output device.
call plinit()
call pladv(0)
c Ensure window has aspect ratio of one so circle is
c plotted as a circle.
call plvasp(1.0d0)
call plwind(0.d0, 10.d0, 0.d0, 10.d0)
c call plenv( 0.d0, 10.d0, 0.d0, 10.d0, 1, -2 )
call plcol0(2)
c n.b. all theta quantities scaled by 2*pi/500 to be integers to avoid
c floating point logic problems.
theta0 = 0
dthet = 1
do i = 0, 4
j = 0
x(j+1) = 5.d0
y(j+1) = 5.d0
j = j + 1
c n.b. the theta quantities multiplied by 2*pi/500 afterward so
c in fact per is interpreted as a percentage.
theta1 = theta0 + 5*per(i+1)
if (i .eq. 4) theta1 = 500
do theta = theta0, theta1, dthet
x(j+1) = 5 + 3*cos((2.d0*pi/500.d0)*theta)
y(j+1) = 5 + 3*sin((2.d0*pi/500.d0)*theta)
j = j + 1
enddo
call plcol0(i+1)
call plpsty( mod(i+3, 8) + 1 )
call plfill( j, x, y )
call plcol0(1)
call plline( j, x, y )
just = (2.d0*pi/500.d0)*(theta0 + theta1) / 2.d0
dx = 0.25d0 * cos(just)
dy = 0.25d0 * sin(just)
if ((theta0 + theta1) .lt. 250 .or.
& (theta0 + theta1) .gt. 750) then
just = 0.d0
else
just = 1.d0
endif
call plptex( x(j/2+1)+dx, y(j/2+1)+dy, 1.d0, 0.d0,
& just, text(i+1) )
theta0 = theta - dthet
enddo
call plfont(2)
call plschr( 0.d0, 1.3d0)
call plptex( 5.d0, 9.d0, 1.d0, 0.d0,
& 0.5d0, 'Percentage of Sales' )
call plend
end
|