2016-08-04 3 views
0

Я не могу прочитать мою ось y, так как имеет много значений. Я попытался повернуть его, и он не работает, как я хочу, и не хочу этого делать.ggplot2 R, Фиксирование больших значений по оси (Строковый график)

Я хочу указать значения в оси, от 20 до 30, может быть, с шагом 0,1.

Но длина значений 1000, поэтому я предполагаю, что диапазон, предложенный выше, не работает (?). Ex:

runNumbers <- seq(from = 1, to = 1000) 
tempVector <- seq(from = 20.0010, to = 30, by = 0.01) 
plotData <- data.frame(RunNumber = runNumbers, temp = tempVector, 
myUglyPlot <- ggplot(data = plotData, mapping = aes(x = RunNumber, y = temp, group = 1)) +  geom_line() 
# 
#http://stackoverflow.com/questions/14428887/overflowing-x-axis-ggplot2?noredirect=1&lq=1 
require(scales) # for removing scientific notation 
# manually generate breaks/labels 
labels     <- seq(from = 0, to = 30, length.out = 1000) 
# and set breaks and labels  
myUglyPlot <- myUglyPlot + scale_y_discrete(breaks = labels, labels = as.character(labels)) 
# And now my graph is without labels, why? 

Есть еще один способ сделать это, не поворачивая мои этикетки? Или я делаю что-то неправильно в коде из другого вопроса (я пытался следить за тем, что он сделал ...)?

Позже у меня будет 10 000 значений вместо этого, так что я на самом деле нужно, чтобы изменить это, я хочу, чтобы иметь читаемый ось, что я могу поставить интервал в.

Может быть, я не хватает в какой-то простой концепции , Я попытался найти и прочитать R Cook Cookbook, но без успеха на данный момент.

Спасибо за ваше время.

Обновление Im пытается использовать перерывы, спасибо за помощь ребятам. Вот что я делаю сейчас (только это):

myUglyPlot <- ggplot(data = plotData, mapping = aes(x = RunNo, y = t_amb, group = 1)) + geom_line() 
myUglyPlot <- myUglyPlot + scale_y_discrete(breaks=seq(from = 1, to = 50, by = 0.01)) 

Но это не дает мне никаких перерывов. См. Рис.

myUglyPlot

+1

термин поиска Google 'ggplot2 ось breaks' даст вам http://www.sthda.com/english/wiki/ggplot2-axis-ticks-a-guide-to-customize-tick-marks-and -labels, http://stackoverflow.com/questions/11335836/increase-number-of-axis-ticks-in-ggplot2, http://stackoverflow.com/questions/17764140/ggplot2-customized-x-axis-ticks , и многое другое ... – Jimbou

ответ

1

Вы почти там .. Так как ваша ось у является непрерывное значение, вам нужно использовать scale_y_continuous вместо scale_y_discrete.

myUglyPlot <- myUglyPlot + scale_y_continuous(breaks = labels) 
+0

Действительно ли это постоянное значение? Это не математически? Или я ошибаюсь? Кроме того, я получаю это «Дискретное значение, предоставленное непрерывной шкале», когда я делаю, как вы говорите, я пробовал это раньше: – Smrow

+1

@Smrow. В вашем примере набора данных есть «temp» как числовая переменная, и поэтому использование непрерывной шкалы вместо дискретного масштаб должен работать нормально (и на вашем примере «myUglyPlot»). – aosmith

+0

Большое спасибо, я думаю, что теперь у меня проблема. В моих «реальных данных» в моем коде у меня есть строки, а не числовые данные, так как они читаются из файла. Теперь он работает, как вы говорите @Dee. Извините за то, что я не осознавал этого раньше, скомканный мной. Спасибо вам, аосмит! – Smrow

Смежные вопросы