我想繪製一個將極座標直方圖(羅盤方位測量值)與極座標散點圖(表示傾角和方位值)組合的繪圖。例如,這是我想生產什麼(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