我想绘制一个将极坐标直方图(罗盘方位测量值)与极坐标散点图(表示倾角和方位值)组合的绘图。例如,这是我想生产什么(source):将极坐标直方图与极坐标散点图结合起来
让我们忽视了柱状图无意义规模的绝对值;我们在图中显示直方图进行比较,而不是读取确切值(这是地质学中的传统图)。直方图y轴文本通常不会显示在这些图中。
点显示他们的方位(垂直角度)和倾角(距中心的距离)。倾角始终在0到90度之间,轴承始终在0-360度之间。
我可以得到一些方法,但我坚持直方图的尺度(在下面的例子中,0-20)和散点图的尺度之间的不匹配(总是0-90,因为它是一个倾角测量)。
这里是我的例子:
n <- 100
bearing <- runif(min = 0, max = 360, n = n)
dip <- runif(min = 0, max = 90, n = n)
library(ggplot2)
ggplot() +
geom_point(aes(bearing,
dip),
alpha = 0.4) +
geom_histogram(aes(bearing),
colour = "black",
fill = "grey80") +
coord_polar() +
theme(axis.text.x = element_text(size = 18)) +
coord_polar(start = 90 * pi/180) +
scale_x_continuous(limits = c(0, 360),
breaks = (c(0, 90, 180, 270))) +
theme_minimal(base_size = 14) +
xlab("") +
ylab("") +
theme(axis.text.y=element_blank())
如果你仔细观察,你可以在圆圈的中心看到一个很小的直方图。
我怎样才能得到直方图看起来像顶部的情节,以便直方图自动缩放,以便最高的酒吧等于圆的半径(即90)?
也许做ggplot外杆高度的计算,然后将其rescalling 0 -90会做诡计吗?听起来比重新调整倾角更好。 –
您可以使用'geom_histogram(aes(bearing,y = ..count .. * 10)'来放大10倍。自动缩放有点困难,因为它需要访问直方图中的实际中断,但是像'max (dip)/ max(hist(bearing,n = 30,plot = FALSE)$ counts)'should do fine。 – Axeman
此外,您可能想要调换'geom_point'和'geom_histogram'的顺序,以便前者出现顶部。 – Axeman