ใน ggplot2 ฉันจะหยุดการย่อป้ายแกนได้อย่างไร - เช่น1e+00, 1e+01
ตามแกน x เมื่อพล็อตแล้ว ดีฉันต้องการบังคับ R 1,10
เพื่อแสดงค่าที่แท้จริงซึ่งในกรณีนี้จะเป็น
ความช่วยเหลือใด ๆ ที่ชื่นชมมาก
ใน ggplot2 ฉันจะหยุดการย่อป้ายแกนได้อย่างไร - เช่น1e+00, 1e+01
ตามแกน x เมื่อพล็อตแล้ว ดีฉันต้องการบังคับ R 1,10
เพื่อแสดงค่าที่แท้จริงซึ่งในกรณีนี้จะเป็น
ความช่วยเหลือใด ๆ ที่ชื่นชมมาก
คำตอบ:
ฉันคิดว่าคุณกำลังมองหาสิ่งนี้:
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) จะใช้สัญลักษณ์มาตรฐานสำหรับตัวเลขทั้งหมดที่ต่ำกว่า 200,000 และจะไม่มีข้อกำหนดในการเพิ่มบรรทัดใด ๆ ในฟังก์ชัน ggplot
การขยายคำถามเดิมให้ประกอบด้วยเศษส่วนเช่น 1, 0.1, 0.01, 0.001 เป็นต้นและหลีกเลี่ยงการลากเลขศูนย์
p + scale_x_continuous(labels = function(x) sprintf("%g", x))