修复R中散点图中的重叠节点和节点标签
我试图用散点图在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"]);
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包,看看它是否工作得更好。