Learn R Programming

fdth (version 1.3-0)

plot.fdt: Plot fdt.default and fdt.multiple objects

Description

S3 methods for fdt.default and fdt.multiple objects. It is possible to plot histograms and polygons (absolute, relative and cumulative).

Usage

## S3 methods  
# S3 method for fdt.default
plot(x,
     type=c('fh', 'fp', 
            'rfh', 'rfp', 
            'rfph', 'rfpp', 
            'd',
            'cdh', 'cdp', 
            'cfh', 'cfp', 
            'cfph', 'cfpp'),
     v=FALSE,
     v.round=2,
     v.pos=3,
     xlab="Class limits",
     xlas=0,
     ylab=NULL,
     col="gray",
     xlim=NULL,
     ylim=NULL,
     main=NULL,
     x.round=2, ...)

# S3 method for fdt.multiple plot(x, type=c('fh', 'fp', 'rfh', 'rfp', 'rfph', 'rfpp', 'd', 'cdh', 'cdp', 'cfh', 'cfp', 'cfph', 'cfpp'), v=FALSE, v.round=2, v.pos=3, xlab="Class limits", xlas=0, ylab=NULL, col="gray", xlim=NULL, ylim=NULL, main=NULL, main.vars=TRUE, x.round=2, grouped=FALSE, args.legend=NULL, ...)

# S3 method for fdt_cat.default plot(x, type=c('fb', 'fp', 'fd', 'rfb', 'rfp', 'rfd', 'rfpb', 'rfpp', 'rfpd', 'cfb', 'cfp', 'cfd', 'cfpb', 'cfpp', 'cfpd', 'pa'), v=FALSE, v.round=2, v.pos=3, xlab=NULL, xlas=0, ylab=NULL, y2lab=NULL, y2cfp=seq(0, 100, 25), col=gray(.4), xlim=NULL, ylim=NULL, main=NULL, box=FALSE, ...)

# S3 method for fdt_cat.multiple plot(x, type=c('fb', 'fp', 'fd', 'rfb', 'rfp', 'rfd', 'rfpb', 'rfpp', 'rfpd', 'cfb', 'cfp', 'cfd', 'cfpb', 'cfpp', 'cfpd', 'pa'), v=FALSE, v.round=2, v.pos=3, xlab=NULL, xlas=0, ylab=NULL, y2lab=NULL, y2cfp=seq(0, 100, 25), col=gray(.4), xlim=NULL, ylim=NULL, main=NULL, main.vars=TRUE, box=FALSE, ...)

Arguments

x

A fdt object.

type

the type of the plot:
fb: absolute frequency barplot,
fh: absolute frequency histogram,
fp: absolute frequency polygon,
fd: absolute frequency dotchart,

rfb: relative frequency barplot,
rfh: relative frequency histogram,
rfp: relative frequency polygon,
rfd: relative frequency dotchart,

rfpb: relative frequency (%) barplot,
rfph: relative frequency (%) histogram,
rfpp: relative frequency (%) polygon,
rfpd: relative frequency (%) dotchart,

d: density,
cdh: cumulative density histogram,
cdp: cumulative density polygon,

cfb: cumulative frequency barplot,
cfh: cumulative frequency histogram,
cfp: cumulative frequency polygon,
cfd: cumulative frequency dotchart,

cdpb: cumulative frequency (%) barplot,
cdph: cumulative frequency (%) histogram,
cfpp: cumulative frequency (%) polygon,
cfpd: cumulative frequency (%) dotchart.

pa: pareto chart.

v

logical flag: should the values be added to the plot?

v.round

if v=TRUE, it rounds the values to the specified number of decimal places (default 0).

v.pos

if v=TRUE, a position specifier for the text. Values of 1, 2, 3 and 4, respectively indicate positions below, to the left of, above and to the right of the coordinates (default 3).

xlab

a label for the x axis.

xlas

an integer which controls the orientation of the x axis labels:
0: parallel to the axes,
2: perpendicular to the axes.

ylab

a label for the y axis.

y2lab

a label for the y2 axis.

y2cfp

a cumulative percent frequency for the y2 axis. The default is seq(0, 100, 25).

col

a vector of colors.

xlim

the x limits of the plot.

ylim

the y limits of the plot.

main

title of the plot(s). This option has priority over main.vars, i.e, if any value is informed, the variable names will not be used as title of the plot(s). For fdt.multiple, the value should be a vector of characters, in this case, the R's recycling rule will be used.

main.vars

logical flag: should the variables names be added as title of each plot (default TRUE)?

x.round

a numeric value to round the x ticks: 0: parallel to the axes,
1: horizontal,
2: perpendicular to the axes,
3: vertical.

box

if TRUE (the default!), a box will be placed on the graphics. Only to categorical variable.

grouped

if TRUE, the lines of the polygon types will be plotted in the same graphics. It's work only if the "by" argument is used.

args.legend

list of additional arguments to be passed to legend; names of the list are used as argument names. Only used if grouped=TRUE. The default is NULL.

...

optional plotting parameters.

Author

Faria, J. C.
Allaman, I. B
Jelihovschi, E. G.

Details

The result is a single histogram or polygon (absolute, relative or cumulative) for fdt.default or a set of histograms or polygon (absolute, relative or cumulative) for fdt.multiple objects. Both default and multiple try to compute the maximum number of histograms that will fit on one page, then it draws a matrix of histograms. More than one graphical device may be opened to show all histograms.

