Как установить ylim для y_continuous в R? - PullRequest
0 голосов
/ 30 апреля 2020

Я новичок в R, и я хочу знать, как установить предельный процент scale_y_continuous в R. Я хочу установить ylim btw от 0% до 40%, но он не работал: (

Вот мой код:

library(ggplot2)
library(scales)
dat <- data.frame(
  time = factor(c("Breakfast","Lunch","Lunch","Dinner"), levels=c("Breakfast","Lunch","Dinner")),
  total_bill = c(12.75,14.89,"*",17.23)
)
#clear the * row and save the new dataframe
dat1 <- droplevels(subset(dat, total_bill != "*"))
dat1 <- type.convert(dat1, as.is = TRUE)

# add a column for percent of total bill
dat1$perc <- ((dat1$total_bill)/sum(dat1$total_bill)) * 100

# example plot with some minimal formatting
ggplot(dat1, aes(time,perc)) +
  geom_bar(aes(y=perc),stat="identity",fill = "#4B0082") +
  geom_text(aes(label = scales::percent(perc),y=perc),
            vjust=.5,hjust=1.2,color="white")+
  scale_y_continuous(labels = scales::percent,limits = c(0,40))+
  labs(title="x",y="%")+
  coord_flip()

Любая помощь будет высоко ценится

1 Ответ

2 голосов
/ 30 апреля 2020

Есть пара вещей, шкала отображает числа, которые делят пропорции в процентах, поэтому нет необходимости умножать на 100. Тогда ограничения устанавливаются в c (0,0.4) для 40%:

    library(ggplot2)
  library(scales)
  dat <- data.frame(
    time = factor(c("Breakfast","Lunch","Lunch","Dinner"), levels=c("Breakfast","Lunch","Dinner")),
    total_bill = c(12.75,14.89,"*",17.23)
  )
  #clear the * row and save the new dataframe
  dat1 <- droplevels(subset(dat, total_bill != "*"))
  dat1 <- type.convert(dat1, as.is = TRUE)

  # add a column for percent of total bill
  dat1$perc <- ((dat1$total_bill)/sum(dat1$total_bill))

  # example plot with some minimal formatting
  ggplot(dat1, aes(time,perc)) +
    geom_bar(aes(y=perc),stat="identity",fill = "#4B0082") +
    geom_text(aes(label = scales::percent(perc),y=perc),
              vjust=.5,hjust=1.2,color="white")+
    scale_y_continuous(labels = scales::percent,limits = c(0,0.4))+
    labs(title="x",y="%")+
    coord_flip()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...