【问题标题】:How can I label points in this scatterplot?如何在此散点图中标记点?
【发布时间】:2012-10-25 03:18:12
【问题描述】:

您能帮我在下图中添加标签吗?

我使用的代码是:

valbanks<-scan("banks.txt", what=list(0,0,""), sep="", skip=1, comment.char="#")
valbanks

valj2007<-valbanks[[1]]
valj2009<-valbanks[[2]]
namebank<-valbanks[[3]]

percent_losses<-(valj2009-valj2007)/valj2007
percent_losses

abs_losses<-(valj2007-valj2009)
abs_losses

plot(abs_losses, percent_losses,main="Absolute Losses vs. Relative Losses(in%)",xlab="Losses (absolute, in miles of millions)",ylab="Losses relative (in % of January´2007 value",col="blue", pch = 19, cex = 1, lty = "solid", lwd = 2,text(percet_losses, abs_losses,namebank))

text(percet_losses, abs_losses,labels=namebank, cex= 0.7, offset = 10)

数据是:

Value_Jan_2007  Value_Jan_2009  Bank    #
49  16  Morgan_Stanley
120 4.6 RBS
76  10.3    Deutsche_Bank
67  17  Credit_Agricole
80  26  Societé_Generale
91  7.4 Barclays
108 32.5    BNP-Paribas
93  26  Unicredit
116 35  UBS
75 27   Credit_Suise
100 35  Goldman_Sachs
116 64  Santander
255 19  Citigroup
165 85  JP_Morgan
215 97  HSBC

非常感谢

将标签放在底部、右侧、向上、左侧、...的选项是什么?

总结:我想要一个类似于来自this post 的第二条消息中的图表 但是那里没有代码。

我必须输入什么代码?


如果我输入text(percet_losses, abs_losses,namebank),我什么也得不到:图表继续没有变化。

你能告诉我我需要输入的代码吗?

谢谢

【问题讨论】:

  • “第二条消息”是指@joran 的this one 吗?如果是这样,他在这个答案中特别解释说,他不是以编程方式制作的,而是使用外部软件手动制作的。

标签: r label point scatter-plot


【解决方案1】:

您对 text() 的调用没有输出任何内容,因为您颠倒了 x 和 y:

plot(abs_losses, percent_losses, 
     main= "Absolute Losses vs. Relative Losses(in%)",
     xlab= "Losses (absolute, in miles of millions)",
     ylab= "Losses relative (in % of January´2007 value)",
     col= "blue", pch = 19, cex = 1, lty = "solid", lwd = 2)

text(abs_losses, percent_losses, labels=namebank, cex= 0.7)

现在,如果您想将标签向下、向左、向上或向右移动,您可以添加参数 pos=,其值分别为 1、2、3 或 4。例如,将标签向上放置:

 text(abs_losses, percent_losses, labels=namebank, cex= 0.7, pos=3)

如果您想要其他方向的某些标签(例如 Goldman_Sachs、UBS 和 Société_Generale,因为它们与其他标签重叠),您当然可以为 pos 提供一个值向量:

 pos_vector <- rep(3, length(namebank))
 pos_vector[namebank %in% c("Goldman_Sachs", "Societé_Generale", "UBS")] <- 4
 text(abs_losses, percent_losses, labels=namebank, cex= 0.7, pos=pos_vector)

【讨论】:

    【解决方案2】:

    如果只是绘制一个向量,你应该使用以下命令:

    text(your.vector, labels=your.labels, cex= labels.size, pos=labels.position)
    

    【讨论】:

      【解决方案3】:

      我已经尝试使用directlabels 包来放置文本标签。在散点图的情况下,它仍然不是完美的,但比手动调整位置要好得多,特别是在您准备草稿图而不是最终图的情况下 - 所以您需要一次又一次地更改和制作图 -。

      【讨论】:

        【解决方案4】:

        您应该在绘图函数中使用标签属性,并且该属性的值应该是包含您希望每个点具有的值的向量。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-16
          • 2021-08-16
          • 1970-01-01
          • 1970-01-01
          • 2013-10-31
          • 2016-08-05
          • 2019-09-30
          • 2012-03-18
          相关资源
          最近更新 更多