繁体   English   中英

度数符号在 plot R 与 ggplot2 使用 RStudio

[英]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 这个我有这个

1个

如您所见,我在标签中有一个白色矩形,而不是度数符号。

我怎么解决这个问题?

提前致谢

PS:我正在使用 Window11 64 位和 RStudio 更新默认选项和所有包更新。

问题出现在两点。 首先是当您在控制台中输入 plot 时,其次是当您使用 ggsave 导出时。 我正在为两者提供解决方案,这很简单。

  1. 对于控制台 plot:将图形更改为开罗(工具 -> 常规 -> 图形 -> 后端 > 开罗

  2. 使用 ggsave 导出图像时使用值 (type = "cairo")。 例子

    ggsave("img.png", height = 18, width = 30, units = 'in', dpi= 200, type = "cairo")

这对我有用。 希望这可以帮助。

您遇到的白色矩形问题似乎与字符编码问题有关,特别是度数符号 (°)。 您的 plot 中似乎没有正确呈现度数符号。

您可以尝试以下几种方法来解决此问题:

  1. 确保您的系统和 RStudio 使用正确的字符编码。 在 RStudio 中,您可以通过转到菜单“工具 > 全局选项 > 代码 > 保存”并查看“默认文本编码”设置来检查字符编码。 如果它设置为“UTF-8”以外的其他设置,您可以尝试将其更改为“UTF-8”,看看是否能解决问题。

  2. 如果更改字符编码不起作用,您可以尝试使用包含度数符号的不同字体。 您可以通过在 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 之后我做了两个测试:

  1. 我将图形设备选项更改为 CAIRO(工具 -> 常规 -> 图形 -> 后端)

它奏效了

  1. 我将 R 降级到 R4.2.1

这也奏效了。

非常感谢 tjebo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM