I'm having problems with the size of the labels of the plots. So, this is the code:
column1 <- c(0.18936045, 0.55010315, 0.23474801, 0.02578839)
column2 <- c(0.20522653, 0.51235168, 0.26060781, 0.02181398 )
example_data <-
data.frame(
rowNames = c('[-2.34898,-0.83219]', '(-0.83219,0.684599]', '(0.684599,2.20139]', '(2.20139,3.71818]'),
column1 = column1,
column2 = column2
)
plot(data = example_data, column1 ~ column2, xlab = "Marginal probs scaledsci",
ylab = "Actual probs from data", pch = 20, col = 'blue')
text(data = example_data, column1 ~ column2, labels = rowNames, cex = .6, pos = 2.99, col = 'red')
This is the plot I obtain: plot obtained
So, I would like to have all the points with their labels visible. So, could someone help me with this?
If you want to keep your text position relative to the points the way you defined it with the pos
parameter, one option would be to increase the limits of the x axis range (particularly on the left side), eg:
xlim2 <- {r2=diff(range(column1))*.6; c(mean(column1)-r2, max(column1))}
plot(data = example_data, column1 ~ column2, xlab = "Marginal probs scaledsci",
ylab = "Actual probs from data", pch = 20, col = 'blue', xlim=xlim2)
text(data = example_data, column1 ~ column2, labels = rowNames, cex = .6, pos = 2.99, col = 'red')
For plots I prefer ggplot
. When I run into issues with the positions of labels (overlaps with datapoints and such) I often add the functionalities of the package ggrepel
. Example below.
library(ggplot2)
library(ggrepel)
ggplot(example_data, aes(x = column1, y = column2)) + geom_point(size = 4, col = "blue") + labs(x = "Marginal probs scaledsci", y = "Actual probs from data") + geom_text_repel(label = example_data$rowNames, col = "red", nudge_y = 0.02) +
theme_bw() + theme(text = element_text(size = 15))
The nudge_y
parameter moves your label with 0.02 units of your y-variable. Its optional but looked better in my opinion.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.