回答:
私はあなたがこれを探していると思います:
require(ggplot2)
df <- data.frame(x=seq(1, 1e9, length.out=100), y=sample(100))
# displays x-axis in scientific notation
p <- ggplot(data = df, aes(x=x, y=y)) + geom_line() + geom_point()
p
# displays as you require
require(scales)
p + scale_x_continuous(labels = comma)
あなたは次のようなことを試しましたか?
options(scipen=10000)
プロットする前に?
@Arunの更新内容です。今日試してみましたが、実際に実行されたため機能しませんでした。
+ scale_x_continuous(labels = scales::comma)
require(scales)
?これにより、comma
スケールを含むパッケージがインポートされます。ご存知のように、事前にパッケージを要求する代わりに、参照するときにパッケージを指定することもできます。
より一般的な解決策としてscales::format_format
、科学表記法を削除するために使用できます。また、これscales::comma
により、桁数をコンマで区切るだけでなく、ラベルを正確に表示する方法について多くの制御が可能になります。
例えば:
require(ggplot2)
require(scales)
df <- data.frame(x=seq(1, 1e9, length.out=100), y=sample(100))
# Here we define spaces as the big separator
point <- format_format(big.mark = " ", decimal.mark = ",", scientific = FALSE)
# Plot it
p <- ggplot(data = df, aes(x=x, y=y)) + geom_line() + geom_point()
p + scale_x_continuous(labels = point)
スケールライブラリを必要としないソリューションがあります。
あなたが試すことができます:
# To deactivate scientific notation on y-axis:
p + scale_y_continuous(labels = function(x) format(x, scientific = FALSE))
# To activate scientific notation on y-axis:
p + scale_y_continuous(labels = function(x) format(x, scientific = TRUE))
# To deactivate scientific notation on x-axis:
p + scale_x_continuous(labels = function(x) format(x, scientific = FALSE))
# To activate scientific notation on x-axis:
p + scale_x_continuous(labels = function(x) format(x, scientific = TRUE))
Rが科学表記法に使用するペナルティを高く設定する最も簡単な一般的な解決策ではありませんか?
つまりscipen()
、使いやすい番号に設定します。
たとえば、グラフの軸の最大値が100 000である可能性が高い場合、設定scipen(200000)
により、R(およびggplot)が200000未満のすべての数値に標準表記を使用し、ggplot関数に線を追加する必要がなくなります。