plot.mat {blockmodeling}R Documentation

Functions for plotting a partitioned matrix

Description

The main function plot.mat plots a (optionally partitioned) matrix. If the matrix is partitioned, the rows and columns of the matrix are rearranged according to the partitions. Other functions are only wrappers for plot.mat for convenience when plotting the results of the corresponding functions. The plot.mat.nm plots two matrices based on M, normalized by rows and columns, next to each other.

Usage

plot.mat(x=M, M=x, clu = NULL, ylab = "", xlab = "", main = NULL,
   print.val = !length(table(M)) <= 2, print.0 = FALSE,
   plot.legend = !print.val && !length(table(M)) <= 2,
   print.legend.val = "out", print.digits.legend = 2,
   print.digits.cells = 2, print.cells.mf = NULL,
   outer.title = !plot.legend,
   title.line = ifelse(outer.title, -1.5, 7),
   mar = c(0.5, 7, 8.5, 0) + 0.1, cex.val = "default",
   val.y.coor.cor = 0, val.x.coor.cor = 0, cex.legend = 1,
   legend.title = "Legend", cex.axes = "default",
   print.axes.val = NULL,
   print.x.axis.val = !is.null(colnames(M)),
   print.y.axis.val = !is.null(rownames(M)),
   x.axis.val.pos = 1.1, y.axis.val.pos = -0.1,
   cex.main = par()$cex.main, cex.lab = par()$cex.lab,
   yaxis.line = -1.5, xaxis.line = -1, legend.left = 0.4,
   legend.up = 0.03, legend.size = 1/min(dim(M)),
   legend.text.hor.pos = 0.5, par.line.width = 3,
   par.line.col = "blue", IM.dens = NULL, IM = NULL, wnet = 1,
   wIM = NULL,
   use.IM = length(dim(IM))==length(dim(M))|!is.null(wIM),
   dens.leg = c(null = 100),
   blackdens = 70, plotLines = TRUE, ...)
  
plot.mat.nm(x=M, M=x, ..., main.title = NULL,
   title.row = "Row normalized", 
   title.col = "Column normalized",
   main.title.line = -2, par.set = list(mfrow = c(1, 2)))

## S3 method for class 'mat':
plot(x=M, M=x, clu = NULL, ylab = "", xlab = "",
   main = NULL, print.val = !length(table(M)) <= 2,
   print.0 = FALSE,
   plot.legend = !print.val && !length(table(M)) <= 2,
   print.legend.val = "out", print.digits.legend = 2,
   print.digits.cells = 2, print.cells.mf = NULL,
   outer.title = !plot.legend,
   title.line = ifelse(outer.title, -1.5, 7),
   mar = c(0.5, 7, 8.5, 0) + 0.1, cex.val = "default",
   val.y.coor.cor = 0, val.x.coor.cor = 0, cex.legend = 1,
   legend.title = "Legend", cex.axes = "default",
   print.axes.val = NULL,
   print.x.axis.val = !is.null(colnames(M)),
   print.y.axis.val = !is.null(rownames(M)),
   x.axis.val.pos = 1.1, y.axis.val.pos = -0.1,
   cex.main = par()$cex.main, cex.lab = par()$cex.lab,
   yaxis.line = -1.5, xaxis.line = -1, legend.left = 0.4,
   legend.up = 0.03, legend.size = 1/min(dim(M)),
   legend.text.hor.pos = 0.5, par.line.width = 3,
   par.line.col = "blue", IM.dens = NULL, IM = NULL, wnet = 1,
   wIM = NULL,
   use.IM = length(dim(IM)) == length(dim(M)) | !is.null(wIM),
   dens.leg = c(null = 100), blackdens = 70, plotLines = TRUE,
   ...)

## S3 method for class 'crit.fun':
plot(x, main = NULL, ...)

## S3 method for class 'opt.par':
plot(x, main = NULL, which = 1, ...)

## S3 method for class 'opt.par.mode':
plot(x, main = NULL, which = 1, ...)

## S3 method for class 'opt.more.par':
plot(x, main = NULL, which = 1, ...)

## S3 method for class 'opt.more.par.mode':
plot(x, main = NULL, which = 1, ...)

## S3 method for class 'check.these.par':
plot(x, main = NULL, which = 1, ...)

Arguments

