重新创建一个没有数据的图

Recreate a plot without data

有没有办法在没有任何数据的情况下创建类似于下图的图形?

你可以这样做。您可以添加另一个 geom_curve 和几个 geom_vline

library(tidyverse)

ggplot() +
  geom_abline() +
  geom_curve(aes(x = 0, y = 0, xend = 1, yend = 1), curvature = -0.4) +
  annotate("text", x = 0.5, y = 0.5, label = "Line of Equality", angle = 35, vjust = 2) +
  labs(x = "Individuals Neighbourhoods\nAcross Space", y = "Scoioeconomic Position") +
  theme_minimal() +
  theme(axis.text = element_blank())

reprex package (v2.0.1)

于 2022-04-27 创建

对于箭头,您可以使用此代码:arrow = arrow(length = unit(0.5, "cm")) in a geom_segment。没有任何数字有点棘手,但也许你想要这样的东西:

library(ggplot2)
ggplot() + 
  geom_abline(slope = 1) +
  geom_curve(aes(x = 0, y = 0, xend = 1, yend = 1), curvature = -0.4) +
  geom_curve(aes(x = 0, y = 1, xend = 1, yend = 0.1), curvature = 0.4, linetype = "dashed") +
  geom_segment(aes(x=0.9,y=0.98,xend=0.9,yend=0.12), arrow = arrow(length = unit(0.5, "cm"))) +
  geom_segment(aes(x=0.02,y=0.85,xend=0.02,yend=0.23), arrow = arrow(length = unit(0.5, "cm"))) +
  annotate("text", x = 0.5, y = 0.5, label = "Line of Equality", angle = 45, vjust = 2) +
  annotate("text", x = 0.25, y = 0.75, label = "Income (etc.)", angle = 45, vjust = 2) +
  annotate("text", x = 1.2, y = 0.1, label = "Corresponding\nExposure", angle = 0) +
  labs(x = "Individuals Neighbourhoods\nAcross Space", y = "Scoioeconomic Position") +
  scale_x_continuous(limits = c(0, 1.3)) +
  theme_minimal() +
  theme(axis.text = element_blank())

输出: