【发布时间】:2019-06-24 16:07:47
【问题描述】:
是否可以在“用户”坐标中绘制具有半径的实心圆?
我尝试了以下方法:
多边形: 我不想使用它们,因为我需要生成的 svg 中的真实圆圈。
细分
segments(x, y, x, y, lwd=px, lend=0)
对于分段,问题是我找不到在“用户”坐标中指定分段的方法。
结果图最后导出为 PDF。
更新 我绘制了一个包含很多元素的图表,并且元素具有不同的宽度。元素的宽度取决于 x 轴的宽度。如果我不使用用户坐标,则 PDF 中的结果与 x 轴无关。
多边形是圆的近似值,如果我使用它们,结果例如PDF很大,性能不好,内存占用很高。我在一张图上画了 10,000 个以上的圆圈。
我使用以下代码来描述性能问题:
circle <- function(x, y, r, col) {
edgeCount <- 50
intervals <- (1:edgeCount) / edgeCount * 2 * pi
for(i in 1:length(x)) {
polygon(r[i]*sin(intervals) + x[i], r[i]*cos(intervals) + y[i], col=col[i],border=NA)
}
}
【问题讨论】:
-
什么是“泛滥的圈子”,什么是“用户单位”?
-
这是在 base 还是 grid/ggplot 中?或者是其他东西?然后你提出
svg,你是如何保存它的,用grDevices::svg()或其他方式?您是否需要将圆圈显示在 R 和 svg 的绘图窗口中,或者将其添加到 svg 文件中就足够了?如果您添加一些示例代码来设置绘图并保存它,那么这将是一个更好的问题,以便任何想要回答的人都有一个起点...... -
@JohnColeman “用户单位”或“用户坐标”是区别于“数据单位”或“数据坐标”的常用术语。无论绘图的数据纵横比如何,用户单位中的圆在用户看来都像一个圆,而如果纵横比不是 1,数据单位中的圆可能看起来像一个椭圆。
-
我使用base,但如果可行,我可以使用grid或ggplot。
-
另外,您是否尝试过这些可能重复的解决方案? plot - drawing circle in R,推荐
plotrix::draw.circle和draw a circle in ggplot2
标签: r