修复R中散点图中的重叠节点和节点标签

修复R中散点图中的重叠节点和节点标签,r,plot,scatter-plot,pch,R,Plot,Scatter Plot,Pch,我试图用散点图在R中绘制一些数据。这是我用来绘图的代码 data <- read.table(filename, header=FALSE); colnames(data) <- c("xlabel", "ylabel", "xvalue", "yvalue", "class"); df <- data.frame(data["xlabel"], data["ylabel"],data["xvalue"], data["yvalue"], data["class"]);

我试图用散点图在R中绘制一些数据。这是我用来绘图的代码

data <- read.table(filename, header=FALSE);
colnames(data) <- c("xlabel", "ylabel", "xvalue", "yvalue", "class");   
df <- data.frame(data["xlabel"], data["ylabel"],data["xvalue"], data["yvalue"], data["class"]);
with(df, plot(xvalue, yvalue,       
    pch=c(16,17)[class],
    col=c("red", "blue", "green")[class],
    main="Tittle",
))

#label the nodes    
with(df, text(xvalue+300, yvalue, cex=0.5, sprintf("(%s, %s)", xlabel, ylabel)));

谢谢,

一个简单的解决方法是在左右两侧交替放置标签。我已经按照x值然后y值对数据集进行了排序,因此数据集中的邻近点是邻近的

library(plyr)
df <- arrange(df, xvalue, yvalue)
offset <- rep(c(-300, 300), length.out = nrow(df))

with(df, plot(xvalue, yvalue,       #as before
    pch=c(16,17)[class],
    col=c("red", "blue", "green")[class],
    main="Tittle",
))

with(df, text(xvalue + offset, yvalue, cex=0.5, sprintf("(%s, %s)", xlabel, ylabel)))
库(plyr)

df一个简单的解决方法是在左右两侧交替放置标签。我已经按照x值然后y值对数据集进行了排序,因此数据集中的邻近点是邻近的

library(plyr)
df <- arrange(df, xvalue, yvalue)
offset <- rep(c(-300, 300), length.out = nrow(df))

with(df, plot(xvalue, yvalue,       #as before
    pch=c(16,17)[class],
    col=c("red", "blue", "green")[class],
    main="Tittle",
))

with(df, text(xvalue + offset, yvalue, cex=0.5, sprintf("(%s, %s)", xlabel, ylabel)))
库(plyr)

df您是否注意到您将
df
定义为与
数据相同?尝试
相同(数据,df)
+1。非常感谢。那么,它是具有指定列名的数据帧吗?对不起,基本概念问题。我刚学过R,有些概念一开始非常混乱。一个
数据框架
保存着类似电子表格的数据。您可以将其视为一个
矩阵
,其中每个列可以是不同的类型,也可以将其视为一个非嵌套的
列表
,其中每个元素都是相同长度的向量。您是否注意到您将
df
定义为与
数据
相同?尝试
相同(数据,df)
+1。非常感谢。那么,它是具有指定列名的数据帧吗?对不起,基本概念问题。我刚学过R,有些概念一开始非常混乱。一个
数据框架
保存着类似电子表格的数据。您可以将其视为一个
矩阵
,其中每个列可以是不同的类型,也可以将其视为一个非嵌套的
列表
,其中每个元素都是相同长度的向量。谢谢您,Richie。您的解决方案减少了显著的重叠。然而,仍然存在重叠。我会试试directlabels软件包,看看是否效果更好。谢谢你,里奇。您的解决方案减少了显著的重叠。然而,仍然存在重叠。我将尝试directlabels包,看看它是否工作得更好。