Некоторые проблемы с созданием пользовательской темы в ggplot2

#r #ggplot2 #themes #customization

#r #ggplot2 #темы #настройка

Вопрос:

В настоящее время я пытаюсь создать свою собственную пользовательскую тему в ggplot2, и у меня возникли небольшие проблемы с некоторыми вещами. Я с радостью создам несколько вопросов, если они будут оценены лучше, но пока я сгруппирую те, которые у меня есть на данный момент.

Итак, моя тема в настоящее время :

 library(ggplot2)

# On definit les couleurs
CouleurTitre = "#006CE5" #Bleu titre
Couleur_QuadrillagePrimaire ="#B9CDE5"
Couleur01 = rgb(000,112,192, maxColorValue = 255) # Bleu
Couleur02 = rgb(255,102,000, maxColorValue = 255) # Orange
Couleur03 = rgb(000,176,080, maxColorValue = 255) # Vert
Couleur04 = rgb(255,102,000, maxColorValue = 255) # Jaune d'or
Couleur05 = rgb(192,000,000, maxColorValue = 255) # Rouge
Couleur06 = rgb(128,128,128, maxColorValue = 255) # Gris
Couleur07 = rgb(000,176,240, maxColorValue = 255) # Bleu ciel
Couleur08 = rgb(102,255,051, maxColorValue = 255) # Vert pomme
Couleur09 = rgb(102,255,051, maxColorValue = 255) # Violet
Couleur10 = rgb(247,150,070, maxColorValue = 255) # Saumon

Palette_Tresor = sapply((sprintf("Couleurd", 1:10)),function(x) get(x),USE.NAMES = FALSE)


# Theme Tresor
Theme_Tresor <- theme_classic()  
  theme(plot.title = element_text(size=18, face="bold", hjust=0.5, color=CouleurTitre)) 
  theme(panel.grid.major = element_line(colour=Couleur_QuadrillagePrimaire, size=0.5, lineend = "butt"))  
  theme(axis.title.x = element_blank(),axis.title.y = element_blank()) 
  theme(panel.background = element_rect(colour = "Black",size=1.5))  
  theme(legend.title=element_blank(),legend.position="bottom") 
  theme(axis.ticks=element_blank())

theme_set(Theme_Tresor)

