我正在寻找一种方法来控制绘制的文本的线条粗细,R而不会改变字符的尺寸.这是一个例子(不使用R):

中间字的厚度是顶部的两倍,但尺寸是相同的(因此没有发生缩放).底部的单词实际上是两个单词:一个红色单词覆盖在一个沉重的白色单词上,创建分色(特别适用于注释繁忙的情节).
这是一组命令,我一起试图复制上图:
png("font.png",width=1.02, height=1.02, units="in", res=150)
par(ps=10, font=1, bg="light gray", col="black", mai=rep(0.02,4), pin=c(1,1))
plot.new()
box()
text(0.5,0.85,"FONT",cex=1)
text(0.5,0.6,"FONT",cex=2)
text(0.5,0.3,"FONT",cex=2,col="white")
text(0.5,0.3,"FONT",cex=1,col="red")
text(0.5,0.1,"FONT",cex=1, font=2, col="white")
text(0.5,0.1,"FONT",cex=1, font=1, col="red")
dev.off()
Run Code Online (Sandbox Code Playgroud)
赠送:

因此效果与将font-face更改为粗体相同,但尺寸差异不足以在覆盖时显而易见.在par帮助页面似乎并不对此有一个特定的设置.有人有主意吗?
注意改变size在ggplot2不产生我想无论是效果,我最后一次检查.
我是一个有空间数据的完整新手.我有以下代码成功绘制有界地图.我想补充一下,data.frame存储点.我提前道歉,因为无法从OpenStreetMap文档中找到这个...下面的代码:
library(OpenStreetMap)
stores <- data.frame(name=c("Commercial","Union","Bedford"),
longitude=c(-70.25042295455933,-70.26050806045532,-70.27726650238037),
latitude=c(43.657471302616806,43.65663299041943,43.66091757424481))
lat <- c(43.68093,43.64278)
lon <- c(-70.29548,-70.24097)
portland <- openmap(c(lat[1],lon[1]),c(lat[2],lon[2]),zoom=15,'osm')
plot(portland,raster=TRUE)
#can't figure out what to put here.
Run Code Online (Sandbox Code Playgroud)
我怀疑商店的格式不适合空间数据.
我想知道是否可以在R中绘制带有轮廓的文本,这样文本可以独立于背景读取(如模因文本).以下(显然)失败:
# prepare a colorful background
randcolors <- sprintf( "#%02X%02X%02X99", sample(1:255, 1000, replace=T), sample(1:255, 1000,replace=T), sample(1:255, 1000, replace=T))
plot( NULL, xlim=c(0,1), ylim=c(0,1), xaxt="n", bty="n", yaxt="n")
points( runif(1000, 0, 1 ), runif( 1000, 0, 1 ), cex=runif(1000, 0.5, 5), col= randcolors, pch= 19)
text( 0.5, 0.5, "test text", cex= 5 )
text( 0.5, 0.5, "test text", cex= 4.5, col="white" )
Run Code Online (Sandbox Code Playgroud)
结果并不壮观:

显然,我可以先创建一个白色或半透明的背景,但实际上我更喜欢有漂亮的轮廓.
我有一个图(用 R 制作ggplot2),它是一堆文本数据的奇异值分解的结果,所以我基本上有一个数据集,其中包含一些评论中使用的约 100 个单词和约 10 个评论类别,具有 2D 坐标对于他们每个人来说。由于文本量太大以及许多重要点的距离有多近,我很难让情节看起来清晰。
我的数据现在的结构方式是,我geom_texts用不同的格式绘制两个不同的数据,并为每个数据传递一个单独的坐标数据框。这更容易,因为如果 ~10 个类别与 ~100 个术语重叠(这是次要的)就可以了,而且我想要这两个类别有相当不同的格式,但不一定有理由不能将它们放在一起数据框,geom我想是否有人能找到解决方案。
我想做的是使用该ggrepel功能,使 ~10 个类别相互排斥,并使用该shadowtext功能使它们从彩色单词的背景中脱颖而出,但由于它们不同,geom我不确定如何为了实现这一目标。
带有一些虚假数据的最小示例:
library(ggplot2)
library(ggrepel)
library(shadowtext)
dictionary <- c("spicy", "Thanksgiving", "carborator", "mixed", "cocktail", "stubborn",
"apple", "rancid", "table", "antiseptic", "sewing", "coffee", "tragic",
"nonsense", "stufing", "words", "bottle", "distillery", "green")
set.seed(1)
data.frame(
Dim1 = rnorm(100),
Dim2 = rnorm(100),
Term = sample(dictionary, 100, replace = TRUE),
Color = as.factor(sample.int(10, 100, replace = TRUE))
) -> words
data.frame( …Run Code Online (Sandbox Code Playgroud)