I want to plot a pointcloud in R using the lidR package. When I plot a pointcloud it automatically uses x and y axis values where the coordinates have been normalized starting from 0, I want to see the actual coordinates from the attribute of the las dataset.
LASfile <- system.file("extdata", "MixedConifer.laz", package="lidR")
las <- readLAS(LASfile)
plot(las, axis = TRUE)
This is documented in plot
clear_artifacts logical. It is a known and documented issue that the 3D visualisation with rgl displays artifacts. The points look aligned and/or regularly spaced in some view angles. This is because rgl computes with single precision float. To fix that the point cloud is shifted to (0,0) to reduce the number of digits needed to represent its coordinates. The drawback is that the point cloud is not plotted at its actual coordinates.
plot(las, axis = TRUE, clear_artifacts = FALSE)
This is also somehow documented in chapter 2.3 of the book.
I am trying to stack multiple 2d plots into a single 3d plot in R.
For example, I want to try and put these plots
into a single 3d image. The z axis would be the biomass density, y axis be the size and the x axis be the time step (and then hopefully I could use a surface plot to join up all the lines). My aim is to try and show the wave travelling through the size over a long period of time instead of showing lots of images.
Does anyone know how to do this?
I am looking for a way to plot a wind 3D direction in R or MATLAB.
There are 3 given vector components:
u : x-axis (horizontal)
v : y-axis (horizontal)
w : z-axis (vertical)
For plotting wind directions in 2D, there is the traditional way of using a rose plot like this: https://commons.wikimedia.org/wiki/File:Wind_rose_plot.jpg
Do you have any idea, how I can plot this in 3D using the R statistic engine or MATLAB, by using the additional w vector?
Thanks a lot!
In MATLAB quiver3 will be the most relevant to your case. More information and examples here.
I'm trying to draw a tangent plot using the EZPLOT function.
For some reason the tangent gets cut off on the y axis after a certain value.
Is there a way of setting ezplot's y axis range of drawing?
I cannot find a straightforward way to make a nice image plot in R, but in polar coordinates. I'm basically attempting to find a R equivalent for the 'polarplot3d' function in MATLAB. I've been playing around with ggplot2 package but without much luck. Am I missing a package that contains functionality for what I'm attempting? thanks in advance for any pointers.
Ok, I'm trying to be more clear about what I'm trying to do. Lets say I want to define a polar coordinate grid, increments in the radial direction are 50m and 2.5 degrees in theta. This should look like a dartboard.
My data (r and angle in below code) are correspond to a radial distance measure and an angle. My desired z-value is the counts of a bivariate histogram between r and angle within the increments described above defining the grid.
My data is like the following:
# synthetic data for angle and distance #
angle <- rnorm(500,mean=90,sd=15)
r <- rnorm(500,mean=700,sd=200)
# bivariate histogram #
observations <- table(cut(angle,breaks=c(seq(0,360,by=2.5))),cut(r,breaks=c(seq(0,1400,by=50))))
# the 'z' data are in observations for each bin of bivariate histogram #
# hot to plot a polar coord image? #
It's very slow to render on my system, but
library(reshape2)
library(ggplot2)
mm <- melt(counts)
ggplot(mm,aes(Var1,Var2,fill=value))+geom_tile()+coord_polar()
ggsave("polar1.png")
appears to work.
I think the following could work. Use mapproject() from the maproj library to transform my xy coordinates acording to a polar projection (or another), Then use as.image() (from fields package) function to build a image object from my new coordiantes and my Z values. Eventually use image.plot().
library("mapproj")
xyProj <- mapproject(x, y, projection="conic", parameters=-90)
library("fields")
im <- as.image(z, x=xyProj)
image.plot(im)