The result is a single barplot, polygon, dotchar (absolute, relative or cumulative) and Pareto chart for fdt_cat.default or a set of the same graphs for fdt_cat.multiple objects. Both default and multiple try to compute the maximum number of histograms that will fit on one page, then it draws a matrix of graphs lited above. More than one graphical device may be opened to show all graphs.

Examples

Run this code
library(fdth)

#================================
# Vectors: univariated numerical
#================================
x <- rnorm(n=1e3,
           mean=5,
           sd=1)

(ft <- fdt(x))

# Histograms
plot(ft)  # Absolute frequency histogram

plot(ft,
     main='My title')

plot(ft,
     x.round=3,
     col='darkgreen')

plot(ft,
     xlas=2)

plot(ft,
     x.round=3,
     xlas=2,
     xlab=NULL)

plot(ft,
     v=TRUE, 
     cex=.8,
     x.round=3,
     xlas=2,
     xlab=NULL,
     col=rainbow(11))

plot(ft,
     type='fh')    # Absolute frequency histogram

plot(ft,
     type='rfh')   # Relative frequency histogram

plot(ft,
     type='rfph')  # Relative frequency (%) histogram

plot(ft,
     type='cdh')   # Cumulative density histogram

plot(ft,
     type='cfh')   # Cumulative frequency histogram

plot(ft,
     type='cfph')  # Cumulative frequency (%) histogram

# Poligons
plot(ft,
     type='fp')    # Absolute frequency polygon

plot(ft,
     type='rfp')   # Relative frequency polygon

plot(ft,
     type='rfpp')  # Relative frequency (%) polygon

plot(ft,
     type='cdp')   # Cumulative density polygon

plot(ft,
     type='cfp')   # Cumulative frequency polygon

plot(ft,
     type='cfpp')  # Cumulative frequency (%) polygon

# Density
plot(ft,
     type='d')     # Density

# Theoretical curve and fdt
x <- rnorm(1e5,
           mean=5,
           sd=1)

plot(fdt(x,
         k=100), 
     type='d', 
     col=heat.colors(100))

curve(dnorm(x,
            mean=5,
            sd=1),
      col='darkgreen',
      add=TRUE,
      lwd=2)


#==================================
# Vectors: univariated categorical
#==================================
x <- sample(letters[1:5],
            1e3,
            rep=TRUE)

(ft.c <- fdt_cat(x))

# Barplot: the default
plot(ft.c)

# Barplot
plot(ft.c,
     type='fb')

# Polygon
plot(ft.c,
     type='fp')

# Dotchart
plot(ft.c,
     type='fd')

# Pareto chart
plot(ft.c,
     type='pa')

#=============================================
# Data.frames: multivariated with categorical
#=============================================
mdf <- data.frame(X1=rep(LETTERS[1:4], 25),
                  X2=as.factor(rep(1:10, 10)),
                  Y1=c(NA, NA, rnorm(96, 10, 1), NA, NA),
                  Y2=rnorm(100, 60, 4),
                  Y3=rnorm(100, 50, 4),
                  Y4=rnorm(100, 40, 4),
                  stringsAsFactors=TRUE)

# Histograms
(ft <- fdt(mdf,
           na.rm=TRUE))

plot(ft,
     v=TRUE,
     cex=.8)

plot(ft,
     col='darkgreen',
     ylim=c(0, 40))

plot(ft,
     col=rainbow(8), 
     ylim=c(0, 40),
     main=LETTERS[1:4])

plot(ft,
     type='fh')

plot(ft,
     type='rfh')

plot(ft,
     type='rfph')

plot(ft,
     type='cdh')

plot(ft,
     type='cfh')

plot(ft,
     type='cfph')

# Poligons
plot(ft,
     v=TRUE,
     type='fp')

plot(ft,
     type='rfp')

plot(ft,
     type='rfpp')

plot(ft,
     type='cdp')

plot(ft,
     type='cfp')

plot(ft,
     type='cfpp') 

# Density
plot(ft,
     type='d')     

levels(mdf$X1)

plot(fdt(mdf,
         k=5,
         by='X1',
         na.rm=TRUE),
     ylim=c(0, 12))

levels(mdf$X2)

plot(fdt(mdf,
         breaks='FD', 
         by='X2',
         na.rm=TRUE))

plot(fdt(mdf,
         k=5,
         by='X2',
         na.rm=TRUE))  # It is difficult to compare

plot(fdt(mdf,
         k=5,
         by='X2',
         na.rm=TRUE),
     ylim=c(0, 8))  # Easy

plot(fdt(iris,
         k=5))

plot(fdt(iris,
         k=5),
     col=rainbow(5))

plot(fdt(iris, 
         k=5,
         by='Species'),
     v=TRUE)

ft <- fdt(iris,
          k=10)

plot(ft)

plot(ft,
     type='d')

# Categorical data 
(ft.c <- fdt_cat(mdf))
plot(ft.c)

plot(ft.c,
     type='fd',
     pch=19)

#=========================
# Matrices: multivariated
#=========================
plot(fdt(state.x77))

plot(fdt(volcano))

Run the code above in your browser using DataLab