Что-то вроде следующего может сделать то, что вы хотите.
Прежде всего, я переделаю набор данных, на этот раз установив начальное значение ГСЧ.
set.seed(4821) # Make the code reproducible
Column1 <- paste0('Month_', 1:30)
Variable <- c("A", "B", "C", "D", 'E')
DF <- data.frame(Column1, Variable)
nA <- sum(DF$Variable == "A")
DF$value <- 0
DF$value[DF$Variable == "A"] <- runif(nA, min = 10000, max = 50000)
DF$value[DF$Variable == "B"] <- runif(nA, min = 100, max = 500)
DF$value[DF$Variable == "C"] <- runif(nA, min = 100, max = 500)
DF$value[DF$Variable == "D"] <- runif(nA, min = 100, max = 500)
DF$value[DF$Variable == "E"] <- runif(nA, min = 100, max = 500)
Теперь график.Обратите внимание, что я изменил масштаб вспомогательной оси y с 10
на 100
.
library(ggplot2)
DFA <- subset(DF, Variable == "A")
DFX <- subset(DF, Variable != "A")
scale_y <- 100
p1 <- ggplot(DF) +
geom_bar(data = DFA, aes(x = as.integer(sub("Month_", "", Column1)), y = value, fill = Variable), stat = 'identity') +
geom_line(data = DFX, aes(x = as.integer(sub("Month_", "", Column1)), y = scale_y*value, colour = Variable)) +
scale_y_continuous("New", sec.axis = sec_axis(~./scale_y, name = "Value"), position = "left") +
scale_x_discrete("Column1", labels = as.integer(sub("Month_", "", Column1)))
p1
![enter image description here](https://i.stack.imgur.com/RX7yA.png)