首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除usmap绘图中的边框

如何删除usmap绘图中的边框
EN

Stack Overflow用户
提问于 2020-08-18 14:15:51
回答 1查看 569关注 0票数 2

我正试图在一揽子“usmap”的基础上制定一份美国大选地图。问题是,包似乎只能做一个白色的背景。如果我改变背景颜色,它就会显示边框。我试图通过设置panel.border = element_blank()来删除边框,但它似乎不起作用。有什么办法解决这个问题吗?

代码语言:javascript
复制
library(usmap)
poll <- read_csv('poll.csv')
poll$fips <-fips(poll$State)
poll$Attitude <- factor(poll$Attitude, levels = attitude) 
plot2 <- plot_usmap(data = poll, values = "Attitude",  color = 'white', labels=FALSE) + scale_fill_manual(values=c("#1055b6", "#67b5e2", "#cccccc","#ffaca3","#ed4748")) + guides(fill = FALSE) 
plot2+ theme(plot.background = element_rect(fill = "#fdf1e5"),
             panel.background = element_rect(fill = "#fdf1e5"), 
             panel.border = element_blank())

这是我的数据。

代码语言:javascript
复制
   State                Abbrev Code  n_votes Attitude              fips 
 1 Alabama              Ala.   AL          9 Solid Republican      01   
 2 Alaska               Alaska AK          3 Toss-up               02   
 3 Arizona              Ariz.  AZ         11 Toss-up               04   
 4 Arkansas             Ark.   AR          6 Solid Republican      05   
 5 California           Calif. CA         55 Solid Democrat        06   
 6 Colorado             Colo.  CO          9 Leaning to Democrat   08   
 7 Connecticut          Conn.  CT          7 Solid Democrat        09   
 8 Delaware             Del.   DE          3 Solid Democrat        10   
 9 District of Columbia D.C.   DC          3 Solid Democrat        11   
10 Florida              Fla.   FL         29 Leaning to Democrat   12   
11 Georgia              Ga.    GA         16 Toss-up               13   
12 Hawaii               Hawaii HI          4 Solid Democrat        15   
13 Idaho                Idaho  ID          4 Solid Republican      16   
14 Illinois             Ill.   IL         20 Solid Democrat        17   
15 Indiana              Ind.   IN         11 Leaning to Republican 18   
16 Iowa                 Iowa   IA          6 Leaning to Republican 19   
17 Kansas               Kans.  KS          6 Leaning to Republican 20   
18 Kentucky             Ky.    KY          8 Solid Republican      21   
19 Louisiana            La.    LA          8 Solid Republican      22   
20 Maine                Maine  ME          2 Solid Democrat        23   
21 Maryland             Md.    MD         10 Solid Democrat        24   
22 Massachusetts        Mass.  MA         11 Solid Democrat        25   
23 Michigan             Mich.  MI         16 Leaning to Democrat   26   
24 Minnesota            Minn.  MN         10 Toss-up               27   
25 Mississippi          Miss.  MS          6 Solid Republican      28   
26 Missouri             Mo.    MO         10 Leaning to Republican 29   
27 Montana              Mont.  MT          3 Solid Republican      30   
28 Nebraska             Nebr.  NE          2 Solid Republican      31   
29 Nevada               Nev.   NV          6 Leaning to Democrat   32   
30 New Hampshire        N.H.   NH          4 Leaning to Democrat   33   
31 New Jersey           N.J.   NJ         14 Solid Democrat        34   
32 New Mexico           N.M.   NM          5 Solid Democrat        35   
33 New York             N.Y.   NY         29 Solid Democrat        36   
34 North Carolina       N.C.   NC         15 Toss-up               37   
35 North Dakota         N.D.   ND          3 Solid Republican      38   
36 Ohio                 Ohio   OH         18 Toss-up               39   
37 Oklahoma             Okla.  OK          7 Solid Republican      40   
38 Oregon               Ore.   OR          7 Solid Democrat        41   
39 Pennsylvania         Pa.    PA         20 Leaning to Democrat   42   
40 Rhode Island         R.I.   RI          4 Solid Democrat        44   
41 South Carolina       S.C.   SC          9 Toss-up               45   
42 South Dakota         S.D.   SD          3 Solid Republican      46   
43 Tennessee            Tenn.  TN         11 Solid Republican      47   
44 Texas                Tex.   TX         38 Toss-up               48   
45 Utah                 Utah   UT          6 Leaning to Republican 49   
46 Vermont              Vt.    VT          3 Solid Democrat        50   
47 Virginia             Va.    VA         13 Leaning to Democrat   51   
48 Washington           Wash.  WA         12 Solid Democrat        53   
49 West Virginia        W.Va.  WV          5 Solid Republican      54   
50 Wisconsin            Wis.   WI         10 Leaning to Democrat   55   
51 Wyoming              Wyo.   WY          3 Solid Republican      56 

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-18 14:38:21

主题元素panel.border继承自panel.background rect对象。在您的代码中,rect对象正在为panel.background覆盖它。panel.background元素只指定fill=,因此color= (面板周围边框的颜色)默认设置为"black"。如果要为panel.background指定边框的颜色,则应该在该对象的element_rect中这样做。例如,这将移除您的面板边框(但保留绘图边框):

代码语言:javascript
复制
plot2+ theme(plot.background = element_rect(fill = "#fdf1e5"),
             panel.background = element_rect(color=NA, fill = "#fdf1e5"))

此外,plot.background是包括绘图区域在内的整个绘图区域,以及轴标签、文本等周围的内容。panel.background是绘图区域本身:它是所有点都绘制在绘图上的地方。毫无疑问,您已经理解到,内部框是panel.background,“外部”框是plot.background。如果您只指定了plot.background,那么就不需要指定panel.background

作为一个例子,下面给出了相同的结果(完全删除panel.background对象):

代码语言:javascript
复制
plot2+ theme(plot.background = element_rect(fill = "#fdf1e5"))

我无法让您的数据框架准确地工作(无需进行大量的导入工作),因此您可以使用来自usmap包的内置人口数据来观察其效果:

代码语言:javascript
复制
plot_usmap(data=statepop, values="pop_2015", color='white', labels=FALSE) + guides(fill=FALSE) +
  theme(plot.background = element_rect(fill = "#fdf1e5"))

哦,如果您想删除所有边框(而不仅仅是内部边框),您应该在plot.background元素中以同样的方式指定该边框:

代码语言:javascript
复制
theme(plot.background = element_rect(color = NA, fill = "#fdf1e5"))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63470569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档