Как изменить порядок дискретной оси Y на графике с фасетами, перевернутыми координатами и непрерывной осью X - PullRequest
0 голосов
/ 01 июня 2018

Цель:
Я пытаюсь нарисовать график данных по городам в нескольких странах, сгруппированных по регионам, а затем распределенных по моим собственным order от 1 вверху в порядке возрастания.вниз по графику вдоль оси y.

В данный момент график группирует регионы в обратном алфавитном порядке;Я бы тоже хотел, чтобы это было в алфавитном порядке.Кроме того, это в настоящее время организует нации по алфавиту.Мой order не используется.

То, что я пробовал до сих пор:
Вы увидите две строки кода, которые были закомментированы ниже:

#aspect.ratio=1/5, #I tried this and it did not work for me

и

#coord_fixed(ratio=1/500) + #new one for fixing y axis spacing #this did not solve it either

, и я попытался решить ее, используя предложенное здесь решение: https://www.r -bloggers.com / ordering-Categories-inside-ggplot2-facets-2 / с этим кодом:

group_by(rdatacities$region, rdatacities$country) %>%                  
  arrange(desc(contribution)) %>%                
  ungroup() %>%
  mutate(country = factor(paste(country, region, sep = "__"), levels = rev(paste(country, region, sep = "__")))) %>% 
  # --ggplot here--
  scale_x_discrete(labels = function(x) gsub("__.+$", "", x)) 

, но group_by(rdatacities$region, rdatacities$country) %>% выдает эту ошибку:

Ошибка в UseMethod ("group_by_"): нет применимого метода для 'group_by_ 'применяется к объекту класса "персонаж"

Я не эксперт по R, я считаю, что это минимальный, полный и проверяемый пример, но если это стенаужасный код, заранее извиняюсь.

library(readxl)
library(grid)
library(scales)
library(ggplot2)
library(graphics)
library(grDevices)
library(datasets)

p<-ggplot(rdatacities, aes(x=country, y=target, size=citiesorig)) +
geom_point(shape=21, alpha=.6, stroke=.75) + #municipal targets
facet_grid(region ~ ., scales = "free_y", space = "free_y") + #regional clusters
geom_point(data=rdatanation, shape=0, size=2.5, stroke=1, aes(colour='red')) 
#national targets

plot <- p + theme(
plot.title = element_text(hjust=0.5), legend.key=element_rect(fill='white'), 
panel.background = element_blank(), plot.margin = margin(2), 
axis.ticks.y = element_blank(), panel.grid.major.y= element_line(size=.2, linetype='solid', colour='grey'), 
axis.text.y = element_text(size=6),
panel.grid.major.x= element_blank(),  axis.line.x = element_blank(), 
axis.ticks.x=element_line(color='black'),

#aspect.ratio=1/5, #I tried this and it did not work for me
strip.background=element_rect(fill = NA, size = 0, color = "white", linetype = "blank")
) + 
#coord_fixed(ratio=1/500) + #new one for fixing y axis spacing #this did not solve it either
scale_y_continuous(name="Target by 2030 as Percent of Base Year", labels = percent) +
scale_x_discrete(name="Country", expand=waiver()) +
coord_flip(ylim = c(0, 3)) +
ggtitle("National vs. Municipal GHG Emissions Targets") +
guides(colour = guide_legend(order = 1, "Targets"),
     size = guide_legend(order = 2,"Municipal")) +
scale_color_manual(name="Targets", labels = c("National"), values = c('#843C0C'))

plot

Вот пример данных из rdatacities:

region country target cities order citiesorig
   <chr>  <chr>    <dbl>  <dbl> <dbl>      <dbl>
 1 EAP    JPN      0.660      1    71          1
 2 EAP    JPN      0.75       2    71          2
 3 EAP    JPN      0.8        1    71          1
 4 EAP    JPN      0.85       1    71          1
 5 EAP    JPN      0.88       1    71          1
 6 EAP    JPN      0.96       1    71          1
 7 EAP    KOR      0.6        1    72          1
 8 ECA    ALB      0.22       1    68          1
 9 ECA    AZE      0.2        1    65          1
10 ECA    BLR      0.2        2    62          6
# ... with 391 more rows

Вот пример данных из rdatanations

region countryname       country target   EmBase EmCBase EmC2014 UrbPop2014 `%UrbPop2014`   pop2014
   <chr>  <chr>             <chr>    <dbl>    <dbl>   <dbl>   <dbl>      <dbl>         <dbl>     <dbl>
 1 EAP    Australia         AUS       1     263705.   15.5    15.4    20947819         0.893  23460694
 2 EAP    Brunei Darussalam BRN       2.09    6194.   23.9    22.1      316547         0.769    411704
 3 EAP    French Polynesia  PYF      NA        436.    2.20    2.92     154205         0.560    275484
 4 EAP    Japan             JPN       0.82 1096180.    8.87    9.54  118393408         0.930 127276000
 5 EAP    Korea, Rep.       KOR       0.74  246943.    5.76   11.6    41794948         0.824  50746659
 6 EAP    Malaysia          MYS       5.93   56593.    3.14    8.03   22371755         0.740  30228017
 7 EAP    Mongolia          MNG       1.89    9989.    4.57    7.13    2082457         0.712   2923896
 8 EAP    New Caledonia     NCL      NA       1584.    9.27   16.0      186697         0.697    268000
 9 EAP    New Zealand       NZL       1.1    23546.    7.07    7.69    3889661         0.863   4509700
10 EAP    Palau             PLW       1.73     235.   15.6    12.3       18236         0.865     21094
# ... with 70 more rows
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...