2

我已经搜索了有关此主题的其他帖子,但无法弄清楚我的问题。我有巴西政府机构的预算数据,并对机构类型进行分类。为了制作我的情节,我这样做:

g <- ggplot(data=totalex.df, aes(x=year, y=totalex.billions))

g + 
geom_line(aes(colour=factor(agency.type))) + 
facet_wrap(agency.type ~  unit, ncol=6) + 
opts(strip.text.x = theme_text(size=2)) + 
opts(axis.text.x=theme_text(size=4)) + 
opts(legend.position="none") + 
scale_y_sqrt("total expenditure (billions)")

我的问题是,我的方面标签现在包含两条信息:代理类型和单位名称——这是使用上述代码生成的图形的 pdf 。我只希望它包含单位的名称。但是,如果我从 facet_wrap 命令中删除 agent.type,则 ggplot 会丢失机构的顺序。

的输出dput(totalex.df)很长,但这里是前 100 个观察值

> dput(totalex.df.short)
structure(list(year = c(2006, 2006, 2006, 2006, 2006, 2006, 2006, 
2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 
2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 
2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 
2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 
2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 
2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2007, 2007, 
2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 
2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 
2007, 2007, 2007, 2007, 2007), totalex = c(312685301, 46492724, 
85210069, 1478565787, 193941282, 260659307, 8327549603, 0, 18474604, 
91006939, 53538760, 91800981, 402711174, 1290377603, 978348209, 
48360776, 24676283, 89820385, 1038592122, 5364674136, 127383506, 
7552311, 3847705355, 232732854, 34317692, 351714802, 156996087, 
104782402, 0, 47741444, 475303761, 229743044, 102577783, 19106706, 
78619935, 0, 730381485, 998733938, 110785185, 37114540, 108530853, 
0, 0, 0, 2660417864, 169144966, 104350391, 1038914804, 336660855, 
11995616, 0, 0, 9085111, 0, 5281402, 138708048, 11283655, 478421026, 
221976619, 95680527, 8270558, 890375094, 0, 156563720, 198830207, 
286909569, 5525428151, 734738984, 218905808, 1120014693, 859180, 
359873525, 50214197, 95572929, 1628550454, 227051722, 286610734, 
8868199792, 17388668, 19551190, 101047436, 58123546, 101878908, 
423760647, 1019623567, 1061465081, 49559379, 24278026, 110344326, 
1145862548, 7610896352, 163919333, 8376104, 4355447941, 282679957, 
45506963, 392551882, 208594544, 122420822, 0), agency.type = structure(c(NA, 
NA, NA, 3L, 1L, 1L, 7L, 1L, 1L, 1L, 1L, 1L, 4L, 1L, 1L, 1L, 1L, 
3L, 1L, 6L, 1L, 1L, 7L, 1L, 3L, 3L, 1L, 3L, 1L, 1L, 1L, 3L, 3L, 
1L, 3L, 1L, 1L, 1L, 3L, 3L, 3L, 1L, 5L, 3L, 1L, 5L, 3L, 1L, 1L, 
1L, 1L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 3L, 1L, 1L, 4L, 1L, 1L, 2L, 
1L, 1L, 3L, 1L, 1L, 3L, NA, NA, NA, 3L, 1L, 1L, 7L, 1L, 1L, 1L, 
1L, 1L, 4L, 1L, 1L, 1L, 1L, 3L, 1L, 6L, 1L, 1L, 7L, 1L, 3L, 3L, 
1L, 3L, 1L), .Label = c("Delivery", "Guidance for policy formulation / Research", 
"Regulatory", "Regulatory / Delivery", "Regulatory/Delivery", 
"Transfer / delivery", "Transfer/Regulatory/Deliver"), class = "factor"), 
    unit = structure(c(29L, 28L, 27L, 17L, 21L, 66L, 55L, 5L, 
    69L, 25L, 33L, 36L, 44L, 45L, 9L, 34L, 68L, 13L, 6L, 61L, 
    53L, 65L, 51L, 31L, 41L, 39L, 37L, 49L, 22L, 58L, 47L, 71L, 
    40L, 60L, 19L, 18L, 64L, 10L, 62L, 59L, 42L, 7L, 11L, 4L, 
    52L, 32L, 38L, 8L, 54L, 20L, 12L, 24L, 1L, 63L, 3L, 16L, 
    57L, 70L, 43L, 15L, 2L, 46L, 30L, 35L, 56L, 23L, 48L, 26L, 
    14L, 50L, 67L, 29L, 28L, 27L, 17L, 21L, 66L, 55L, 5L, 69L, 
    25L, 33L, 36L, 44L, 45L, 9L, 34L, 68L, 13L, 6L, 61L, 53L, 
    65L, 51L, 31L, 41L, 39L, 37L, 49L, 22L), .Label = c("Administrative Council of Economic Defense (CADE)                              ", 
    "Air Force Real Estate Funding Agency (CFIAE)                                   ", 
    "Alexandre Gusmao Foundation (FUNAG)                                            ", 
    "Amazon Development Superintendency (SUDAM)                                     ", 
    "Applied Economic Research Institute (IPEA)                                     ", 
    "Brazilian Agricultural Research Corporation (EMBRAPA)                          ", 
    "Brazilian Communication Company (EBC)                                          ", 
    "Brazilian Company of Urban Railway (CBTU)                                      ", 
    "Brazilian Institute of Environment and Renewable Natural Resources (IBAMA)     ", 
    "Brazilian Institute of Geography and Statistics (IBGE)                         ", 
    "Brazilian Institute of Museums (IBRAM)                                         ", 
    "Brazilian Military Material Industry (IMBEL)                                   ", 
    "Brazilian Securities Comission (CVM)                                           ", 
    "Brazilian Space Agency (AEB)                                                   ", 
    "Brazilian Tourism Company (EMBRATUR)                                           ", 
    "Brazilian Urban Railway (TRENSUBR)                                             ", 
    "Central Bank (BACEN)                                                           ", 
    "Chico Mendes Institute (ICMBio)                                                ", 
    "Civil Aviation National Agency (ANAC)                                          ", 
    "Cultural Foundation Palmares                                                   ", 
    "Dom Pedro II School                                                            ", 
    "Energy Research Company (EPE)                                                  ", 
    "Engineering, Construction and Railway (VALEC)                                  ", 
    "Excellence center in advanced electronic technology (CEITEC)                   ", 
    "Federal Centre of Educational Technology Celso Suckow da Fonseca (CEFET-RJ)    ", 
    "Graduate students improvement coordination (CAPES)                             ", 
    "Hospital Cristo Redentor S.A.                                                  ", 
    "Hospital F\x90mina S.A                                                            ", 
    "Hospital Nossa Senhora da Concei\x8d\x8bo S.A                                        ", 
    "Housing Building Fund for Mariners (CCCPMC)                                    ", 
    "Indigenous National Foundation (FUNAI)                                         ", 
    "Institute of the Historical and Artistic National Heritage (IPHAN)             ", 
    "Joaquim Nabuco Foundation                                                      ", 
    "Jorge Duprat Figueiredo Foundation (FUNDACENTRO)                               ", 
    "Manaus Free Trade Zone Superintendency (SUFRAMA)                               ", 
    "Minas Gerais Federal Centre of Educational Technology (CEFET-MG)               ", 
    "Mineral Resources Research Institute (CPRM)                                    ", 
    "National  Agency of Land Transport (ANTT)                                      ", 
    "National  Agency of Sanitary Supervision (ANVISA)                              ", 
    "National  Agency of Supplementary Health (ANS)                                 ", 
    "National  Agency of Water Transport (ANTAQ)                                    ", 
    "National Agency of Electrical Energy (ANEEL)                                   ", 
    "National Agency of Oil, Natural Gas and Biofuel (ANP)                          ", 
    "National Commission of Nuclear Energy (CNEN)                                   ", 
    "National Company of Food Supply (CONAB)                                        ", 
    "National Council of Scientific and Technological Development (CNPq)            ", 
    "National Department of Draught Prevention (DNOCS)                              ", 
    "National Department of Infrasctructure Transport (DNIT)                        ", 
    "National Department of Mineral Production (DNPM)                               ", 
    "National Development Trust (FND)                                               ", 
    "National Health Foundation (FUNASA)                                            ", 
    "National Institute of Colonization and Land Reform (INCRA)                     ", 
    "National Institute of Industrial Property (INPI)                               ", 
    "National Institute of Metrology, Normalization and Industrial Quality (Inmetro)", 
    "National Institute of Social Security (INSS)                                   ", 
    "National Institute of Studies and Educational Research  Anisio Teixeira (INEP) ", 
    "National Institute of Technology Information (ITI)                             ", 
    "National Library Foundation                                                    ", 
    "National Movies Agency (ANCINE)                                                ", 
    "National School of Public Administration Foundation (ENAP)                     ", 
    "National Trust of Education Development (FNDE)                                 ", 
    "National Water Agency (ANA)                                                    ", 
    "Northeast Development Superintendency (SUDENE)                                 ", 
    "Oswaldo Cruz Foundation (FIOCRUZ)                                              ", 
    "Ozorio Foundation                                                              ", 
    "Porto Alegre Clinic Hospital                                                   ", 
    "Private Insurance Superintendency (SUSEP)                                      ", 
    "Rio de Janeiro Botanical Gardens Research Institute                            ", 
    "Rui Barbosa House Foundation                                                   ", 
    "Sao Francisco and Parnaiba Valleys Development Company (CODEVASF)              ", 
    "Telecom National Agency (ANATEL)                                               "
    ), class = "factor")), .Names = c("year", "totalex", "agency.type", 
"unit"), row.names = c(NA, 100L), class = "data.frame")
4

