У меня есть 3 графика, где я хотел бы добавить свои метки по оси Y. Я наткнулся на этот пост и взял функцию для заполнения оси Y, чтобы длина меток на всех 3 графиках была одинаковой длины 60 (или любое число больше 55) символов. Но я не уверен, правильно ли я его использую даже после прочтения документации по функции sprintf
. Функция sprintf, которую я использовал и настраивал: sprintf('%60s', mean_name)
. Когда я пытаюсь поэкспериментировать с ним и выровнять его по левому краю, чтобы увидеть, есть ли какие-либо проблемы с пробелами, это получается очень прикольным - посмотрите на картинку внизу (отредактированные данные). Если я поставлю минус перед 60
, разве это не дополнит строку в конце?
Вот мой код из 3 графиков.
pq1_plop <- ggplot(pq1_agged, aes(y=mean_name, x=mean_2018)) +
geom_vline(xintercept = 3, size = 0.5, color = "#00C4F3") + #Benchmark static line
geom_text(data=data.frame(x=3,y=5), aes(x, y), label="Benchmark", hjust=1, vjust=-.2, colour="#4c4c4c") +
geom_point(aes(x = SY_mean), color="#FD5B14", fill="#FD5B14", size=4, pch=3) +
geom_point(aes(x = PSELI_mean), color="#2B85BA", fill="#2B85BA", size=4, pch=3) +
geom_point(aes(x = mean_2017), color="#BCA8DC", fill="#BCA8DC", size=4, pch=16) +
geom_point(color="#612CB5", fill="#612CB5", size=4, pch=16) +
#guides(colour = "colorbar", size = "legend", shape = "legend") +
xlim(1, 4) +
ylab("Program Organization \n & Structure") +
scale_y_discrete(labels = function(mean_name) sprintf('%-60s', mean_name)) +
theme_bw() +
theme(
axis.title.x =element_blank(),
axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
axis.text.y = element_text(debug=TRUE),
axis.title.y = element_text(angle = 0, vjust = 0.5, margin=margin(0), size=10),
panel.grid.minor.x = element_line(colour = "#cccccc",
linetype = "solid"),
panel.grid.major.x = element_line(colour = "#b2b2b2",
linetype = "solid"),
panel.grid.major.y = element_line(colour = "#7f7f7f",
linetype = "solid"),
panel.border = element_blank()
)
#plot(pq1_plop)
pq2_plop <- ggplot(pq2_agged, aes(y=mean_name, x=mean_2018)) +
geom_vline(xintercept = 3, size = 0.5, color = "#00C4F3") + #Benchmark static line
geom_point(aes(x = SY_mean), color="#FD5B14", fill="#FD5B14", size=4, pch=3) +
geom_point(aes(x = PSELI_mean), color="#2B85BA", fill="#2B85BA", size=4, pch=3) +
geom_point(aes(x = mean_2017), color="#BCA8DC", fill="#BCA8DC", size=4, pch=16) +
geom_point(color="#612CB5", fill="#612CB5", size=4, pch=16) +
xlim(1, 4) +
ylab("Supportive Environment") +
scale_y_discrete(labels = function(mean_name) sprintf('%60s', mean_name)) +
theme_bw() +
theme(
axis.title.x = element_blank(),
axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
axis.line.x = element_blank(),
axis.title.y = element_text(angle = 0, vjust = 0.5, margin=margin(-5)),
panel.grid.minor.x = element_line(colour = "#cccccc",
linetype = "solid"),
panel.grid.major.x = element_line(colour = "#b2b2b2",
linetype = "solid"),
panel.grid.major.y = element_line(colour = "#7f7f7f",
linetype = "solid"),
panel.border = element_blank()
)
#plot(pq2_plop)
pq3_plop <- ggplot(data = pq3_agged, aes(y=mean_name, x=mean_2018,fill='lightgreen')) +
geom_vline(xintercept = 3, size = 0.5, color = "#00C4F3") + #Benchmark static line
geom_point(aes(x = SY_mean), color="#FD5B14", fill="#FD5B14", size=4, pch=3) +
geom_point(aes(x = PSELI_mean), color="#2B85BA", fill="#2B85BA", size=4, pch=3) +
geom_point(aes(x = mean_2017), color="#BCA8DC", fill="#BCA8DC", size=4, pch=16) +
geom_point(color="#612CB5", fill="#612CB5", size=4, pch=16) +
xlim(1, 4) +
ylab("Engagement in Activities \n and Learning") +
scale_fill_identity(name = 'the fill', guide = 'legend', labels = c('m1')) +
scale_colour_manual(name = 'the colour',
values =c('black'='black','red'='red'),
labels = c('c2','c1')) +
#scale_y_discrete(labels = function(mean_2018) str_wrap(mean_2018, width = 60)) +
scale_y_discrete(labels = function(mean_name) sprintf('%-60s', mean_name)) +
theme_bw() +
theme(
axis.title.x = element_blank(),
#axis.line.x = element_blank(),
axis.text.x = element_text(size = 8),
axis.text.y = element_text(margin=margin(0), debug=TRUE),
axis.title.y = element_text(angle = 0, vjust = 0.5, margin=margin(0), size=10),
panel.grid.minor.x = element_line(colour = "#cccccc",
linetype = "solid"),
panel.grid.major.x = element_line(colour = "#b2b2b2",
linetype = "solid"),
panel.grid.major.y = element_line(colour = "#7f7f7f",
linetype = "solid"),
panel.border = element_blank()
)
Фото: