Требуется поле «Псевдоним» при вводе первого адреса / добавлении адреса во время оформления заказа. (PS 1.7)

Я не эксперт в ggplot2, но, думаю, вы теряете легенду, потому что вы удаляете свое эстетическое сопоставление в geom_bar с назначением аргументов fill=Palette. По сути, ваш fill эстетика не только Response, но с помощью комбинации Response и Group, потому что каждая группа имеет свой цвет на тот же ответ (который может быть сомнительной практикой, но это не для меня решить).

Я думаю, что этот код дает вам то, что вы хотите. Я добавил поле helper в data1, чтобы иметь надлежащую эстетику fill. Примечание. Мне нужно было вручную переопределить метки легенды в scale_fill_manual

library(dplyr)
data1<- as.data.frame(data %>% 
    group_by(Group, Time, Response) %>%                     
    summarise(N= n())) %>%
  mutate(helper = as.character(group_indices(., Group, Response)))

# Define the color for control and treatment groups
trtCol <- c("#deebf7", "#9ecae1","#3182bd")
conCol <- c("#e5f5e0", "#a1d99b", "#31a354")
Palette<-c(conCol, trtCol, conCol, trtCol, conCol, trtCol)

library(ggplot2)
library(scales)

# Specify color in ggplot using "geom_bar (fill=Palette)"
ggplot(data1, aes(Group, N, fill = helper)) + 
  facet_wrap(~Time, strip.position = "bottom") +
  labs(title="Distribution of Responses by Groups over Time", x="Time Points", y="Percentage") +
  scale_fill_manual(name = "Response", values = Palette, labels = c(1, 2, 3, 1, 2, 3)) +
  geom_bar(position = "fill",stat = "identity") + 
  scale_y_continuous(labels = percent_format()) + 
  theme_classic() +
  theme(plot.title = element_text(hjust = 0.5), axis.text.x=element_blank(), axis.ticks.x=element_blank(), 
        panel.spacing = unit(0.1, "lines"))+
  geom_text(aes(x=0,y=-0.05,label="Control\nGroup"), size=3.5)+
  geom_text(aes(x=1,y=-0.05,label="Treatment\nGroup"), size=3.5)
1
задан John Doe 19 January 2019 в 12:41
поделиться

1 ответ

Как я уже говорил в качестве комментария к вашему другому вопросу, поле псевдонима уже является обязательным по умолчанию.

Причина, по которой может показаться, что это не так, заключается, я полагаю, в этом небольшом фрагменте кода в CustomerAddressForm.php:

if (empty($address->alias)) {
    $address->alias = $this->translator->trans('My Address', [], 'Shop.Theme.Checkout');
}

, который заполняет поле переводом «Мой адрес». Так что в качестве простого способа принудительного ввода в это поле просто удалите эту строку (конечно, в переопределении!). Вам, вероятно, следует добавить некоторые реальные проверки и соответствующие сообщения об ошибках (не уверен, что их там еще нет).

Чтобы добавить немного контекста к этому: поле псевдонима раньше отображалось по умолчанию в версии PS < 1.7. Это вызвало большое раздражение, так как это поле в значительной степени уникально для интернет-магазинов prestashop, и клиенты часто не знали, для чего оно было.

0
ответ дан defuzed 19 January 2019 в 12:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: