Отразите метку geom и текст в ggplot. И упорядочение геометрических точек в зависимости от размера
У меня есть 2 кадра данных, таких как эти:
df1 <- data.frame(
party = c("Blue Party", "Red Party"),
dim1 = c(0.03, -0.04),
dim2 = c(-0.05, 0.02),
sz = c(34, 42)
)
df2 <- data.frame(
var = c("Economic", "Gov trust", "Inst trust", "Nationalism", "Religiosity"),
dim1 = c(0.1, -0.5, 0, 0.6, 0.4),
dim2 = c(0.1, 0.6, 0, 0, 0.3)
)
Я хочу подготовить партии от df1
как точки, определенные по размеру и включают стрелки на основе df2
на том же графике. Я использовал ggplot
сделать это:
ggplot(df1, aes(x = dim1, y = dim2, color = party)) +
geom_point(size = df1$sz) +
scale_size_area() +
scale_x_continuous(limits = c(-1.5, 1.5)) +
scale_y_continuous(limits = c(-1.5, 1.5)) +
geom_label_repel(aes(label = party),
box.padding = 1,
point.padding = 1.5,
force = 1) +
geom_segment(aes(xend=0, yend=0, x=dim1, y=dim2), data=df2,
arrow=arrow(length=unit(0.20,"cm"), ends="first", type = "closed"), color="black") +
geom_text_repel(aes(x=dim1, y=dim2, label=var),
data = df2, color = "black", size = 3, force = 1)
В результате чего:
Функции geom_label_repel
а также geom_text_repel
предотвратить наложение ярлыков партий и текстов, но как я могу отталкивать ярлыки и тексты друг от друга?
Моя вторая проблема заключается в том, что я хочу упорядочить точки с самыми маленькими спереди и самыми большими сзади. Как это можно сделать?
Ценю помощь!