1. ホーム
  2. r

[解決済み] geom_bar() のプロット中に ggplot が X 軸をソートしないようにする。

2023-07-14 16:55:36

質問

以下のようなデータがあり、ggplotでプロットしたいです。

SC_LTSL_BM    16.8275
SC_STSL_BM    17.3914
proB_FrBC_FL   122.1580
preB_FrD_FL    18.5051
B_Fo_Sp    14.4693
B_GC_Sp    15.4986

棒グラフを作りたいのですが、棒グラフの順番を維持したいのです。 (すなわち SC_LTSL_BM ...B_GC_Sp ). しかし ggplot geom_barのデフォルトの動作は、それらをソートすることです。どのように私はそれを避けることができますか?

  library(ggplot2)
  dat <- read.table("http://dpaste.com/1469904/plain/")
  pdf("~/Desktop/test.pdf")
  ggplot(dat,aes(x=V1,y=V2))+geom_bar()
  dev.off()

現在の図はこのような感じです。

どのように解決するのですか?

ggplotに、すでに順序付き因子を持っていることを伝える必要があります。そうすれば、自動的に順序付けされることはないでしょう。

dat <- read.table(text=
"SC_LTSL_BM    16.8275
SC_STSL_BM    17.3914
proB_FrBC_FL   122.1580
preB_FrD_FL    18.5051
B_Fo_Sp    14.4693
B_GC_Sp    15.4986", header = FALSE, stringsAsFactors = FALSE)

# make V1 an ordered factor
dat$V1 <- factor(dat$V1, levels = dat$V1)

# plot
library(ggplot2)
ggplot(dat,aes(x=V1,y=V2))+geom_bar(stat="identity")

<イグ