Я создал несколько фигур с помощью ggplot2 и назначил фиксированные цвета различным группам (см. ggplot2: Фиксировать цвета на уровнях фактора и ggplot2: Фиксировать цвета на уровнях фактора с длинными именами факторов ) .
Однако сейчас я сталкиваюсь с проблемой, что рисунок больше не может быть экспортирован в .tex-файл через tikz. Без фиксированных цветов это работало очень хорошо! Не могли бы вы помочь мне?
library(ggplot2)
library(stringr)
library(scales)
library(tikzDevice)
latex_percent <- function (x) {
x <- plyr::round_any(x, scales:::precision(x)/100)
stringr::str_c(comma(x * 100), "\\%")}
list_of_factors <- list(paste("Aaljdfgneopgh", "pihjwgwgvldjnfgp wghiwg", sep="\n"),
paste("Baodjfwapi gaafgja3jgamdg", "vaksmngvaksn",sep="\n"),
paste("Cskn", "dvlsnvljengwlankgaksnbvalsknbsfbl", "skn",sep="\n"),
paste("Dafsnjljbi", "penbvmdsvsmvslkb", "ndfbkndfb",sep="\n"))
myColors = c("red", "green", "blue", "yellow")
scale_fill_ind <- function(...){
ggplot2:::manual_scale(
'fill',
values = setNames(myColors, list_of_factors),
...
)
}
df1 <- data.frame(Value = c(40, 20, 10, 60),
Type = c("Aaljdfgneopgh pihjwgwgvldjnfgp wghiwg", "Baodjfwapi gaafgja3jgamdg vaksmngvaksn", "Cskn dvlsnvljengwlankgaksnbvalsknbsfbl skn", "Dafsnjljbi penbvmdsvsmvslkb ndfbkndfb"),
Year = c("2020","2019","2018","2018-2020"),
Count = c("1500","2500","2700","2800"))
p <- ggplot(df1, aes(x = factor(df1$Year, level=c('2018-2020','2018','2019','2020')), y = df1$Value, size = as.numeric(df1$Count), fill = str_wrap(df1$Type,25))) +
ylab('Put ylab here') + xlab('Year') +
geom_point(shape=21, alpha = 0.5) +
scale_y_continuous(limits = c(0,100), labels=latex_percent) +
scale_size_continuous(breaks=c(1000,2000,3000), limits=c(0,3000), labels=c("1,000","2,000","3,000"), range=c(6,22)) +
guides(fill = guide_legend(override.aes = list(size = 6, shape=22))) +
labs(size = "Count", fill = "")
p <- p + scale_x_discrete(label=c("average 2018-2020","2018","2019","2020")) + scale_fill_ind()
p
tikz("C:/.../test.tex", width=14,height=10, pointsize=1)
dev.off()