我正在尝试获得堆积的条形图,但是(我认为)问题是,我将y值的范围设置为:
Punkt Tiefe Zersetzungsgrad
JE1 000-050 H10
JE1 050-100 H10
JE1 100-150 H6
JE1 150-200 H6
JE1 200-250 H5
JE1 250-300 Sandmudde
JE1 300-350 Sandmudde
JE1 350-400 Organomudde
JE3 0-50 H10
JE3 50-100 H9
JE3 100-150 H9
JE3 150-200 H8
JE3 200-250 H6
JE3 250-300 H6
JE3 300-350 H6
JE3 350-400 H6
JE3 400-450 Sandmudde
现在,R只是堆积条形而没有将其与“ Tiefe”中的值关联。这些条甚至都不是高度,应该是。看来,R只是在随机地做事。我认为问题在于y值,因为它们是范围而不是奇异值。我尝试了很多不同的事情,通过论坛等进行了搜索,但是却不知道该怎么做。
任何帮助将不胜感激。我的代码:
zer <- read.table("HorizonteAmanda.csv", header = T, sep = ";", dec = ",", comment.char = "#", fileEncoding="UTF-8-BOM")[c(1:17),]
plot <- ggplot(zer, aes(x = Punkt,y = Tiefe, color = Zersetzungsgrad))
plot + geom_bar(stat = "identity")
尝试绕过此管道:
ymin
和ymax
(请参阅下面的separate(...)
调用;]]Punkt
var转换为factor
,然后转换为numeric
(请参见下面的mutate(...)
调用波纹管):xmin
的xmax
和Punkt
(pm .45);geom_rect(...)
代替geom_bar(...)
来建立绘图:xmin
和xmax
;ymin
和ymax
-有您的深度范围;Punkt
var中的唯一值;theme_few()
库中应用ggthemes
。>所以一种可能的解决方案是:
library(tidyverse) library(ggthemes) dt %>% separate(col = Tiefe, into = c('ymin', 'ymax'), sep = '-', convert = T) %>% mutate(Punkt = as.numeric(as.factor(Punkt))) %>% ggplot( aes(x = Punkt, xmin = Punkt - .45, xmax = Punkt + .45, ymin = ymin, ymax = ymax, fill = Zersetzungsgrad ) ) + geom_rect() + scale_x_continuous(breaks = 1:2, labels = unique(dt$Punkt)) + expand_limits(y = c(0, 500)) + scale_y_reverse(name = 'Tiefe') + ggthemes::theme_few()
[例如,修改
Zersetzungsgrad
var可能是个好主意。在所有H*
中添加前导零以将顺序更改为H05
,H06
,...,H10
。数据:
dt <- read.table( text = " Punkt Tiefe Zersetzungsgrad JE1 000-050 H10 JE1 050-100 H10 JE1 100-150 H6 JE1 150-200 H6 JE1 200-250 H5 JE1 250-300 Sandmudde JE1 300-350 Sandmudde JE1 350-400 Organomudde JE3 0-50 H10 JE3 50-100 H9 JE3 100-150 H9 JE3 150-200 H8 JE3 200-250 H6 JE3 250-300 H6 JE3 300-350 H6 JE3 350-400 H6 JE3 400-450 Sandmudde", header = T, stringsAsFactors = F )