2 回答 2

2

与我最初的想法相反,我认为这labeller对您没有帮助,因为它仅适用于facet_grid,而不适用于facet_wrap. 相反,我认为可以以更简单的方式处理问题。方面的顺序由因子级别的顺序控制,因此重新排序级别以unit使其分组agency.type就足够了。

agency.unit <- unique(totalex.df[c("agency.type", "unit")])

totalex.df$unit <- factor(totalex.df$unit, 
  levels = agency.unit[order(agency.unit$agency.type, 
                             agency.unit$unit), "unit"])

那么你facet_wrap不应该需要agency.type它。

facet_wrap(~  unit, ncol=6)

总共:

ggplot(data=totalex.df, aes(x=year, y=totalex)) + 
    geom_line(aes(colour=factor(agency.type))) + 
    facet_wrap( ~  unit, ncol=6) + 
    opts(strip.text.x = theme_text(size=2)) + 
    opts(axis.text.x=theme_text(size=4)) + 
    opts(legend.position="none") + 
    scale_y_sqrt("total expenditure (billions)")

在此处输入图像描述

尽管无法阅读,但第一个单位是“空军房地产基金机构(CFIAE)”,其次是“亚历山大·古斯芒基金会(FUNAG)”、“应用经济研究所(IPEA)”等。

于 2012-07-12T18:51:43.187 回答
-2

如果你给我们一些数据,这样它就可以重现了,这会有所帮助。你可以在你的问题中添加dput(totalex.df)如果它不是太长的输出吗?

你想要每个方面unit吗?或者你想要每个组合的一个方面unit & agency.type

如果只是unit,试试这个:

facet_wrap( ~ unit, ncol=6)

如果两者都是,试试这个:

facet_grid(agency.type ~ unit, ncol=6)

仅供参考 - 要更好地了解如何使用 facet_wrap 和 facet_grid 函数,请在此处查看 Hadley 的文档:

http://had.co.nz/ggplot2/facet_wrap.html

于 2012-07-11T23:49:49.827 回答