2016-06-21 3 views
-2

Я хотел разбить ось x моей гистограммы на 31 единиц. Поэтому я использовал код, используя qplot():scale_x_continuous() и scale_x_discrete() не работают в R

qplot(x = dob_day, data = pf) + 
    scale_x_discrete(breaks = 1:31) 

И используя ggplot():

ggplot(data = pf, aes(x = dob_day)) + 
    geom_histogram(binwidth = 1) + 
    scale_x_discrete(breaks = 1:31) 

Но ни кода не обновляет сюжет. Вместо того, чтобы консоль показывает

scale_x_discrete(breaks = 1:31) 
ggproto object: Class ScaleDiscretePosition, ScaleDiscrete, Scale> 
aesthetics: x xmin xmax xend 
break_info: function 
break_positions: function 
breaks: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 
call: call 
clone: function 
dimension: function 
drop: TRUE 
expand: waiver 
get_breaks: function 
get_breaks_minor: function 
get_labels: function 
get_limits: function 
guide: none 
is_discrete: function 
is_empty: function 
labels: waiver 
limits: NULL 
map: function 
map_df: function 
na.value: NA 
name: waiver 
palette: function 
range: <ggproto object: Class RangeDiscrete, Range> 
    range: NULL 
    reset: function 
    train: function 
    super: <ggproto object: Class RangeDiscrete, Range> 
range_c: <ggproto object: Class RangeContinuous, Range> 
    range: NULL 
    reset: function 
    train: function 
    super: <ggproto object: Class RangeContinuous, Range> 
reset: function 
scale_name: position_d 
train: function 
train_df: function 
transform: function 
transform_df: function 
super: <ggproto object: Class ScaleDiscretePosition, ScaleDiscrete, Scale> 

То же самое происходит с scale_x_continuous(), где консоль показывает:

> scale_x_continuous(breaks = seq(1, 7, 1), limits = c(0, 7)) 
<ScaleContinuousPosition> 
Range: 
Limits: 0 -- 7 
+0

Я вам не верю. 'ggplot (data = pf, aes (x = dob_day)) + geom_histogram (binwidth = 1) + scale_x_discrete (breaks = 1:31)' не дает этого вывода. Вы что-то не говорите нам. Просьба привести воспроизводимый пример. (То, что вы показываете в конце, - это что-то еще. Там вы не добавляете масштаб в график с помощью '+'.) – Roland

+0

Правильно ... 'scale _ *()' функции возвращают объект 'ggproto', который бесполезен сам (в большинстве случаев). Результат, который вы получаете, - это то, что происходит, если вы просто запускаете функцию 'scale _ *()' самостоятельно. Вам нужно добавить его в сюжет, чтобы быть полезным. – Gregor

+0

@ Роланд, поверь мне или нет, это то, что происходит. Я попытался запустить тот же код в RMD и его работу! – Mehul007

ответ

1

Сделать воспроизводимым. консоль использует этот вывод при запуске scale_x_continuous (breaks = seq (1, 7, 1), limits = c (0, 7)) без привязки к чему-то. Попробуйте следующее:

gg <- ggplot(data = pf, aes(x = dob_day)) 
    gg <- gg + geom_histogram(binwidth = 1) + 
      scale_x_discrete(breaks = 1:31) 
+0

Не работает !! Но тот же код работает в RMD! – Mehul007

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