You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

R语言新手求助:如何将两列表格正确转为连续连线的XY图?

解决R语言中XY图线条乱连的问题

嘿,刚接触R的话遇到这种情况太正常啦!我来帮你捋清楚问题出在哪,还有简单的解决办法~

问题根源

你现在的问题是数据框里的行顺序不是你想要的连线顺序plot()函数默认会按照数据在框里的原始顺序依次连接点,你看你的原始数据里,第一行是(0.5,0),第二行直接跳到了(2.6,9),所以线条就会把这两个点连起来,完全打乱了电场线的连续性。

简便解决方法:先排序数据,再绘图

电场线是随着y值从0到9连续变化的,所以我们只需要把数据按照y [cm]列的升序重新排列,再绘图就可以了。

步骤1:确保数据正确导入

你的CSV用分号做分隔符,导入的时候要指定sep=";",避免读取错误:

data <- read.csv("你的文件名.csv", sep = ";")

步骤2:按y值排序数据框

用基础R的方法就能搞定,不需要额外装包:

# 按照y [cm]列升序排序,得到新的有序数据框
sorted_data <- data[order(data$`y [cm]`), ]

如果你习惯用dplyr包(更简洁的语法),也可以这么做(先装包再使用):

# 先安装包(只需要装一次)
install.packages("dplyr")
library(dplyr)

sorted_data <- data %>% arrange(`y [cm]`)

步骤3:用排序后的数据绘图

现在再绘图,线条就会按照y值从0到9的顺序连续连接所有点了:

plot(sorted_data$`x [cm]`, sorted_data$`y [cm]`, type = "b", 
     xlab = "x [cm]", ylab = "y [cm]", main = "电场线XY图")

额外小提示

如果之后你的电场线是按照x值的逻辑顺序变化,只需要把排序的列换成x [cm]就行,核心就是让数据点的顺序和你想要的连线顺序一致

内容的提问来源于stack exchange,提问作者theCed7

火山引擎 最新活动