0

我有ggplot一个geom_text()

geom_text(y = 4, aes(label = text))

变量文本具有以下格式:

number1-number2

我想知道是否可以为 number1 定义一种颜色,为 number2 定义另一种颜色(例如:红色和绿色)

谢谢!

4

2 回答 2

1

一种方法是,例如,如果您将 number1 和 number2 的标签文本作为数据框中的单独列:

ggplot(data, aes(x,y)) + geom_text(label=data[,3], color="red", vjust=0) + geom_text(label=data[,4], color="blue", vjust=1)
于 2013-09-14T17:30:53.793 回答
1

您也可以尝试annotate

# data for plot
df <- data.frame(x = 1:5, y = 1:5)

# data for annotation
no1 <- "number1"
no2 <- "number1"
x_annot <- 4
y_annot <- 5
dodge <- 0.3

ggplot(data = df, aes(x = x, y = y)) +
  geom_point() +
  annotate(geom = "text", x = c(x_annot - dodge, x_annot, x_annot + dodge), y = y_annot,
           label = c(no1, "-", no2),
           col = c("red", "black", "green")) + 
theme_classic()

我在调用之外定义了标签和位置annotate,这可能更容易更动态地生成这些变量,例如,如果“number1”实际上可以从原始数据集计算,或者位置基于 x 和 y 的范围。

于 2013-09-14T18:33:38.543 回答