【发布时间】:2019-10-09 16:04:35
【问题描述】:
使用 matplot 绘制矩阵时:
matplot(t, X[,1:4], col=1:4, lty = 1, xlab="Time", ylab="Stock Value")
我的图表如下:
如何减少线条粗细?我之前使用了不同的方法,我的图表很好:
我尝试过操纵 lwd 但无济于事。
虽然试过plot(t, X[1:4097,1]),但是打印出来的线很粗。我的 R 有问题吗?
编辑:这是我用来生成矩阵 X 的代码:
####Inputs mean return, volatility, time period and time step
mu=0.25; sigma=2; T=1; n=2^(12); X0=5;
#############Generating trajectories for stocks
##NOTE: Seed is fixed. Changing seed will produce
##different trajectories
dt=T/n
t=seq(0,T,by=dt)
set.seed(201)
X <- matrix(nrow = n+1, ncol = 4)
for(i in 1:4){
X[,i] <- c(X0,mu*dt+sigma*sqrt(dt)*rnorm(n,mean=0,sd=1))
X[,i] <- cumsum(X[,i])
}
colnames(X) <- paste0("Stock", seq_len(ncol(X)))
【问题讨论】:
-
这似乎是积分过多的问题。在第二张图中,您的数据分布得很好,而在前一张图中,每个点似乎都非常不稳定。基本上每个点之间的范围很小,每个点似乎变化很大。考虑改为绘制每个
n点。例如每 10 个点:pps <- seq(1, nrow(X), by = 10); matplot(t[pps], X[pps, 1:4], col=1:4, lty = 1, xlab="Time", ylab="Stock Value")。如果没有可重现的示例,这是一个可能的修复。 -
@csgroen 用我的代码编辑了问题。
-
您需要添加
type = 'l'仅绘制t和X的前10 个,您将看到发生了什么 -
你应该有两个matplots选项,线或点,分别使用
type = 'l'或type = 'p'。对于线图,lty控制线型(实线、虚线、点线等),对于点,pch控制绘图字符。所以你需要使用matplot(..., type = 'l', lty = 1)或类似的