name - r x軸刻度




如何使用ggplot更改坐標軸上的數字格式? (4)

我使用R和ggplot繪製了一些數據的散點圖,除了y軸上的數字與計算機樣式指數格式化,即4e + 05,5e + 05等一起出現以外,一切都很好。這很明顯無法接受,所以我想讓它顯示為500,000,400,000等等。 獲得正確的指數符號也是可以接受的。

該圖的代碼如下所示:

p <- ggplot(valids, aes(x=Test, y=Values)) +
  geom_point(position="jitter") +
  facet_grid(. ~ Facet) +
  scale_y_continuous(name="Fluorescent intensity/arbitrary units") +
  scale_x_discrete(name="Test repeat") +
  stat_summary(fun.ymin=median, fun.ymax=median, fun.y=median, geom="crossbar")

任何幫助非常感謝。


另一種選擇是用逗號格式化軸標記標籤,方法是使用包scales ,然後添加

 scale_y_continuous(name="Fluorescent intensity/arbitrary units", labels = comma)

到你的ggplot聲明。

如果您不想加載包,請使用:

scale_y_continuous(name="Fluorescent intensity/arbitrary units", labels = scales::comma)

我在這裡遲到了,但在別人想要一個簡單的解決方案的情況下,我創建了一組函數,可以這樣調用:

 ggplot + scale_x_continuous(labels = human_gbp)

這給你人類可讀的x或y軸的數字(或一般真的任何數字)。

你可以在這裡找到函數: Github Repo只需將函數複製到你的腳本中,以便你可以調用它們。


我還發現了另一種做法,在軸上給出了適當的'x10(上標)5'符號。 我在這裡發布它,希望對一些人有用。 我從here得到了代碼,所以我聲稱沒有信任它,這正確地去了Brian Diggs。

fancy_scientific <- function(l) {
     # turn in to character string in scientific notation
     l <- format(l, scientific = TRUE)
     # quote the part before the exponent to keep all the digits
     l <- gsub("^(.*)e", "'\\1'e", l)
     # turn the 'e+' into plotmath format
     l <- gsub("e", "%*%10^", l)
     # return this as an expression
     parse(text=l)
}

然後你可以使用它

ggplot(data=df, aes(x=x, y=y)) +
   geom_point() +
   scale_y_continuous(labels=fancy_scientific) 

x <- rnorm(10) * 100000
y <- seq(0, 1, length = 10)
p <- qplot(x, y)
library(scales)
p + scale_x_continuous(labels = comma)




ggplot2