如何解决无法使用 geom_flags
我正在尝试绘制一些数据(不幸的是主要是字符数据),并且我想使用 geom_flag 创建小标志图像以放置在 x 轴(x = 国家/地区)上的标签下以使其更清晰,因为我不能写完整的国家名称(阿根廷等长名字会一团糟)
但我得到的是下面的图像......只出现了几个标志,它们甚至没有正确显示,因为图像似乎“不够高”以包含它们。 如何修改我的代码以显示所有标志并确保图像完全显示在图表中? 我知道这很复杂,非常感谢您的帮助! 这是我的代码:
data$iso2 <- countrycode(data$Country,"country.name","iso2")
heatmap_trial3 <- y_Rec1 %>%
select(iso2,Place,`ContentIoUs?`,`Comments number`,Country) %>%
ggplot(aes(x=iso2,y=Place,group=iso2)) +
geom_point(aes(shape=`ContentIoUs?`,size=`Comments number`,color=Country)) +
theme(plot.background = element_rect(fill = NA),panel.background = element_rect(fill = "white")) +
guides(size=FALSE,color=FALSE) +
geom_flag(y =-0.75,aes(image = iso2)) +
xlab(NULL) + expand_limits(y=-0.75)
dput() 我的数据:
结构(列表(iso2 = c(“CA”,“DE”,“DE”,“CA”,“CA”,“AU”,“RU”,
"BE","BE","TR","DE","FR","CN","JP","SA","BR","RU","IT","AR","CH","US","US"),Place = structure(c(4L,3L,4L,5L,2L,5L),.Label = c("Context Intro","Context Rec 1","Protectionism",“WTO改革”、“多边主义”、“Context Rec 2”、“危机应对”、
“海关”、“Gloval 价值链”、“Context Rec 3”、“Micro-Small-Med-Entrepr.”、
“贸易融资”、“出口信贷机构”、“Context Rec 4”、“绿色贸易”、
"Foreing Investments"),class = "factor"),ContentIoUs?
= c("无争议",“有争议”,“无争议”,“无争议”,“无争议”,
"无争议","有争议","无争议",“无争议”,“无争议”,“无争议”,“无争议”,
“无争议”,“无争议”,“无争议”,“无争议”,
“无争议”,“无争议”,“无争议”,“无争议”,
"无争议",“有争议”,“无争议”,“无争议”,“无争议”,
“无争议”,“无争议”,“无争议”,“无争议”,
“有争议”,“无争议”,“无争议”,“无争议”,
“有争议”,“有争议”,“无争议”,“无争议”,
“无争议”,“无争议”,“无争议”,“无争议”,
"无争议",“有争议”,“有争议”,“无争议”,“无争议”,
“有争议”,“无争议”,“无争议”,“无争议”,
“有争议”,“有争议”,“有争议”,“无争议”,
“有争议的”,“有争议的”,“有争议的”,“有争议的”,“无争议的”,
"无争议",“无争议”,“无争议”,“无争议”,“无争议”,
"无争议",“有争议”,“无争议”,“有争议”,“无争议”,
“无争议”,“无争议”,“无争议”,“无争议”,
"无争议",“有争议”,“无争议”,“无争议”,“有争议”,
“无争议”,“无争议”,“无争议”,“无争议”,
"无争议",“有争议”、“无争议”、“有争议”、“无争议”
),Comments number
= c(2L,9L,1L,13L,15L,6L,7L,2L
),Country = c("加拿大","德国","加拿大",“澳大利亚”、“俄罗斯”、“比利时”、“比利时”、“比利时”、“比利时”、
“土耳其”、“德国”、“德国”、“德国”、“德国”、“德国”、
“德国”,“德国”,“德国”,“德国”,“德国”,“德国”,
“德国”,“德国”,“德国”,“德国”,“德国”,“德国”,
“德国”,“德国”,“德国”,“德国”,“德国”,“德国”,
“德国”,“德国”,“德国”,“德国”,“德国”,“德国”,
“德国”,“德国”,“德国”,“德国”,“德国”,“德国”,
“德国”,“德国”,“德国”,“德国”,“德国”,“法国”,
“法国”,“法国”,“中国”,“中国”,“中国”,“中国”,“中国”,
“中国”,“中国”,“中国”,“中国”,“法国”,“法国”,“法国”,
“日本”,“日本”,“日本”,“日本”,“日本”,“沙特阿拉伯”,
“沙特阿拉伯”、“巴西”、“巴西”、“巴西”、“巴西”、“巴西”、
"巴西","巴西","俄罗斯",“俄罗斯”、“比利时”、“意大利”、“意大利”、“意大利”、“意大利”、“意大利”、
"意大利","意大利","阿根廷","瑞士",“阿根廷”、“意大利”、“美利坚合众国”、“美利坚合众国”、
"阿根廷",“日本”、“日本”、“美利坚合众国”、“美利坚合众国”、
"美利坚合众国")),row.names = c(NA,-114L),class = c("tbl_df","tbl","data.frame")))
解决方法
尝试将 + expand_limits(y=-1)
添加到您的 ggplot
语句中。
有关该函数作者的另一个示例,请参见 this。
在将您的数据读入 data
对象后,此代码:
library(dplyr)
library(ggplot2)
library(ggimage)
data %>%
select(iso2,Place,`Contentious?`,`Comments number`,Country) %>%
ggplot(aes(x=iso2,y=Place,group=iso2)) +
geom_point(aes(shape=`Contentious?`,size=`Comments number`,color=Country)) +
theme(plot.background = element_rect(fill = NA),panel.background = element_rect(fill = "white")) +
guides(size=FALSE,color=FALSE) +
geom_flag(y =-0.75,aes(image = iso2)) +
xlab(NULL) + expand_limits(y=-1)
您可以为 y
和 geom_flag
试验不同的 expand_limits
值。只需确保 y
的 expand_limits
值将图表扩展到足以使标志可见。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。