[英]degree symbol in plot R with ggplot2 using RStudio
我有这段代码,我正在使用 RStudio
library(tidyverse)
library(osmdata)
bbx <- getbb("hawaii")
border <- bbx %>%
opq() %>%
add_osm_feature(key = "place",
value = c("island")) %>%
osmdata_sf()
border
ggplot() +
geom_sf(
data = border$osm_lines,
inherit.aes = FALSE,
color = "black",
size = .4,
alpha = .8
)
当我 plot 这个我有这个
如您所见,我在标签中有一个白色矩形,而不是度数符号。
我怎么解决这个问题?
提前致谢
PS:我正在使用 Window11 64 位和 RStudio 更新默认选项和所有包更新。
问题出现在两点。 首先是当您在控制台中输入 plot 时,其次是当您使用 ggsave 导出时。 我正在为两者提供解决方案,这很简单。
对于控制台 plot:将图形更改为开罗(工具 -> 常规 -> 图形 -> 后端 > 开罗
使用 ggsave 导出图像时使用值 (type = "cairo")。 例子
ggsave("img.png", height = 18, width = 30, units = 'in', dpi= 200, type = "cairo")
这对我有用。 希望这可以帮助。
您遇到的白色矩形问题似乎与字符编码问题有关,特别是度数符号 (°)。 您的 plot 中似乎没有正确呈现度数符号。
您可以尝试以下几种方法来解决此问题:
确保您的系统和 RStudio 使用正确的字符编码。 在 RStudio 中,您可以通过转到菜单“工具 > 全局选项 > 代码 > 保存”并查看“默认文本编码”设置来检查字符编码。 如果它设置为“UTF-8”以外的其他设置,您可以尝试将其更改为“UTF-8”,看看是否能解决问题。
如果更改字符编码不起作用,您可以尝试使用包含度数符号的不同字体。 您可以通过在 geom_sf() function 中指定字体参数来执行此操作。例如:
ggplot() + geom_sf(data = border$osm_lines,inherit.aes = FALSE,color = "black",size =.4,alpha =.8,font = "Arial")
您可以尝试使用不同的 fonts 看看它们是否适合您。 一些已知包含度数符号并与 ggplot2 配合使用的 fonts 包括“Arial”、“DejaVu Sans”和“Lato”。
在@tjebo 之后我做了两个测试:
它奏效了
这也奏效了。
非常感谢 tjebo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.