我想在一张图上组合多个等值线图。我的代码如下所示。
d1<- read.table("/home/amy/Desktop/data.csv",sep=",",header=T)
ax<-d1$c1
ay<-d1$c2
library(MASS)
density1 <- kde2d(ax, ay)
par(mfrow=c(1,2))
filled.contour(density1, xlab= "x axis",
ylab= "y axis ", main ="first plot", xlim=c(0,100), ylim=c(0,100),
color.palette=colorRampPalette(c('white','blue','yellow','darkgreen','darkred')))
bx<-d1$c3
by<-d1$c4
library(MASS)
density2 <- kde2d(bx, by)
filled.contour(density2, xlab= "x axis",
ylab= "y axis ", main ="second plot", xlim=c(0,100), ylim=c(0,100),
color.palette=colorRampPalette(c('white','blue','yellow','darkgreen','darkred')))
我的数据示例如下所示。
data.csv
c1 c2 c3 c4
23.7 36.8 45.6 32.5
45.5 23.8 67.5 34.8
21.6 56.9 12.5 56.7
89.5 45.4 23.3 45.7
答案 0 :(得分:0)
看起来filled.contour
会覆盖任何预先存在的布局,因此您无法并排绘制两个单独的图。您可以尝试修改功能代码以更改处理布局的方式(在控制台中键入filled.contour
以查看功能代码)以创建功能的自定义版本。另一种方法是使用levelplot
包中的lattice
为您的图表,然后使用grid.arrange
包中的gridExtra
将其展开。这是一个例子:
library(lattice)
library(gridExtra)
# Fake data (taken from the fill.contour help examples)
x <- y <- seq(-4*pi, 4*pi, len = 100)
r <- sqrt(outer(x^2, y^2, "+"))
p1 = levelplot(cos(r^2)*exp(-r/(2*pi)))
p2 = levelplot(cos(r)*exp(-r/(2*pi)))
# Lay out both plots
grid.arrange(p1, p2, ncol=2)