2014-12-21 4 views
3

Я хочу использовать ggplot для создания гистограммы с использованием процентов. Я нашел this answer, который доставит мне часть пути.гистограмма ggplot с% и процентами * ярлыки *

Однако я также хочу разместить метку в верхней части каждой строки гистограммы, показывая фактический процент.

Вот мой код и ссылка на выход:

p <- ggplot(mtcars, aes(x = hp)) + 
     geom_bar(aes(y = (..count..)/sum(..count..)), binwidth = 25) + 
     ## scale_y_continuous(labels = percent_format()) #version 3.0.9 
     scale_y_continuous(labels = percent) #version 3.1.0 
p <- p + stat_bin(aes(label=round((..count..)/sum(..count..),2)), geom="text", size=4) 
plot(p) 

Здесь выход: image

К сожалению, вы можете видеть, что метки данных размещены на не-процентных местах и бары «раскалываются» вниз.

Есть ли способ изменить параметры stat_bin так, чтобы текстовые ярлыки отображались внутри или сразу поверх процентных баров (чтобы мои бары не были разрезаны)?

Спасибо!

ответ

2

Вы хотите просто установить y значения для наклеек, а также (а также убедитесь, что вы используете одни и те же бункеры вы для баров)

library(scales) 
p <- ggplot(mtcars, aes(x = hp)) + 
     geom_bar(aes(y = (..count..)/sum(..count..)), binwidth = 25) + 
     scale_y_continuous(labels = percent_format()) #version 3.0.9 
     ##scale_y_continuous(labels = percent) #version 3.1.0 
p <- p + stat_bin(aes(y=(..count..)/sum(..count..), 
    label=round((..count..)/sum(..count..),2)), 
    geom="text", size=4, binwidth = 25, vjust=-1.5) 
plot(p) 
+0

Perfect. Спасибо. Я не знал, что вы можете указать значение y в дополнение к значению метки. Еще раз спасибо. – user36476

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