R中使用identify函数标注UBSprices巨无霸价格散点图无响应问题求解
问题原因
identify() 是R内置的交互式标注函数,运行后会进入等待用户交互的状态,控制台看起来"无响应"属于正常现象:
- 如果你使用基础R图形窗口,直接在弹出的窗口点击散点即可标注对应城市名
- 如果你使用RStudio,需要先点击右下角的Plots面板激活,再点击散点完成标注
- 标注完成后按
ESC键即可退出交互模式,恢复控制台操作
替代实现方案
如果你不需要手动点选标注,想要直接完成「找出2003-2009年巨无霸价格涨跌幅最高的城市」的需求,可使用以下方法:
1. 自动标注所有散点
# 绘制基础散点图 plot(bigmac2003, bigmac2009, xlab = "2003年巨无霸价格", ylab = "2009年巨无霸价格") # 自动标注所有城市名称,pos=3指标注在点的上方,cex控制字号 text(bigmac2003, bigmac2009, labels = rownames(UBSprices), pos = 3, cex = 0.7) # 添加y=x参考线:线上方为涨价,下方为降价 abline(a = 0, b = 1, col = "red", lty = 2)
2. 直接计算涨跌幅筛选Top城市
无需绘图即可快速得到目标结果:
# 计算涨跌幅(单位:%) UBSprices$change_rate <- (UBSprices$bigmac2009 - UBSprices$bigmac2003)/UBSprices$bigmac2003 * 100 # 涨幅最高的5个城市 head(UBSprices[order(-UBSprices$change_rate), c("bigmac2003", "bigmac2009", "change_rate")], 5) # 跌幅最高的5个城市 head(UBSprices[order(UBSprices$change_rate), c("bigmac2003", "bigmac2009", "change_rate")], 5)
内容的提问来源于stack exchange,提问作者Alisonia
相关产品推荐
相关产品推荐

