【问题标题】:R - Why I couldn't use text() function for my plot in R?R - 为什么我不能在 R 中为我的绘图使用 text() 函数?
【发布时间】:2020-06-02 16:31:06
【问题描述】:

我根据 IMF 数据创建了一个 data.frame,该数据涉及各国的人口动态(《世界经济展望》):

   Country Afghanistan Albania Algeria Angola Antigua.and.Barbuda    Argentina Armenia Aruba Australia  
1    1980        <NA>   2.672  18.666  8.910               0.068   27.950    <NA>  <NA>    14.802      
2    1981        <NA>   2.726  19.246  9.151               0.068   28.450    <NA>  <NA>    15.039

然后我为阿根廷创建了一个情节:

plot(mydata$Country, mydata$Argentina)

并尝试给数据标签发文字:

text(x = mydata$Country,y = mydata$Argentina,labels = mydata$Argentina,cex=0.2)

但我什么都没看到:(

相反,我可以在 mtcars 中轻松完成:

plot(a$mpg, a$hp)
text(a$mpg, a$hp, a$hp)

我的例子有什么问题?

【问题讨论】:

  • 您是否要在图上显示值(27.95 和 28.45)?您的代码已经这样做了。您只需增加cex 即可看到它。
  • 谢谢,但是... 没办法 plot(mydata$Country, mydata$Argentina) text(mydata$Country,mydata$Argentina,mydata$Argentina,cex=2) 我没有看到标签:(

标签: r text label


【解决方案1】:

Aziz 在他的评论中似乎是对的。如果你运行:

## This is the data
mydata <- data.frame(Country = 1980:1981, Argentina= c(27.95, 28.54))
## This is the plot
plot(mydata$Country, mydata$Argentina)
## This writes text in the plot
text(x = mydata$Country,y = mydata$Argentina,labels = mydata$Argentina,cex=1)

您确实会在情节中看到与阿根廷相对应的数字。

【讨论】:

  • 谢谢。对。在那个例子中是正确的——我看到了标签。但是使用来自 IMF WEO 的 data.frame 我做不到:也许就数据格式而言?因为 - 'head(mydata$Argentina)' 我收到了答案:'[1] "27.950" "28.450" "28.930" "29.340" "29.840" "30.350"' 带引号
  • 那么,阿根廷列可能包含字符而不是数值。但是,在这种情况下,问题应该出在情节上,而不是文本上。尝试先做mydata &lt;- mydata %&gt;% mutate(Argentina = Argentina %&gt;% as.numeric())
  • 谢谢@Roland 它有效!但是我怎么能改变整个矩阵,我的意思是所有国家,不仅仅是阿根廷?
  • 开始偏离原来的问题。您介意关闭这个并打开一个新的,以便其他用户清楚吗?
猜你喜欢
  • 2015-09-20
  • 2014-03-01
  • 2016-04-17
  • 2022-08-19
  • 1970-01-01
  • 2013-05-24
  • 2021-09-01
  • 2013-07-21
  • 2020-06-07
相关资源
最近更新 更多