Подтвердить что ты не робот

Горизонтальный барплот в ggplot2

Я работал над выполнением горизонтальной точки (?) в ggplot2, и это заставило меня задуматься о попытке создать горизонтальный штрих-код. Однако я нахожу некоторые ограничения в возможности сделать это.

Вот мои данные:

df <- data.frame(Seller=c("Ad","Rt","Ra","Mo","Ao","Do"), 
                Avg_Cost=c(5.30,3.72,2.91,2.64,1.17,1.10), Num=c(6:1))
df
str(df)

Сначала я сгенерировал точечный график, используя следующий код:

require(ggplot2)
ggplot(df, aes(x=Avg_Cost, y=reorder(Seller,Num))) + 
    geom_point(colour="black",fill="lightgreen") + 
    opts(title="Avg Cost") +
    ylab("Region") + xlab("") + ylab("") + xlim(c(0,7)) +
    opts(plot.title = theme_text(face = "bold", size=15)) +
    opts(axis.text.y = theme_text(family = "sans", face = "bold", size = 12)) +
    opts(axis.text.x = theme_text(family = "sans", face = "bold", size = 12))

Однако теперь я пытаюсь создать горизонтальный штрих-код и обнаруживаю, что не могу этого сделать. Я пробовал coord_flip(), и это тоже не помогло.

ggplot(df, aes(x=Avg_Cost, y=reorder(Seller,Num))) + 
    geom_bar(colour="black",fill="lightgreen") + 
    opts(title="Avg Cost") +
    ylab("Region") + xlab("") + ylab("") + xlim(c(0,7)) +
    opts(plot.title = theme_text(face = "bold", size=15)) +
    opts(axis.text.y = theme_text(family = "sans", face = "bold", size = 12)) +
    opts(axis.text.x = theme_text(family = "sans", face = "bold", size = 12)) 

Может ли кто-нибудь помочь в том, как создать горизонтальный штрих-код в ggplot2?

4b9b3361

Ответ 1

ggplot(df, aes(x=reorder(Seller, Num), y=Avg_Cost)) +
  geom_bar(stat='identity') +
  coord_flip()

Без stat='identity' ggplot хочет агрегировать ваши данные в count.