【问题标题】:How to label nodes in scatter plot in R?如何在R中的散点图中标记节点?
【发布时间】:2013-10-31 15:26:32
【问题描述】:

我有一些数据如下:

xlab ylab xval yval class
1 2 6015 10500 3 
1 7 6015 9696 1 
3 5 6632 15626 3 
3 6 6632 6074 1 
3 5 6632 4189 2 
1 3 6015 6632 1 
1 5 6015 15626 1 

我想使用 xvalyval 列中指定的 x 和 y 坐标创建散点图。每个点都根据 class 列中的值进行着色。这部分我可以做如下:

<!-- language: lang-R -->
data <- read.table(filename, header=TRUE);
df <- data.frame(data["xval"], data["yval"], data["class"]);
plot(xval, yval, col=c("red", "blue", "green")[class],
 main="Title here",
 xlab="Ox title",
 ylab="Oy title");

现在,我想使用 (xlab, ylab) 形式的 xlabylab 列为每个节点创建一个标签.例如。第一个节点被标记为(1,2)。但是,我不知道该怎么做。

有人可以告诉我如何给节点添加标签吗?我是 R 的新手,所以如果您能向我展示示例代码,我将不胜感激。

非常感谢,

【问题讨论】:

    标签: r plot label scatter-plot


    【解决方案1】:

    使用text函数如下:

    with(df, plot(xval, yval, col=c("red", "blue", "green")[class],
     main="Title here",
     xlab="Ox title",
     ylab="Oy title"))
    
    with(df, text(xval, yval, sprintf("(%s, %s)", xlab, ylab)))
    

    我在这里使用 sprint,但您也可以使用 paste/paste0

    【讨论】:

    • 非常感谢您的快速回复,泰勒。我只有一个小问题。如何调整标签的字体和位置?我得到了标签环绕节点,如here 所示。我希望标签更小一点并位于节点上方。你介意也展示那部分吗?
    • 我明白了。我可以通过更改 text() 中 xval 和 yval 的值来更改位置,并使用 cex=0.7 减小字体大小。谢谢,
    • 我想更改每个节点的默认符号。我刚刚了解到我可以使用 pch=as.integer(class)class 列中的值分配给 pch。但是,我想要一些特定的值,例如 pch=15、17 等。有没有办法在不必更改输入数据的情况下做到这一点?你有什么建议吗?
    • 请提出一个新问题。
    • 是的,我应该这样做。但无论如何,经过几次尝试,我想通了。谢谢。
    猜你喜欢
    • 2021-08-16
    • 2012-03-18
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2021-11-13
    相关资源
    最近更新 更多