a d*_*ben 1 graphics plot visualization r
我在一些建模软件中运行了2d模拟,我从中获得了带有一组6个属性的x,y点位置的导出.我希望重新创建一个结合数据的数字,如下所示:

椭圆和背景根据属性1着色(并且这些边界当然代表模型几何,但我认为我不能复制它),等值线是属性2的轮廓,箭头字形是来自属性3(x幅度)和4(y幅度).
x,y点是我认为的三角网格的中心,看起来像这样:

我想知道如何用R重建这样的图.首先,我有不规则间隔的数据,因为它是从不规则网格导出的.那就是我被R困住的地方,只是用它来制作盒子和耳语等.
这是数据:
https
://dl.dropbox.com/u/22417033/Ellipses_noheader.txt编辑:字段:x,y,热通量(x),热通量(y),热导率,温度,gradT(x) ,gradT(y).
names(Ellipses) <- c('x','y','dfluxx','dfluxy','kxx','Temps','gradTx','gradTy')
Run Code Online (Sandbox Code Playgroud)
制作较低的图很容易(假设有一个名为'edat'的数据框用:
edat <- read.table(file=file.choose())
with(edat, plot(V1,V2), cex=0.2)
Run Code Online (Sandbox Code Playgroud)

事情变得更加美丽:
with(edat, plot(V1,V2, cex=0.2, col=V5))
Run Code Online (Sandbox Code Playgroud)

因此,我不认为您的原件正在被数据忠实地表示.轮廓线不是直线穿过"导体".我把它们称为"导体",因为这看起来有点像静电中的等电位线.
然后,您可以使用以下内容覆盖矢量字段
with(edat, arrows(V1,V2, V1-20*V6*V7, V2-20*V6*V8, length=0.04, col="orange") )
Run Code Online (Sandbox Code Playgroud)

你可以用xlim和ylim"放大":
with(edat, plot(V1,V2, cex=0.3, col=V5, xlim=c(0, 10000), ylim=c(-8000, -2000) ))
with(edat, arrows(V1,V2, V1-20*V6*V7, V2-20*V6*V8, length=0.04, col="orange") )
Run Code Online (Sandbox Code Playgroud)
猜测轮廓是否为Temps变量请求.选择等高线图.
require(akima)
intflow<- with(edat, interp(x=x, y=y, z=Temps, xo=seq(min(x), max(x), length = 410),
yo=seq(min(y), max(y), length = 410), duplicate="mean", linear=FALSE) )
require(lattice)
contourplot(intflow$z)
filled.contour(intflow)
with( intflow, contour(x=x, y=y, z=z) )
Run Code Online (Sandbox Code Playgroud)

最后一个将与其他绘图示例混合,因为那些使用基本绘图功能.您可能需要切换到points而不是plot.