在R语言中绘制符合特定样式的单个中点的实现方法
没问题!我来给你分享两种完全符合需求的实现方式——分别用base R和ggplot2,轻松在绘图中央画出红填充、蓝轮廓的%符号点~
Base R 实现方案
base R里我们可以通过两层文本叠加的方式来实现“填充色+轮廓色”的效果,步骤很简单:
# 先创建一个空的绘图区域,设置坐标范围让中心落在(0.5, 0.5) plot(1, type = "n", xlim = c(0, 1), ylim = c(0, 1), axes = FALSE, xlab = "", ylab = "") # 第一步:绘制蓝色的大字号%作为轮廓 text(x = 0.5, y = 0.5, labels = "%", col = "blue", cex = 5) # 第二步:在同一位置绘制红色的小字号%作为填充,叠在轮廓上 text(x = 0.5, y = 0.5, labels = "%", col = "red", cex = 4.5)
你可以根据需求调整cex参数的数值,来控制轮廓和填充的粗细比例。
ggplot2 实现方案
你说得没错,ggplot2确实需要基于数据框来绘图,但只需要一个包含中心坐标的极简数据框就行,同样用叠加文本的思路:
library(ggplot2) # 创建仅含一行数据的框,记录绘图中心的坐标 center_point <- data.frame(x = 0.5, y = 0.5) ggplot() + # 绘制蓝色大字号%作为轮廓 geom_text(data = center_point, aes(x = x, y = y), label = "%", color = "blue", size = 15) + # 绘制红色小字号%作为填充 geom_text(data = center_point, aes(x = x, y = y), label = "%", color = "red", size = 13) + # 隐藏多余的坐标轴、标题,让画面更简洁 theme_void()
这里的size参数对应base R里的cex,你也可以根据视觉效果调整数值。
内容的提问来源于stack exchange,提问作者Math Avengers
相关产品推荐
相关产品推荐

