2016-10-12 3 views
1

This is the desired output: similar to output by subsettingКак я могу избавиться от пустого пространства, оставшегося на панели графика в R?

diamond subplot

Я использую scale_x_discrete установить пределы оси х. Я хотел бы знать, как избавиться от пустого пространства, оставшегося на панели, и иметь определенные пределы, заполняющие всю ось.

myplot <- ggplot(diamonds, aes(x = clarity, fill = cut)) + #data 
    geom_bar() + #geom 
    scale_x_discrete(limits = c("I1", "SI2", "VS2"), 
        name = "Clarity of Stones") #setting limits #limits 
myplot 
+0

После некоторого обсуждения выясняется, что ваша проблема не является полностью воспроизводимым, поскольку его связано с графическим выходом сессии RollApp R-Studio www.rollapp.com/launch/rstudio. Вы можете попытаться связаться со своим сайтом, чтобы сообщить об этой возможной ошибке. Для любого будущего вопроса я настоятельно рекомендую вам упомянуть * с самого начала * используемую вами платформу, это сэкономит нам много времени :-) – agenis

+0

Большое спасибо @agenis, я не очень убежден, что это платформа потому что я использовал тот же код, используя r studio на моей машине с аналогичной несогласованностью; вы пытались запустить код на своем локальном r IDE? –

+0

ОК, извините, я думал, что у вас был только этот pb на rollapp, это мне было непонятно. Я пробовал разные версии R (3.0.2 3.0.3 3.2.3 с r-gui или r-studio 099.903). Я не пробовал работать со старыми версиями R-studio. Я никогда не смог воспроизвести вашу графику :-( – agenis

ответ

1

Если ваша цель состоит в том, чтобы подмножество данных для конкретных мер (ясность в данном случае), вы должны сделать это в пределах объекта предоставленных данных. Как и в:

ggplot(diamonds[diamonds$clarity %in% c("I1", "SI2", "VS2"),], aes(x = clarity, fill = cut)) + 
    geom_bar() 
+0

Это прекрасно работает, но я ищу «шкалу в пределах оси», альтернативную подмножеству; как это сделать в коде кода без подмножества данных, но если их нет, то я думаю, что подмножество - это способ. –

+0

Я не уверен, что в этом случае я полностью понимаю вашу цель. Возможно, если бы вы могли предоставить желаемый выход, т. е. конкретная комбинация нескольких «geom_x()», где имеет смысл изменять масштаб оси ... тогда я мог бы подумать о чем-то другом. Как правило, в любом случае я бы сделал подмножество данных с единственной разницей - внутри самого объекта geom. –

+0

@ JohnMutuma Я думаю, что ваш первый способ догадки, но в коде была опечатка (см. Мой ответ). Метод, предложенный A.Val, выполняет подмножество, тогда как ваш начальный метод с использованием x 'limits' не нуждается в подмножестве, но печатает s предупреждение из-за удаленных точек: 'Предупреждающее сообщение: Удалено 31747 строк, содержащих не конечные значения (stat_count). ' – agenis

0

его, вероятно, просто проблема синтаксиса, так как вы пропустили скобку в конце вашего limits аргумента и название шкалы ошибочно принят как четвертый столбец вашего X-оси. Вы Шоуда запустить:

ggplot(diamonds, aes(x = clarity, fill = cut)) + geom_bar() + 
    scale_x_discrete(limits = c("I1", "SI2", "VS2"), name = "Clarity of Stones") 
+0

Я исправил ошибку. На самом деле ошибка не была в исходном коде в R, только в приведенном здесь коде ... –

+0

@JohnMutuma OK, но я действительно не понимаю, как вы в конечном итоге со вторым графиком вашей ссылки ... Какая версия ggplot у вас есть? Ваш код запускается в скрипте: http://www.r-fiddle.org/#/fiddle?id=RF41GZBq – agenis

+1

ясно, что в r-скрипте выходной сигнал по желанию. Я запустил код в роллаппе r studio –

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