Как я могу наметить точки в этой диаграмме рассеяния?
Можете ли вы помочь мне поместить метки на следующий график?
![http://img849.imageshack.us/img849/7594/snap1034.png]()
Используемый код:
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
Большое спасибо
Какая опция поставить ярлык внизу, справа, вверх, влево,...?
Подведение итогов: я хочу, чтобы график был похож на тот, который находится во втором сообщении этого сообщения
но там нет кода.
Какой код мне нужно поставить?
если я положил text(percet_losses, abs_losses,namebank)
, я ничего не получаю: график продолжается без изменений.
Не могли бы вы показать мне код, который мне нужно поставить?
Спасибо
Ответы
Ответ 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)
![enter image description here]()
Конечно, вы можете указать вектор значения pos
, если вам нужны некоторые метки в других направлениях (например, для Goldman_Sachs, UBS и Société_Generale, поскольку они перекрываются с другими метками):
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)
![enter image description here]()
Ответ 2
Я попробовал пакет directlabels
для размещения текстовых меток. В случае разброса графики он еще не совершенен, но намного лучше, чем вручную корректировать позиции, особенно в тех случаях, когда вы готовите черновики, а не финальные, - поэтому вам нужно менять и делать сюжет снова и снова.
Ответ 3
Для просто рисунка вектора вы должны использовать следующую команду:
text(your.vector, labels=your.labels, cex= labels.size, pos=labels.position)
Ответ 4
Вы должны использовать атрибут меток внутри функции plot, а значение этого атрибута должно быть вектором, содержащим значения, которые вы хотите для каждой точки.