[英]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.