簡體   English   中英

geom_bar 與 y_axis 比例混淆

[英]geom_bar messing with y_axis scale

我有一些海拔數據,我想將其與數據集中的氣候類別相關聯。 當我嘗試將 plot 作為條形圖查看沿海拔的類別分布時, ggplotgeom_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM