使用ggplot绘制导入数据时轴上出现异常线条的问题
问题:ggplot2绘图时轴上出现异常线条
使用ggplot2绘制pH与叶绿素数据时,图表轴上始终出现异常线条。用R内置绘图工具显示正常,但需使用ggplot2完成绘图。
使用的代码
install.packages("ggplot2") library(ggplot2) # 用于分析的基础数据 pH_and_chloro <- read.csv("C:\\Users\\pc\\Downloads\\pH and Chlorophyll Data.csv") ggplot(pH_and_chloro, aes(Date, Water.Works.Park.pH))+ geom_jitter(size=1, color="orange", width=0.3)
补充信息
编辑1
执行代码str(pH_and_chloro[[c("Date", "Water.Works.Park.pH")]])时,报错:
Error in .subset2(x, i, exact = exact) : subscript out of bounds.
编辑2
数据集的dput输出(省略部分数据):
structure(list(Date = c("Date", "4/1/2022", "4/2/2022", ...), Water.Works.Park.pH = c("pH", "7.871567944", ...), Water.Work.Parks.Chlorophyll = c("Chlorophyll", "1.266202091", ...)), class = "data.frame", row.names = c(NA,-469L))
解决方案
从dput输出可见,数据集把表头当成了第一行数据,导致Date列为字符型(包含"Date"字符串),pH列也为字符型(包含"pH"字符串),这就是ggplot2绘图出现异常线条的核心原因。解决步骤如下:
- 重新读取数据,跳过错误的首行:
pH_and_chloro <- read.csv("C:\\Users\\pc\\Downloads\\pH and Chlorophyll Data.csv", skip = 1)
- 转换数据类型:将Date列转为日期型,pH和叶绿素列转为数值型:
# 转换Date列 pH_and_chloro$Date <- as.Date(pH_and_chloro$Date, format = "%m/%d/%Y") # 转换数值列 pH_and_chloro$Water.Works.Park.pH <- as.numeric(pH_and_chloro$Water.Works.Park.pH) pH_and_chloro$Water.Work.Parks.Chlorophyll <- as.numeric(pH_and_chloro$Water.Work.Parks.Chlorophyll)
- 重新执行绘图代码:
ggplot(pH_and_chloro, aes(Date, Water.Works.Park.pH))+ geom_jitter(size=1, color="orange", width=0.3)
另外,编辑1中的报错是因为选取多列的写法错误,正确写法应为:
str(pH_and_chloro[, c("Date", "Water.Works.Park.pH")])
内容的提问来源于stack exchange,提问作者Gsizzle
相关产品推荐
相关产品推荐