ggprev <- function(...){
  ggplot(...)  
    Theme_Tresor   
    scale_colour_manual(values =Palette_Tresor)
 

Теперь один из примеров данных, которые у меня есть, выглядит следующим образом :

 library(data.table)

MWE <- data.table(
  Periode = structure(c(12784, 12815, 12843, 12874, 
                       12904, 12935, 12965, 12996, 13027, 13057, 13088, 13118, 13149, 
                       13180, 13208, 13239, 13269, 13300, 13330, 13361, 13392, 13422, 
                       13453, 13483, 13514, 13545, 13573, 13604, 13634, 13665, 13695, 
                       13726, 13757, 13787, 13818, 13848, 13879, 13910, 13939, 13970, 
                       14000, 14031, 14061, 14092, 14123, 14153, 14184, 14214, 14245, 
                       14276, 14304, 14335, 14365, 14396, 14426, 14457, 14488, 14518, 
                       14549, 14579, 14610, 14641, 14669, 14700, 14730, 14761, 14791, 
                       14822, 14853, 14883, 14914, 14944, 14975, 15006, 15034, 15065, 
                       15095, 15126, 15156, 15187, 15218, 15248, 15279, 15309, 15340, 
                       15371, 15400, 15431, 15461, 15492, 15522, 15553, 15584, 15614, 
                       15645, 15675, 15706, 15737, 15765, 15796, 15826, 15857, 15887, 
                       15918, 15949, 15979, 16010, 16040, 16071, 16102, 16130, 16161, 
                       16191, 16222, 16252, 16283, 16314, 16344, 16375, 16405, 16436, 
                       16467, 16495, 16526, 16556, 16587, 16617, 16648, 16679, 16709, 
                       16740, 16770, 16801, 16832, 16861, 16892, 16922, 16953, 16983, 
                       17014, 17045, 17075, 17106, 17136, 17167, 17198, 17226, 17257, 
                       17287, 17318, 17348, 17379, 17410, 17440, 17471, 17501, 17532, 
                       17563, 17591, 17622, 17652, 17683, 17713, 17744, 17775, 17805, 
                       17836, 17866, 17897, 17928, 17956, 17987, 18017, 18048, 18078, 
                       18109, 18140, 18170, 18201, 18231, 18262, 18293, 18322, 18353, 
                       18383, 18414, 18444, 18475, 18506, 18536, 18567, 18597, 18628, 
                       18659, 18687, 18718, 18748, 18779, 18809, 18840, 18871, 18901, 
                       18932, 18962), class = "Date"), 
  Valeur = c(5446.161, 5501.393, 
                                                                  5600.871, 5562.833, 5596.484, 5442.133, 5253.323, 5198.516, 4213.9, 
                                                                  4554.871, 4856.933, 4988.065, 5047.71, 5031.929, 5027.194, 5081.667, 
                                                                  5150.613, 5162.767, 5094.226, 5039.71, 5030.767, 5108.161, 5064.2, 
                                                                  5186.097, 5107.839, 5117.929, 5119.258, 5180.2, 5211.161, 5075.167, 
                                                                  5037.935, 4969.645, 4902.033, 5021.935, 5034.067, 5110.581, 5115.065, 
                                                                  5148.172, 5189.29, 5180.067, 5143.065, 5137.733, 5176.806, 5002.935, 
                                                                  3973.6, 4737.677, 5078.1, 5102.742, 5144.129, 5239.214, 5218.581, 
                                                                  5278.1, 5376.903, 5269.333, 5397.968, 5417.581, 5558.833, 5524.419, 
                                                                  5394.667, 5451.774, 5404.161, 5553.393, 5515.323, 5392.3, 5400.871, 
                                                                  5379.5, 5297.903, 5447.323, 5615.767, 5630.613, 5575.733, 5607.516, 
                                                                  5494.613, 5403.536, 5615.452, 5557.733, 5622.903, 5588, 5440.226, 
                                                                  5664.581, 5614.467, 5901.032, 6035.3, 6047.548, 6171.355, 6266.621, 
                                                                  6326.129, 6324.233, 6368.194, 6269.4, 6424.387, 6349.129, 6595.8, 
                                                                  6965.935, 7076.667, 7098.71, 7082.742, 7151.286, 7205.903, 7371.633, 
                                                                  7325.613, 7276.567, 7524.323, 7532, 7837.2, 7757.645, 7916.8, 
                                                                  7928.323, 8072.71, 8152.214, 8292.774, 8521.2, 8643.677, 8746.2, 
                                                                  8845.871, 8919.581, 9081.7, 9263.355, 9322.1, 9566.129, 9388.484, 
                                                                  9509.714, 9585.516, 9661.467, 9481.194, 9361.633, 9447.194, 9415.677, 
                                                                  9490.6, 9406, 9336.9, 9281.161, 9202.226, 9064.724, 9087.742, 
                                                                  8870.033, 8832.903, 8670.2, 8663.355, 8685.194, 8543.733, 8840.548, 
                                                                  8905.467, 8845.29, 8873.194, 9107.75, 9192.097, 9114.467, 9207.484, 
                                                                  9134.233, 9265.516, 9263.71, 9533.433, 9667.903, 10087.767, 9992.71, 
                                                                  9998.161, 10260.643, 10488.323, 10495.933, 10456.323, 10604.467, 
                                                                  10903.065, 11383.323, 11463.233, 11553.903, 11906.967, 12003.677, 
                                                                  11864.903, 11678.75, 11937.226, 12134.633, 12163.129, 12087.467, 
                                                                  11818.968, 12424.677, 12495.133, 12672.516, 12859.767, 12802.097, 
                                                                  12754.871, 12745.586, 12737.065, 12009.967, 10018.839, 10442.2, 
                                                                  10979.871, 10579.258, 10917.064, 10562.342, 11242.724, 11184.819, 
                                                                  11055.617, 10941.56, 10904.779, 10842.503, 10798.816, 10750.963, 
                                                                  10708.717, 10703.262, 10731.424, 10729.991, 10799.714, 10901.462
                       ))
 

Мой первый график просто такой :

 ggprev(data=MWE,
        aes(x=Periode,y=Valeur)) 
  geom_line(size=1)
 

Что дает мне это : введите описание изображения здесь

Теперь первые два вопроса :

  • Черная рамка вокруг графика кажется более толстой с правой и нижней стороны, почему это так?
  • Почему мой график не в первом цвете, который я установил (который является синим): Couleur01 , хотя моя функция явно упоминает об этом scale_coulour_manuel(values=Palette_Tresor)

Затем я пытаюсь сделать график немного более сложным :

 ggprev(data=MWE,
        aes(x=Periode,y=Valeur)) 
  geom_line(size=1) 
  scale_x_date(limits = c(as.Date("2010-01-01"),NA), expand = c(0, 0)) 
  scale_y_continuous(limits = c(5000,15000),expand = c(0, 0),labels=function(x) format(x, big.mark = " ", decimal.mark = ",", scientific = FALSE)) 
  ggtitle("Production des trois plus gros producteurs")
 

Что дает : введите описание изображения здесь

Теперь в дополнение к вышеупомянутым вопросам возникают еще два :

  • Как я могу передать тот факт, что я хочу, чтобы моя ось начиналась с угла рамки в теме?
  • Теперь у меня вверху немного серого цвета, который, кажется, покрывает черную рамку, в дополнение к тому, что рамка все еще не имеет одинаковой толщины

Комментарии:

1. Привет, Энтони. 1. Это действительно несколько вопросов. 2. Кроме того, поскольку ваш вопрос касается тематизации и не связан с вашими конкретными данными, я бы предложил использовать встроенный набор данных, например, ggplot2::economics. 3. Что касается вашего второго вопроса. scale_color_manual задает цвета для color aes. Поскольку вы ничего не отображаете в color aes, это не имеет никакого эффекта.

2. Спасибо, я разделил свои вопросы