簡體   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