x A result from a corespodning function or a matrix or similar object representing a network
M A matrix or similar object representing a network - either x or M must be supplied - both are here to make the code compatible with generic and with older functions
clu A partition
ylab Label for y axis
xlab Label for x axis
main Main title
main.title Main title in nm version
main.title.line The line in which main title is printed in nm version
title.row Title for the row-normalized matrix in nm version
title.col Title for the column-normalized matrix in nm version
par.set A list of possible ploting paramters (to par) to be used in nm version
print.val Should the values be printed in the matrix
print.0 If print.val=TRUE Should the 0s be printed in the matrix
plot.legend Should the legend for shades be ploted
print.legend.val Should the values be printed in the legend
print.digits.legend The number of digits that should appear in the legend
print.digits.cells The number of digits that should appear in the cells (of the matrix and/or legend)
print.cells.mf if not NULL, the above argument is igonred, the cell values are printed as the cell are multiplied by this factor and rounded
outer.title Should the title be printed on the 'inner' or 'outer' plot, default is 'inner' if legend is ploted and 'outer' otherwise. May be soon omited.
title.line The line (from the top) where the title should be printed. The suitable values depend heavily on the displey type.
mar A numerical vector of the form 'c(bottom, left, top, right)' which gives the lines of margin to be specified on the four sides of the plot. The R default for ordianry plots is 'c(5, 4, 4, 2) + 0.1', while this functions default is c(0.5, 7, 8.5, 0) + 0.1.
cex.val Size of the values printed. The "default" is 10/"number of units"
val.y.coor.cor Correction for centering the values in the sqares in y direction
val.x.coor.cor Correction for centering the values in the sqares in x direction
cex.legend Size of the text in the legend
legend.title The title of the legend
cex.axes Size of the characters in axes, 'default' makes the cex so small that all categories can be printed
print.axes.val Should the axes values be printed, 'default' prints each axis if 'rownames' or 'colnames' is not 'NULL'
print.x.axis.val Should the x axis values be printed, 'default' prints each axis if 'rownames' or 'colnames' is not 'NULL'
print.y.axis.val Should the y axis values be printed, 'default' prints each axis if 'rownames' or 'colnames' is not 'NULL'
x.axis.val.pos x coordiante of the y axis values
y.axis.val.pos y coordiante of the x axis values
cex.main Size of the text in the main title
cex.lab Size of the text in matrix
yaxis.line The position of the y axis (the argument 'line')
xaxis.line The position of the x axis (the argument 'line')
legend.left How much left should the legend be from the matrix
legend.up How much up should the legend be from the matrix
legend.size Relative legend size
legend.text.hor.pos Horizontal position of the legend text (bottom) - 0 = bottom, 0.5 = middle,...
par.line.width The width of the line that seperates the partitions
par.line.col The color of the line that seperates the partitions
IM.dens The densitiey of shading lines for each block
IM The image (as obtaind with crit.fun) of the blockmodel. dens.leg is used to translate this image into IM.dens.
dens.leg It is used to translate the IM into IM.dens.
blackdens At which density should the values on dark colurs of lines be printed in white.
plotLines Should the lines in the matrix be printed - default TRUE, best set to FALSE for larger networks.
which Which (if there are more than one) of optimal solutions to plot
wnet Specifies which net (if more) should be ploted - used if M is an array.
wIM Specifies which IM (if more) should be used for ploting (defualt = wnet) - used if IM is an array.
use.IM Specifies if IM should IM be used for ploting? be used for ploting?
... Aditional arguments to plot.default for plot.mat and also to plot.mat for other functions

Value

The functions are used for their side affect - plotting.

Author(s)

Aleš Žiberna

References

ŽIBERNA, Aleš (2006): Generalized Blockmodeling of Valued Networks. Social Networks, Jan. 2007, vol. 29, no. 1, 105-126. http://dx.doi.org/10.1016/j.socnet.2006.04.002.

ŽIBERNA, Aleš. Direct and indirect approaches to blockmodeling of valued networks in terms of regular equivalence. J. math. sociol., 2008, vol. 32, no. 1, 57-84. http://www.informaworld.com/smpp/content?content=10.1080/00222500701790207.

See Also

crit.fun, opt.par, opt.random.par, opt.these.par, check.these.par

Examples

#Generation of the network
n<-20
net<-matrix(NA,ncol=n,nrow=n)
clu<-rep(1:2,times=c(5,15))
tclu<-table(clu)
net[clu==1,clu==1]<-rnorm(n=tclu[1]*tclu[1],mean=0,sd=1)
net[clu==1,clu==2]<-rnorm(n=tclu[1]*tclu[2],mean=4,sd=1)
net[clu==2,clu==1]<-rnorm(n=tclu[2]*tclu[1],mean=0,sd=1)
net[clu==2,clu==2]<-rnorm(n=tclu[2]*tclu[2],mean=0,sd=1)

#Ploting the network
plot.mat(M=net, clu=clu)
class(net)<-"mat"
plot(net, clu=clu)
#See corespodning functions for examples for other plotting 
#functions
#presented, that are esentially only the wrappers for "plot.max"

[Package blockmodeling version 0.1.7 Index]