使用如下数据框
text <- "
name,miles
tata_zest,99.8
toyota_prius,100.0
honda_civic,99.9
toyota_corolla,100.0
tata_safari,99.1
nissan_sunny,100.0
"
df <- read.table(textConnection(text), sep=",", header = T, stringsAsFactors = F)
我需要为miles
提供name
的条形图,以便它们按miles
的降序排序。所以我做了以下几点。
df <- df %>%
arrange(desc(miles))
df$name <- factor(df$name, levels = df$name)
ggplot() +
geom_col(data=df, aes(x=name, y=miles) )
这给了我一张如下图所示的条形图 - 很好很棒。条形按降序排序。我想生成具有相同数据的水平条形图。通过添加coord_flip()
,可以实现这一目标。然而,挑战在于,在水平条形图中,我希望条形图在顶部具有最大值,在底部具有最小值。
答案 0 :(得分:1)
这样的东西对你有用吗?或多或少与Tino 's comment
相同df <- arrange(df, miles)
df$name <- factor(df$name, levels = df$name)
ggplot(df, aes(name, miles, fill = name)) + geom_col() + coord_flip() +
scale_fill_brewer(palette="Spectral")