วิธีแก้ไขข้อผิดพลาด r: ให้ค่าแยกกันในมาตราส่วนต่อเนื่อง


ข้อผิดพลาดที่คุณอาจพบใน R คือ:

 Error: Discrete value supplied to continuous scale

ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามใช้มาตราส่วนต่อเนื่องกับแกนใน ggplot2 เมื่อตัวแปรบนแกนนั้นไม่ใช่ตัวเลข

บทช่วยสอนนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดนี้อย่างชัดเจน

วิธีการทำซ้ำข้อผิดพลาด

สมมติว่าเรามี data frame ต่อไปนี้ใน R:

 #create data frame
df = data. frame (x = 1:12,
                y = rep(c('1', '2', '3', '4'), times= 3 ))

#view data frame
df

    xy
1 1 1
2 2 2
3 3 3
4 4 4
5 5 1
6 6 2
7 7 3
8 8 4
9 9 1
10 10 2
11 11 3
12 12 4

ตอนนี้ สมมติว่าเราพยายามสร้าง Scatterplot ด้วยสเกลแกน y แบบกำหนดเองโดยใช้อาร์กิวเมนต์ scale_y_continuous() :

 library (ggplot2)

#attempt to create scatterplot with custom y-axis scale
ggplot(df, aes (x, y)) +
  geom_point() +
  scale_y_continuous(limits = c(0, 10))

Error: Discrete value supplied to continuous scale

เราได้รับข้อผิดพลาดเนื่องจากตัวแปรแกน Y ของเราเป็นอักขระแทนที่จะเป็นตัวแปรตัวเลข

เราสามารถยืนยันสิ่งนี้ได้โดยใช้ฟังก์ชัน class( ):

 #check class of y variable
class(df$y)

[1] “character”

วิธีการแก้ไขข้อผิดพลาด

วิธีที่ง่ายที่สุดในการแก้ไขข้อผิดพลาดนี้คือการแปลงตัวแปรแกน Y เป็นตัวแปรตัวเลขก่อนที่จะสร้างแผนภาพกระจาย:

 library (ggplot2) 

#convert y variable to numeric
df$y <- as. numeric (df$y)

#create scatterplot with custom y-axis scale
ggplot(df, aes (x, y)) +
  geom_point() +
  scale_y_continuous(limits = c(0, 10))

โปรดทราบว่าเราไม่ได้รับข้อผิดพลาดใดๆ เนื่องจากเราใช้ scale_y_continuous() กับตัวแปรตัวเลขแทนตัวแปรอักขระ

คุณสามารถดูเอกสารออนไลน์ฉบับเต็มสำหรับฟังก์ชัน scale_y_continuous() ได้ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการใช้งานฟังก์ชันการลงจุดทั่วไปอื่นๆ ใน ggplot2:

วิธีตั้งค่าตัวแบ่งแกนใน ggplot2
วิธีลบป้ายกำกับแกนใน ggplot2
วิธีหมุนป้ายกำกับแกนใน ggplot2

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *