R中的geom_text有两种颜色

时间:2013-09-14 17:08:25

标签: r ggplot2

我有ggplot geom_text()

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

变量文本具有以下格式:

number1-number2

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

谢谢!

2 个答案:

答案 0 :(得分:1)

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

ggplot(data, aes(x,y)) + geom_text(label=data[,3], color="red", vjust=0) + geom_text(label=data[,4], color="blue", vjust=1)

答案 1 :(得分: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的范围。