Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I label points in this scatterplot?

Can you help me on putting labels on the following graph?

http://img849.imageshack.us/img849/7594/snap1034.png

The code i use is:

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) 

and the data is:

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 

Thank you very much

What is the option to put the label at the bottom, right, up, left,... ?

Summarizing: I want a graph similar that the one that is in the second message from this post but there is no the code there.

What code i have to put?


if i put text(percet_losses, abs_losses,namebank), i obtain nothing: the graph continue without changes.

Could you show me the code i need to put?

Thanks

like image 950
Mika Ike Avatar asked Nov 05 '12 09:11

Mika Ike


People also ask

How do you label a point on a graph?

To label individual points, use the Annotation Tool, located on the Tools toolbar. The annotation tool is simply the data reader tool, but when you double-click on a data point, the (x,y) coordinate value will be displayed on your graph as a text label.

How do you label data points in a scatter plot in Python?

To label the scatter plot points in Matplotlib, we can use the matplotlib. pyplot. annotate() function, which adds a string at the specified position. Similarly, we can also use matplotlib.

How do you add labels to points in Excel?

On the Layout tab, in the Labels group, click Data Labels, and then click the option that you want. For additional data label options, click More Data Label Options, click Label Options if it's not selected, and then select the options that you want.


2 Answers

Your call to text() doesn't output anything because you inverted your x and your 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) 

Now if you want to move your labels down, left, up or right you can add argument pos= with values, respectively, 1, 2, 3 or 4. For instance, to place your labels up:

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

enter image description here

You can of course gives a vector of value to pos if you want some of the labels in other directions (for instance for Goldman_Sachs, UBS and Société_Generale since they are overlapping with other labels):

 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

like image 137
plannapus Avatar answered Oct 24 '22 02:10

plannapus


For just plotting a vector, you should use the following command:

text(your.vector, labels=your.labels, cex= labels.size, pos=labels.position) 
like image 33
Mohammad Avatar answered Oct 24 '22 03:10

Mohammad