R: Scatter Density Plot

DensityScatter {DataVisualizations} | R Documentation

## Scatter Density Plot

### Description

Density estimation (PDE) [Ultsch, 2005] or "SDH" [Eilers/Goeman, 2004] used for a scatter density plot.

### Usage

    DensityScatter(X,Y, DensityEstimation="SDH",

    SampleSize, na.rm=FALSE,PlotIt=TRUE,

    NrOfContourLines=20,Plotter='native', DrawTopView = TRUE,

    xlab, ylab, main="DensityScatter",

    xlim, ylim, Legendlab_ggplot="value",...)

### Arguments

`X` | Numeric vector [1:n], first feature (for x axis values)
`Y` | Numeric vector [1:n], second feature (for y axis values)
`DensityEstimation` | "SDH" is very fast but maybe not correct, "PDE" is slow but proably more correct.
`SampleSize` | Numeric, positiv scalar, maximum size of the sample used for calculation. High values increase runtime significantly. The default is that no sample is drawn
`na.rm` | Function may not work with non finite values. If these cases should be automatically removed, set parameter TRUE
`PlotIt` | `TRUE`: plots with function call `FALSE`: Does not plot, plotting can be done using the list element `Handle`
`NrOfContourLines` | Numeric, number of contour lines to be drawn. 20 by default.
`Plotter` | String, name of the plotting backend to use. Possible values are: "`native`", "`ggplot`", "`plotly`"
`DrawTopView` | Boolean, True means contur is drawn, otherwise a 3D plot is drawn. Default: TRUE
`xlab` | String, title of the x axis. Default: "X", see `plot()` function
`ylab` | String, title of the y axis. Default: "Y", see `plot()` function
`main` | string, the same as "main" in `plot()` function
`xlim` | see `plot()` function
`ylim` | see `plot()` function
`Legendlab_ggplot` | String, in case of `Plotter="ggplot"` label for the legend. Default: "value"
`...` | Density specifc parameters, for `PDEscatter()` or SDH (nbins,lambda,Xkernels,Ykernel))

### Details

The `DensityScatter` function generates the density of the xy data as a z coordinate. Afterwards xyz will be plotted either as a contour plot or a 3d plot. It assumens that the cases of x and y are mapped to each other meaning that a `cbind(x,y)` operation is allowed. This function plots the Density on top of a scatterplot. Variances of x and y should not differ by extreme numbers, otherwise calculate the percentiles on both first. If `DrawTopView=FALSE` only the plotly option is currently available. If another option is chosen, the method switches automatically there.

`PlotIt=FALSE` is usefull if one likes to perform adjustements like axis scaling prior to plotting with ggplot2 or plotly. In the case of "`native`"" the handle returns `NULL` because the basic R functon `plot`() is used

### Value

List of:

`X` | Numeric vector [1:m],m<=n, first feature used in the plot or the kernels used
`Y` | Numeric vector [1:m],m<=n, second feature used in the plot or the kernels used
`Densities` | Number of points within the ParetoRadius of each point, i.e. density information
`Handle` | Handle of the plot object. Information-string if native R plot is used.

### Note

MT contributed with several adjustments

### Author(s)

Felix Pape

### References

[Thrun, 2018] Thrun, M. C.: Projection Based Clustering through Self-Organization and Swarm Intelligence, (Ultsch, A. & Huellermeier, E. Eds., 10.1007/978-3-658-20540-9), Doctoral dissertation, Heidelberg, Springer, ISBN: 978-3658205393, 2018.

[Thrun/Ultsch, 2018] Thrun, M. C., & Ultsch, A. : Effects of the payout system of income taxes to municipalities in Germany, in Papiez, M. & Smiech,, S. (eds.), Proc. 12th Professor Aleksander Zelias International Conference on Modelling and Forecasting of Socio-Economic Phenomena, pp. 533-542, Cracow: Foundation of the Cracow University of Economics, Cracow, Poland, 2018.

[Ultsch, 2005] Ultsch, A.: Pareto density estimation: A density estimation for knowledge discovery, In Baier, D. & Werrnecke, K. D. (Eds.), Innovations in classification, data science, and information systems, (Vol. 27, pp. 91-100), Berlin, Germany, Springer, 2005.

[Eilers/Goeman, 2004] Eilers, P. H., & Goeman, J. J.: Enhancing scatterplots with smoothed densities, Bioinformatics, Vol. 20(5), pp. 623-628. 2004.

### Examples

    #taken from [Thrun/Ultsch, 2018]
    data("ITS")
    data("MTY")
    Inds=which(ITS<900&MTY<8000)
    plot(ITS[Inds],MTY[Inds],main='Bimodality is not visible in normal scatter plot')

    DensityScatter(ITS[Inds],MTY[Inds],DensityEstimation="SDH",xlab = 'ITS in EUR',

    ylab ='MTY in EUR' ,main='Smoothed Densities histogram indicates Bimodality' )

    DensityScatter(ITS[Inds],MTY[Inds],DensityEstimation="PDE",xlab = 'ITS in EUR',

    ylab ='MTY in EUR' ,main='PDE indicates Bimodality' )

[Package DataVisualizations version 1.2.3 Index]