Я хотел бы использовать ggplot()
для создания графика с усеченными осевыми линиями, подобного тому, что видно в левом нижнем углу на графике ниже (созданном с помощью базовой графики R).
Я предполагаю, что мне нужно установить аргумент axis.line
в моей теме ggplot
на что-то отличное от element_line()
, но я понятия не имею, на что. Вот код, который у меня сейчас есть
library("ggplot2")
library("ggrepel")
tab <- data.frame(
Average=rnorm(40, mean=12, sd=3),
SD =rnorm(40, mean=12, sd=3),
names = LETTERS[1:40],
class_num = sample(1:4, size=40, replace=TRUE)
)
ggplot(data=tab,
aes(x=Average, y=SD, label=rownames(tab))) +
stat_smooth(method = "lm", size=1, se=FALSE, col = "black") +
geom_point(aes(col=factor(class_num), shape=factor(class_num)), size=2) +
geom_text_repel(size=3) +
xlab(expression("Seasonal average" ~ widehat(ETI)[m])) +
ylab(expression("Seasonal SD of" ~ widehat(ETI)[m])) +
scale_x_continuous(breaks =seq(9.2, 11.8, length.out=5)) +
scale_shape_manual(values=c(15, 16, 17, 18)) +
scale_color_manual(values=c("#CC0000", "darkgreen", "#0000CC", "#000000")) +
theme_classic() +
theme(legend.position = "none",
axis.ticks.length = unit(.25, "cm"),
axis.line = element_line())
Это дает следующий график, где линии оси x и оси y соединяются в нижнем левом углу.
Как насчет этого, он использует функцию coord_capped_cart()
из пакета lemon
. Хорошая дискуссия здесь.
library("ggplot2")
library("ggrepel")
library(lemon)
tab <- data.frame(
Average=rnorm(40, mean=12, sd=3),
SD =rnorm(40, mean=12, sd=3),
names = LETTERS[1:40],
class_num = sample(1:4, size=40, replace=TRUE)
)
ggplot(data=tab,
aes(x=Average, y=SD, label=rownames(tab))) +
stat_smooth(method = "lm", size=1, se=FALSE, col = "black") +
geom_point(aes(col=factor(class_num), shape=factor(class_num)), size=2) +
geom_text_repel(size=3) +
xlab(expression("Seasonal average" ~ widehat(ETI)[m])) +
ylab(expression("Seasonal SD of" ~ widehat(ETI)[m])) +
scale_x_continuous(breaks =seq(7, 17, length.out=5)) +
scale_y_continuous(breaks=seq(5,18, length.out=5)) +
scale_shape_manual(values=c(15, 16, 17, 18)) +
scale_color_manual(values=c("#CC0000", "darkgreen", "#0000CC", "#000000")) +
theme_classic() +
theme(legend.position = "none",
axis.ticks.length = unit(.25, "cm"),
axis.line = element_line()) +
coord_capped_cart(bottom=capped_horizontal(),
left=capped_vertical(capped = "both"))