[英]geom_bar messing with y_axis scale
我有一些海拔數據,我想將其與數據集中的氣候類別相關聯。 當我嘗試將 plot 作為條形圖查看沿海拔的類別分布時, ggplot
的geom_bar
中的某些內容將 y 軸比例轉換為一些奇怪的值。 這是示例:
# Example dataset
data_mountain_A <- data.frame(elevation=c(0,500,1000,1500,2000),
temperature=c(20,16,12,8,5),
name="A")
data_mountain_B <- data.frame(elevation=c(0,500,1000,1500,2000,2500,3000),
temperature=c(20,16,12,8,5,0,-5),
name="B")
data_merge <- rbind(data_mountain_A, data_mountain_B)
# Creates the temperature intervals
data_merge$temperature_intervals <- cut(data_merge$temperature,seq(-5,20,5))
# Fancy colors
colfunc <- colorRampPalette(c("white","light blue","dark green"))
# Plot
ggplot(data=data_merge, aes(fill=temperature_intervals, y=elevation, x=name)) +
geom_bar(stat="identity") +
scale_fill_manual(values=colfunc(5))
這是我得到的 output:
關於我做錯了什么的任何提示? 謝謝!
編輯:我發現了這個問題。 它將海拔高度視為一個范圍,而不是單一的衡量標准。 我通過用高程間隔的長度替換高程絕對值來修復它。
我發現了這個問題。 它將海拔高度視為一個范圍,而不是單一的衡量標准。 我通過用高程間隔的長度替換高程絕對值來修復它。
# Example dataset
data_mountain_A <- data.frame(elevation=c(500,500,500,500,500),
temperature=c(20,16,12,8,5),
name="A")
data_mountain_B <- data.frame(elevation=c(500,500,500,500,500,500,500),
temperature=c(20,16,12,8,5,0,-5),
name="B")
data_merge <- rbind(data_mountain_A, data_mountain_B)
# Creates the temperature intervals
data_merge$temperature_intervals <- cut(data_merge$temperature,seq(-5,20,5))
# Fancy colors
colfunc <- colorRampPalette(c("white","light blue","dark green"))
# Plot
ggplot(data=data_merge, aes(fill=temperature_intervals, y=elevation, x=name))+geom_bar(position="stack",stat="identity")+
scale_fill_manual(values=colfunc(5))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.