我每年都得到關於頻率的數據。我用ggplot2對這些數據(x - 年; y - 頻率)進行了barplot。現在我想通過爲1980年以下的所有酒吧用紅色和所有酒吧等於或高於1980年用綠色着色來分開barplot圖。我該如何做到這一點 - 下面是我的MWE試圖用scale_fill_manual設置這些邊界,因爲我沒有正確地做到這一點,所以無法正常工作。ggplot2 - 用兩種顏色分開barplot
數據
dput(allePubs2)
structure(list(Jahr = 1922:2015, Publikationen = c(1L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L,
0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 2L, 0L, 0L, 0L, 1L, 0L, 1L, 4L,
2L, 3L, 2L, 2L, 4L, 1L, 4L, 1L, 3L, 6L, 1L, 2L, 2L, 3L, 1L, 2L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 12L, 4L, 5L, 14L, 9L, 6L, 5L, 7L,
5L, 6L, 4L, 7L, 3L, 7L, 6L, 7L, 8L, 6L, 4L, 14L)), .Names = c("Jahr",
"Publikationen"), row.names = c(NA, -94L), class = "data.frame")
MWE嘗試
cutoff80 <-
ggplot(data=allePubs2, aes(x=Jahr, y=Publikationen)) +
geom_bar(stat="identity", width = 0.5)+
scale_y_continuous(name="Anzahl Publikationen", breaks = 0:14, limits = c(0, 15))+
scale_x_continuous(name="Jahr", breaks = c(1920, 1925, 1930, 1935, 1940, 1945, 1950, 1955, 1960, 1965, 1970, 1975,
1980, 1985, 1990, 1995, 2000, 2005, 2010, 2015),
limits = c(1920, 2016))+
ggtitle("Cut-Off bei 1980")+
theme_hc() +
geom_vline(xintercept = 1979.5)+
scale_fill_manual(breaks = c("1922", "1979","1980","2016"),
values=c("red", "red", "green", "green"))
cutoff80
歡迎來到Stack Overflow!您的問題不包含[可重現的示例](http://stackoverflow.com/q/5963269/4303162)。因此很難理解你的問題並給你一個合適的答案。請提供您的數據(例如使用'dput()')或使用R中的示例數據集之一。另外,添加將您的問題重現到您的文章所需的最小代碼。 – Stibu
感謝您的反饋意見。我添加了數據和MWE。希望它的幫助和正確? – Jens
感謝您添加數據和您的代碼!這正是爲了讓您的問題能夠負責所需要的。一個小小的抱怨依然存在:將您的示例放在最小範圍內是有用的,因爲您忽略了與手頭問題無關的任何事情。我認爲你應該忽略'theme_hc()',因爲它似乎不是一個標準功能,並且與你的問題沒有關係。但總的來說,你在改善問題方面做得很好。 – Stibu