ggtext パッケージで許可されているように、css 構文を使用して ggplot2 の x 軸ラベルに異なるマージンを定義しようとしています。CSS セレクターでオブジェクトを作成し、 に使用element_markdown()
しましaxis.text.x
た。ただし、プロットには何も起こりません。
次に例を示します。
library(ggplot2)
library(ggtext)
df <- data.frame(x = runif(n = 20, min = 1, max = 10),
y = runif(n = 20, min = 1, max = 10))
num1 <- c(1, 2, 3, 4, 5)
num2 <- c(6, 7, 8, 9, 10)
labels <- rep(NA, 10)
labels[num1] <- paste0("<span style='margin-top:16px'>", num1, "</span>")
labels[num2] <- paste0("<span style='margin-top:64px'>", num2, "</span>")
ggplot(df, aes(x = x, y = y)) +
geom_point() +
scale_x_continuous(name = "",
limits = c(0, 10),
breaks = seq(1, 10, 1),
labels = labels) +
theme(axis.text.x = ggtext::element_markdown())
ラベルの位置が変わっていないことがわかります。しかし、他のセレクター、つまり を試したところ、font-size
うまくいきました。
例:
labels[num1] <- paste0("<span style='font-size:12px'>", num1, "</span>")
labels[num2] <- paste0("<span style='font-size:6px'>", num2, "</span>")
ggplot(df, aes(x = x, y = y)) +
geom_point() +
scale_x_continuous(name = "",
limits = c(0, 10),
breaks = seq(1, 10, 1),
labels = labels) +
theme(axis.text.x = ggtext::element_markdown())