当我使用ggpattern
包时,它在Rstudio IDE中生成了一个带有工作图例的很棒的绘图。然而,当我导出到pdf或png时,图例无法包含两种模式类型。
# install.packages("remotes")
# remotes::install_github("coolbutuseless/ggpattern")
library(ggplot2)
library(ggpattern)
p<-ggplot(Both)+
geom_col_pattern(aes(y=Prop,x=MHW,fill=Consumer,
pattern=Consumer,pattern_fill=Consumer),
color="black",alpha=0.8)+
facet_wrap(~Donor,nrow=2)+
theme(axis.text.x = element_text(angle=90))+
theme_classic()+
scale_pattern_manual(values=c(rep(c('circle','stripe', 'crosshatch'),5)))
p
注意,所有三种模式都显示在图例中,现在将输出添加到pdf或png:
pdf("Predator_Comparison/Energy_Budget_Plot.pdf",width=12,height=9)
p
dev.off()
png("Predator_Comparison/Energy_Budget_Plot.png",width=12,height=9,units = "in",res=300)
p
dev.off()
请注意,图例现在只包含了“circle”类型的图案,但是其他两个是不可见的。有什么想法吗?
有15个匹配警告(假定每个图例框1个):
Warning messages:
1: convert_polygon_sf_to_polygon_df(): Not POLYGON or MULTIPOLYGON: c("XY", "LINESTRING", "sfg")
会话信息:
> sessionInfo()
R version 4.2.2 (2022-10-31 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19044)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.utf8
[2] LC_CTYPE=English_United States.utf8
[3] LC_MONETARY=English_United States.utf8
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.utf8
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
other attached packages:
[1] ggpattern_1.0.0 ggplot2_3.3.6
loaded via a namespace (and not attached):
[1] Rcpp_1.0.8.3 pillar_1.7.0 compiler_4.2.2
[4] class_7.3-20 tools_4.2.2 digest_0.6.29
[7] memoise_2.0.1 lifecycle_1.0.1 tibble_3.1.7
[10] gtable_0.3.0 pkgconfig_2.0.3 rlang_1.0.6
[13] DBI_1.1.2 cli_3.3.0 rstudioapi_0.13
[16] gridpattern_1.0.1 fastmap_1.1.0 e1071_1.7-11
[19] withr_2.5.0 dplyr_1.0.9 generics_0.1.2
[22] vctrs_0.4.1 classInt_0.4-7 grid_4.2.2
[25] tidyselect_1.1.2 glue_1.6.2 sf_1.0-7
[28] R6_2.5.1 fansi_1.0.3 purrr_0.3.4
[31] farver_2.1.0 magrittr_2.0.3 units_0.8-0
[34] scales_1.2.0 ellipsis_0.3.2 assertthat_0.2.1
[37] colorspace_2.0-3 labeling_0.4.2 KernSmooth_2.23-20
[40] utf8_1.2.2 proxy_0.4-27 munsell_0.5.0
[43] cachem_1.0.6 crayon_1.5.1
数据
Both<-structure(list(Consumer = c("Phytoplankton", "Phytoplankton",
"Phytoplankton", "Phytoplankton", "Phytoplankton", "Phytoplankton",
"Phytoplankton", "Phytoplankton", "Phytoplankton", "Phytoplankton",
"Zooplankton", "Zooplankton", "Zooplankton", "Zooplankton", "Zooplankton",
"Zooplankton", "Zooplankton", "Zooplankton", "Zooplankton", "Zooplankton",
"Gelatinous", "Gelatinous", "Gelatinous", "Gelatinous", "Gelatinous",
"Gelatinous", "Gelatinous", "Gelatinous", "Gelatinous", "Gelatinous",
"Krill", "Krill", "Krill", "Krill", "Krill", "Krill", "Krill",
"Krill", "Krill", "Krill", "Forage Fish", "Forage Fish", "Forage Fish",
"Forage Fish", "Forage Fish", "Forage Fish", "Forage Fish", "Forage Fish",
"Forage Fish", "Forage Fish", "Misc. Fish", "Misc. Fish", "Misc. Fish",
"Misc. Fish", "Misc. Fish", "Misc. Fish", "Misc. Fish", "Misc. Fish",
"Misc. Fish", "Misc. Fish", "Juvenile Salmon", "Juvenile Salmon",
"Juvenile Salmon", "Juvenile Salmon", "Juvenile Salmon", "Juvenile Salmon",
"Juvenile Salmon", "Juvenile Salmon", "Juvenile Salmon", "Juvenile Salmon",
"Rockfish", "Rockfish", "Rockfish", "Rockfish", "Rockfish", "Rockfish",
"Rockfish", "Rockfish", "Rockfish", "Rockfish", "Jack Mackerel",
"Jack Mackerel", "Jack Mackerel", "Jack Mackerel", "Jack Mackerel",
"Jack Mackerel", "Jack Mackerel", "Jack Mackerel", "Jack Mackerel",
"Jack Mackerel", "Hake", "Hake", "Hake", "Hake", "Hake", "Hake",
"Hake", "Hake", "Hake", "Hake", "Juvenile Fish", "Juvenile Fish",
"Juvenile Fish", "Juvenile Fish", "Juvenile Fish", "Juvenile Fish",
"Juvenile Fish", "Juvenile Fish", "Juvenile Fish", "Juvenile Fish",
"Benthic", "Benthic", "Benthic", "Benthic", "Benthic", "Benthic",
"Benthic", "Benthic", "Benthic", "Benthic", "Seabirds", "Seabirds",
"Seabirds", "Seabirds", "Seabirds", "Seabirds", "Seabirds", "Seabirds",
"Seabirds", "Seabirds", "Mammals", "Mammals", "Mammals", "Mammals",
"Mammals", "Mammals", "Mammals", "Mammals", "Mammals", "Mammals",
"Fishery", "Fishery", "Fishery", "Fishery", "Fishery", "Fishery",
"Fishery", "Fishery", "Fishery", "Fishery", "Phytoplankton",
"Phytoplankton", "Phytoplankton", "Phytoplankton", "Phytoplankton",
"Phytoplankton", "Phytoplankton", "Phytoplankton", "Phytoplankton",
"Phytoplankton", "Zooplankton", "Zooplankton", "Zooplankton",
"Zooplankton", "Zooplankton", "Zooplankton", "Zooplankton", "Zooplankton",
"Zooplankton", "Zooplankton", "Gelatinous", "Gelatinous", "Gelatinous",
"Gelatinous", "Gelatinous", "Gelatinous", "Gelatinous", "Gelatinous",
"Gelatinous", "Gelatinous", "Krill", "Krill", "Krill", "Krill",
"Krill", "Krill", "Krill", "Krill", "Krill", "Krill", "Forage Fish",
"Forage Fish", "Forage Fish", "Forage Fish", "Forage Fish", "Forage Fish",
"Forage Fish", "Forage Fish", "Forage Fish", "Forage Fish", "Misc. Fish",
"Misc. Fish", "Misc. Fish", "Misc. Fish", "Misc. Fish", "Misc. Fish",
"Misc. Fish", "Misc. Fish", "Misc. Fish", "Misc. Fish", "Juvenile Salmon",
"Juvenile Salmon", "Juvenile Salmon", "Juvenile Salmon", "Juvenile Salmon",
"Juvenile Salmon", "Juvenile Salmon", "Juvenile Salmon", "Juvenile Salmon",
"Juvenile Salmon", "Rockfish", "Rockfish", "Rockfish", "Rockfish",
"Rockfish", "Rockfish", "Rockfish", "Rockfish", "Rockfish", "Rockfish",
"Jack Mackerel", "Jack Mackerel", "Jack Mackerel", "Jack Mackerel",
"Jack Mackerel", "Jack Mackerel", "Jack Mackerel", "Jack Mackerel",
"Jack Mackerel", "Jack Mackerel", "Hake", "Hake", "Hake", "Hake",
"Hake", "Hake", "Hake", "Hake", "Hake", "Hake", "Juvenile Fish",
"Juvenile Fish", "Juvenile Fish", "Juvenile Fish", "Juvenile Fish",
"Juvenile Fish", "Juvenile Fish", "Juvenile Fish", "Juvenile Fish",
"Juvenile Fish", "Benthic", "Benthic", "Benthic", "Benthic",
"Benthic", "Benthic", "Benthic", "Benthic", "Benthic", "Benthic",
"Seabirds", "Seabirds", "Seabirds", "Seabirds", "Seabirds", "Seabirds",
"Seabirds", "Seabirds", "Seabirds", "Seabirds", "Mammals", "Mammals",
"Mammals", "Mammals", "Mammals", "Mammals", "Mammals", "Mammals",
"Mammals", "Mammals", "Fishery", "Fishery", "Fishery", "Fishery",
"Fishery", "Fishery", "Fishery", "Fishery", "Fishery", "Fishery"
), Donor = c("Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus", "Zooplankton", "Gelatinous", "Krill", "Forage Fish",
"Misc. Fish", "Juvenile Fish", "Rockfish", "Hake", "Benthic",
"Detritus"), Prop = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.549707229476897,
0.167643507074938, 0.177108578190667, 0, 0, 0, 0, 0, 0.0143826890253642,
0.0829032868760895, 0.187199681369435, 0.377282871954272, 0.0317762383870992,
0, 0, 0, 0, 0, 0, 0.23608971861909, 0.139938803079468, 0, 0,
0, 0, 0, 0, 0, 0, 0.26740382187952, 0.0554921943314639, 0.0141169593098825,
0.322048564282078, 0.0402201203747207, 0.0354709110190114, 0.0512084875597042,
0, 0, 0.00419945182273723, 0.0186833956330583, 0.00371942571234938,
0.413834007411829, 0.046934877854785, 0.209993132669013, 0.319007851986433,
0.258124487510548, 0.410119996920118, 0.250820097844463, 0.256537937291491,
0.0665270522130403, 0.000227877927707474, 2.19230238166815e-05,
0.000223889868244159, 0.00400793137539267, 0.000719083654571443,
0.0269857933847916, 0, 0, 0.000166958973997495, 0.000271211537513765,
0.00452310090607862, 9.0161932259385e-05, 0.0192454776488071,
0.0672607939569437, 0.0729410191750948, 0.0537692126845227, 0.191987174064799,
0.0284458999742289, 0.0285257051611284, 0, 0.00119636947274399,
4.85600349094982e-05, 0.0096441913441693, 0.0173677639651089,
0, 0.0172469482122006, 0, 0, 6.35670556389205e-05, 0.000116027210051219,
0.00429666731357137, 0.0199761039648904, 0.213659805295418, 0.387044582855991,
0.0639149633556294, 0.397293293811269, 0, 0, 0.0546098316910703,
0, 0.0316551932651675, 0.00390389142820152, 0.0172703473873986,
0, 0, 0.013396290206477, 0, 0, 0.0457699126397193, 0.0126173967159077,
0.0204905400541821, 0, 0.152368033925752, 0.00620262313406725,
0.00576668120974208, 0.0367544950174518, 0.00885310370133351,
0, 0.535495518082598, 0.207168991986137, 0.000721789625651111,
3.85712132584874e-06, 0.00072113615732755, 0.155137071890671,
0.0361919450355016, 0.0819991943267615, 0.0644369559479108, 0.00411713022515574,
2.52615601695038e-05, 0.108173638197542, 0.000831127465284076,
0.00307815674367491, 0.00899885965825438, 0.104679644151026,
0.331317128245986, 0.0632217972862738, 0.246257336982954, 0.0681378872872917,
0.0466978253528048, 4.54591320499687e-05, 0, 0, 0, 0.00808633562706585,
0.13467041631803, 0, 0.0783454323828845, 0.64847898466886, 0.0135253413432805,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.592305587668469, 0.432622464206602,
0.185384809959524, 0, 0, 0, 0, 0, 0.0123632682828704, 0.217444293340073,
0.137061156612281, 0.0740408314288209, 0.000450958829355742,
0, 0, 0, 0, 0, 0, 0.00694691696783311, 0.0912850271659293, 0,
0, 0, 0, 0, 0, 0, 0, 0.126482511704573, 0.0572626281977687, 0.126538814376875,
0.251620851502401, 0.0293803850334056, 0.0438564810457525, 0.0398206261279957,
0, 0, 0.0193501630791624, 0.00699759838742462, 0.0133454293528453,
0.103991034069577, 0.0587719702349853, 0.323913920639485, 0.363680140068061,
0.174901149896074, 0.525917573675966, 0.380592408232399, 0.143352480934178,
0.114719759307649, 0.000716895919481306, 0.00036334504821922,
0.000827030789646068, 0.00466965533077688, 0.000145950039388543,
0.0583761853756203, 0, 0, 0.000103198641446566, 0.000667606167556876,
0.0145316852020556, 0.00277406302102769, 0.0217707477205417,
0.0567662230827084, 0.0997119449168991, 0.0474318758721208, 0.189131157773477,
0.041973522276621, 0.0134114434389902, 3.5516530117129e-05, 0.0201410109416757,
0.00341915171668221, 0.092903868588999, 0.1051958785497, 0.01838542557169,
0.194834783487864, 0.056373477474872, 0.000761098008172345, 0.0258662949582249,
0.0118196224353152, 0.00589559147923082, 0.0102581715983585,
0.1223715463388, 0.304659678104167, 0.0376880245027111, 0.365620556732433,
0, 0, 0.0304411575973729, 0.153068761838369, 0.0275540194533818,
0.0369598640935704, 0.0183898976577045, 0, 0, 0.0224593614490102,
0, 0, 0.0205323710977207, 0.0356179306572834, 0.0388436806752666,
0, 0.237769379442536, 0.000148162462610862, 0.00122497901109871,
0.0111299830615506, 0.0323568170881112, 0, 0.727171320686274,
0.27859489874831, 0.000280478691985259, 0.000223568607081643,
0.000382333975078339, 0.0711087350275364, 0.00494860881474787,
0.0272518987812531, 0.00302390077335372, 0.00169278643426349,
7.4551559576518e-06, 0.0475617036599278, 0.00077680863962975,
0.208808691833186, 0.00935660496042811, 0.102618573383442, 0.315878733012937,
0.058173579216078, 0.130457508883227, 0.0650956639065043, 0.00379652830385642,
4.28802555692741e-05, 0, 0, 0, 0.00153878838616774, 0.114479713016713,
0, 0.0627395643309926, 0.50988452114204, 0.00360431782394685,
0), MHW = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L), levels = c("pre", "post"), class = "factor")), row.names = c(NA,
-300L), class = c("tbl_df", "tbl", "data.frame"))
2条答案
按热度按时间vuktfyat1#
如果你使用cairo显卡(https://www.rdocumentation.org/packages/grDevices/versions/3.6.2/topics/cairo),它能工作吗?
例如
cairo_pdf()
和png(device =“cairo”)都可以在我的系统上使用:(我无法将pdf上传到SO,但图看起来是一样的)
ajsxfq5m2#
遵循其中一个软件包开发人员的建议:https://github.com/coolbutuseless/ggpattern/issues/86我尝试使用
theme(legend.key.size = unit(x, 'cm'))
和pattern_key_scale_factor = x
,其中我通过反复试验改变了x。使用
pattern_key_scale_factor = 0.5
在我的特定案例中有效: