Я хочу комбинировать линию и гистограмму с тремя различными переменными, используя ggplot. Гистограмма должна иметь значения сверху и должна быть заполнена теми же цветами, что и строки в приведенной выше таблице. Вот мой кодНесколько строк и гистограмм в ggplot с geom_text и цветами
# First some data generation
df.x = data.frame(date = Sys.Date()-20:1,
value = c(1:20),
variable = "line",
object = "x")
df.y = data.frame(date = Sys.Date()-20:1,
value = c(1:20)*2,
variable = "line",
object = "y")
df.z = data.frame(date = Sys.Date()-20:1,
value = c(1:20)*3,
variable = "line",
object = "z")
df.y.bar = data.frame(date = Sys.Date()-10,
value = 30,
variable = "bar",
object = "y")
df.x.bar = data.frame(date = Sys.Date()-10,
value = 40,
variable = "bar",
object = "x")
df.z.bar = data.frame(date = Sys.Date()-10,
value = 50,
variable = "bar",
object = "z")
df = rbind(df.x, df.y,df.z, df.x.bar, df.y.bar,df.z.bar)
my.cols = c("blue", "green", "yellow")
# Pass everything to ggplot
ggplot(df, aes_string(x = "date", y = "value", fill="variable")) +
facet_grid(variable~., scales="free_y") +
geom_line(data = subset(df, variable == "line"), aes(colour = factor(object)), size = 1, show_guide = FALSE, stat="identity") +
geom_bar(data = subset(df, variable == "bar"), aes(colour = factor(object)), show_guide = TRUE, stat="identity", position = "dodge") +
geom_text(data = subset(df, variable == "bar"), aes(y=value+0.7 * sign(value), ymax=value, label=round(value, 2)), position = position_dodge(width = 0.9), size=3) +
scale_colour_manual(values = my.cols)
Получившийся участок не совсем то, что я хотел. Я использовал position_dodge(width = 0.9)
, но текст над столбцами не перемещается. Ирретически это не происходит, когда я выбрал только две переменные (например, x и y), которые должны быть включены в фрейм данных. Желаемый результат должен выглядеть следующим образом:
Спасибо большое за помощь!
Был мой ответ полезным? – beetroot
Привет, свекла. Он работает с вашими данными. Я попробовал это на своем наборе данных, и раскраска баров работала отлично. К сожалению, текст над барами по-прежнему не перемещается, даже если я применяю группу Argument ... – Pat
Странно, можете ли вы опубликовать некоторые данные и код для воспроизведения текстовой проблемы? – beetroot