Настроить тики x-axis

У меня очень большой фрейм данных (2 столбца) в терминах записей. Я построил график в ggplot2. Ось X - это время, а ось Y - значения. В течение определенного промежутка времени от 50 до 60 я хочу, чтобы размеры тиков были меньше, например (50,51,51,53,... 59,60). Для остальной части оси отлично, чтобы тики были увеличены на 10. Таким образом, я ожидал бы, что значения по оси X будут такими:

10,20,30,40,50,51,52,53,54,55,56,57,58,58,60,70,80,90,..190,200.

Я знаю, я могу изменить тики через scale_x_continuous, используя breaks и minor_breaks. Однако я не получаю ожидаемый результат. Вот моя попытка: (примечание: создали данные, например, так как мои данные очень большие).

data:
-----
x<-seq(1:200)
y<-seq(51,250,by=1)
df<-data.frame(x=x,y=y)

code:(Update based on @Didzis Elferts suggestion) 
-----
ggplot(data=df, aes(x,y))+geom_line(size=1.6)+ 
   scale_x_continuous( breaks=c(10,20,30,40,seq(50,60,by=2),seq(70,200,10))
                       ,minor_breaks=seq(50,60,by=2) )+
   +theme(axis.text.x=element_text(size=16),axis.text.y=element_text(size=16))+
   +theme(axis.title.x=element_text(size=16),axis.title.y=element_text(size=16))+ 
   +theme(axis.ticks.x = element_line(size = 1))+xlab("Time")+ylab("value")
   +theme(axis.ticks.length=unit(0.8,"cm"))

Основываясь на приведенном ниже предположении, единственная проблема теперь заключается в том, что значения оси X во время интервала между 50-60 явно не проявились. sample of O/P Любые предложения, чтобы сделать это ясно!

Ответы

Ответ 1

С аргументом minor_breaks= вы устанавливаете небольшие линии сетки. Для установки чисел под ось x все номера должны быть снабжены аргументом breaks=.

ggplot(data=df, aes(x,y))+geom_line(size=1.6)+ 
  scale_x_continuous(breaks=c(10,20,30,40,seq(50,60,by=1),seq(70,200,10)),
          minor_breaks=seq(50,60,by=1))

Для второй проблемы - вы устанавливаете axis.ticks.x=element_line(size=5) внутри theme() -, что делает вашу ось более широкой, чтобы они отображались как маленькие прямоугольники. Если вы хотите, чтобы тики оси больше использовали axis.ticks.length=.

+theme(axis.ticks.length=unit(0.5,"cm"))