R - Управление цветом и размером одной определенной c группы данных - PullRequest
0 голосов
/ 26 мая 2020

Имею набор данных, контроль плюс 4 эксперимента. Я надеюсь выделить данные контрольной группы в ggplot. Я поместил данные контрольной группы в df_control, а остальные данные в df_lead.

Вот мой код:

    plot_lead <- ggplot() +
    geom_line(df_control, mapping = aes(CollectDate, ReportedResult, size = 0.7), show.legend = 
    TRUE) + 
    geom_point(df_control, mapping = aes(CollectDate, ReportedResult), show.legend = TRUE) +
    geom_line(df_lead, mapping = aes(CollectDate, ReportedResult, group = Site, color = Site))) +
    geom_point(df_lead, mapping = aes(CollectDate, ReportedResult, group = Site, color = Site))) +
    scale_x_date(name = "", date_breaks = "2 week", date_labels = "%Y/%m/%d") +
    scale_y_continuous(name = "Pb, mg/L") +
    theme(
    plot.title = element_text(size = 16, 
                          face = "bold",
                          family = "sans",
                          color = "black",
                          hjust = 0.5,
                          lineheight = 1.2 ), # Title
    axis.text.x = element_text(face="plain", size=10.5, angle=90), 
    axis.text.y = element_text(face="plain", size=10.5, angle=0), 
    legend.position="bottom", legend.box = "horizontal",
    panel.background = element_rect(fill='white', colour='black'), 
    panel.grid.major.y = element_line(colour = "grey")
    ) 

Вот небольшой набор данных: df_control:

    Site        CollectDate   Param   ReportedResult
    Control      2019-06-17    Lead    0.6 
    Control      2019-06-23    Lead    0.3
    Control      2019-07-02    Lead    1.3
    Control      2019-07-10    Lead    0.4
    Control      2019-07-17    Lead    2.3

    df_lead:
    Site        CollectDate   Param   ReportedResult
    1            2019-06-18    Lead    0.3 
    1            2019-06-22    Lead    0.2
    1            2019-07-01    Lead    1.5
    1            2019-07-10    Lead    0.9
    1            2019-07-16    Lead    3.1
    2            2019-06-17    Lead    1.3 
    2            2019-06-20    Lead    1.2
    2            2019-07-02    Lead    2.5
    2            2019-07-09    Lead    2.9
    2            2019-07-15    Lead    3.1     
    2            2019-07-22    Lead    3.3 
    3            2019-06-20    Lead    0.6
    3            2019-06-30    Lead    1.0
    3            2019-07-07    Lead    1.9
    3            2019-07-15    Lead    1.1
    3            2019-07-23    Lead    0.3 
    4            2019-06-22    Lead    0.4
    4            2019-07-01    Lead    0.5
    4            2019-07-10    Lead    0.9
    4            2019-07-16    Lead    1.1 
    4            2019-07-23    Lead    0.9 

Однако теперь название легенды отображается как «Размер 0,7 ", а график выглядит довольно некрасиво - черная толстая линия для контрольных данных.

Как мне изменить код, чтобы я мог контролировать цвет сайта и сделать их различимыми? И легенда о контроле отобразится в легенде?

Большое спасибо!

1 Ответ

0 голосов
/ 26 мая 2020

Могу я предложить использовать цвет, чтобы отличать контрольные группы от экспериментальных, но только после того, как вы присоединитесь к данным, как предложил Грегор Томас в комментариях. В приведенном ниже коде предполагается объединить оба кадра данных с ключом, являющимся Param, и присвоить кадру данных имя 'df'

 fill_colors <- c()
 for ( i in 1:length(df$Site) ) {
   if (df$Site[i] == "Control") {
     fill_colors <- c(fill_colors, "#821122")
   } else {
     fill_colors <- c(fill_colors, "#cccccc")
   }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...